การเปิดตัวเคอร์เนล Asterinas 0.19 ที่เขียนด้วยภาษา Rust และเข้ากันได้กับ Linux

โครงการ Asterinas ได้ปล่อยเวอร์ชัน 0.19 ซึ่งเป็นเคอร์เนลที่เขียนด้วยภาษา Rust และออกแบบมาเพื่อใช้ในระบบปฏิบัติการทั่วไป เคอร์เนลนี้มี ABI (Application Binary Interface) ที่เข้ากันได้กับเคอร์เนล Linux และสามารถใช้แทนกันได้ ระบบปฏิบัติการ Asterinas NixOS ซึ่งรวมเคอร์เนล Asterinas เข้ากับสภาพแวดล้อมระบบ NixOS กำลังได้รับการพัฒนาควบคู่กันไป รหัสของโครงการนี้ได้รับการพัฒนามาตั้งแต่ปี 2022 และเผยแพร่ภายใต้สัญญาอนุญาต MPL (Mozilla Public License)

ปัจจุบัน มีการใช้งานระบบเรียกใช้งาน (system calls) มากกว่า 240 รายการในเคอร์เนล Linuxระบบปฏิบัติการ Asterinas NixOS ได้รับการตรวจสอบแล้วว่าสามารถทำงานบนเคอร์เนลของ Asterinas ได้ โดยมีแพ็กเกจ NixOS มากกว่า 100 แพ็กเกจ แพ็กเกจที่รองรับ ได้แก่: Xfce, Firefox, bash, systemd, Podman, QEMU, rsync, Apache httpd, nginx, SQLite, Redis, Clang, GCC, Go, Lua, Node.js, OpenJDK, Perl, PHP, Python, Ruby, Rust, Git, FFmpeg, PyTorch, TensorFlow, Ollama และ Codex

เคอร์เนลให้การสนับสนุนอย่างเต็มรูปแบบสำหรับสถาปัตยกรรม x86-64 การสนับสนุนบางส่วนสำหรับ ARM64, RISC-V 64 และ x86-64 โดยมีการแยกการทำงานตาม Intel TDX รวมถึงการสนับสนุนเบื้องต้นสำหรับสถาปัตยกรรม LoongArch 64 พื้นที่การใช้งานที่มีความสำคัญลำดับต้นๆ ได้แก่ ระบบที่ใช้สถาปัตยกรรมเหล่านี้ Linux ABI (Assisted Integrity Index) ก็เช่นกัน แต่ต้องการระดับความปลอดภัยที่สูงกว่า ตัวอย่างเช่น มีการเสนอให้ใช้ Asterinas ในการสร้างสภาพแวดล้อมระบบที่ปลอดภัย เครื่องเสมือนโดยใช้เทคโนโลยีต่างๆ เช่น ARM CCA, AMD SEV และ Intel TDX ในการแยกส่วน รวมถึงในฝั่งระบบโฮสต์ ซึ่งช่วยให้สามารถเรียกใช้คอนเทนเนอร์ได้

เพื่อลดโอกาสเกิดข้อผิดพลาดเกี่ยวกับหน่วยความจำ ซึ่งเป็นแหล่งที่มาหลักของช่องโหว่ที่อันตรายที่สุด Asterinas จึงใช้ภาษา Rust และบล็อกที่ไม่ปลอดภัยอย่างจำกัด เคอร์เนลถูกสร้างขึ้นโดยใช้สถาปัตยกรรมเฟรมเคอร์เนล ซึ่งพยายามรวมความสามารถในการแยกส่วนของไมโครเคอร์เนลเข้ากับประสิทธิภาพของเคอร์เนลแบบโมโนลิธิก

ส่วนประกอบหลักของ Asterinas ตั้งอยู่ในพื้นที่แอดเดรสที่ใช้ร่วมกัน และการรักษาความปลอดภัยทำได้โดยการแยกโค้ดที่ปลอดภัยออกจากโค้ดที่อาจมีช่องโหว่ เคอร์เนลแบ่งออกเป็นสองส่วน ซึ่งเขียนด้วยภาษา Rust ทั้งคู่ ได้แก่ OS Framework และ OS Services OS Services ห้ามการใช้บล็อกที่ไม่ปลอดภัย และการดำเนินการระดับต่ำทั้งหมดที่ต้องการการเรียกใช้โค้ดในบล็อกที่ไม่ปลอดภัยจะถูกย้ายไปยัง OS Framework และเข้าถึงได้ผ่าน API ระดับสูงเท่านั้น การเรียกใช้ระบบ ระบบไฟล์ และไดรเวอร์ทั้งหมดถูกนำไปใช้ในระดับ OS Services และไม่สามารถมีบล็อกที่ไม่ปลอดภัยได้

สำหรับการพัฒนาระบบบริการและโมดูลเคอร์เนล มี OSDK (Operating System Development Kit) ให้ใช้งาน ซึ่งมีเครื่องมือ cargo-osdk สำหรับสร้าง คอมไพล์ ทดสอบ และรันส่วนประกอบของระบบปฏิบัติการ นักพัฒนาสามารถเข้าถึงชุด OSTD (Operating System Standard Library) ซึ่งประกอบด้วยไลบรารีมาตรฐานของ Rust (crate std) ที่ดัดแปลงสำหรับการใช้งานในส่วนประกอบของระบบปฏิบัติการได้ด้วย

การเปลี่ยนแปลงใน Asterinas เวอร์ชัน 0.19 มีดังนี้:

  • ระบบย่อย DRM (Direct Rendering Manager), อุปกรณ์ /dev/dri, อินเทอร์เฟซ KMS (kernel mode setting) และไดรเวอร์ "modesetting" ได้ถูกนำมาใช้งานแล้ว ทำให้สามารถเรียกใช้ชุดกราฟิกมาตรฐานที่ใช้ X.Org Server และ Mesa แทนที่ไดรเวอร์ fbdev ที่ใช้เฟรมบัฟเฟอร์แบบเดิมได้


  • ได้เพิ่มการรองรับสถาปัตยกรรม AArch64 (ARM64) แล้ว โดยปัจจุบันทำหน้าที่เป็นสถาปัตยกรรมหลักในการพัฒนาควบคู่ไปกับ x86-64 มีการใช้งานการรองรับระดับที่สองสำหรับ AArch64 เพื่อให้มั่นใจถึงฟังก์ชันพื้นฐาน การทดสอบแบบบูรณาการอย่างต่อเนื่อง และการครอบคลุมการทดสอบบางส่วน
  • การพัฒนา Asterinas ให้สามารถทำงานเป็นระบบแขกใน Kata Containers และ Confidential Containers ยังคงดำเนินต่อไป มีการเสนอการใช้งาน Overlayfs รูปแบบใหม่ที่ผ่านชุดทดสอบระบบไฟล์เคอร์เนลมาตรฐานได้สำเร็จ Linux และ xfstests มีการใช้งาน API การเมานต์แบบใหม่ โค้ด virtio-fs มีเสถียรภาพมากขึ้น มีการเพิ่มการรองรับโปรโตคอล
    การบูตโดยตรง (direct-boot) ใช้ใน QEMU, Cloud Hypervisor และ Firecracker ทำให้เวลาในการบูตเร็วขึ้น เครื่องเสมือนซึ่งหน่วยความจำนั้นได้รับการเข้ารหัสโดยใช้เทคโนโลยี Intel TDX
  • เฟรมเวิร์ก OSTD (Operating System Standard Library) นำเสนอ API พื้นฐานสำหรับการสร้างไฮเปอร์ไวเซอร์แบบเรียบง่ายโดยใช้ Intel VMX
  • เพิ่มการรองรับโมเดลการพัฒนาไดรเวอร์ Rust และได้เพิ่มส่วนประกอบ aster-device ที่มีฟังก์ชันการทำงานคล้ายกับส่วนประกอบเคอร์เนล Linux โดยใช้ส่วนประกอบพื้นฐานและนามธรรมสำหรับการพัฒนาไดรเวอร์ แต่เขียนด้วยภาษา Rust โดยไม่มีโค้ดที่ไม่ปลอดภัย
  • ขณะนี้สามารถโฮสต์ด้วยตนเองได้แล้ว - คุณสามารถสร้างเคอร์เนล Asterinas จากสภาพแวดล้อมที่มีเคอร์เนล Asterinas และแพ็กเกจ NixOS ได้แล้ว

ที่มา: opennet.ru

ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster