• ระบบปฏิบัติการเชิงทดลองที่ยึดตาม ปรัชญา “everything is a file” ของ Plan9 อย่างเคร่งครัด
  • เขียนขึ้นใหม่ทั้งหมดด้วย C และแอสเซมบลี เพื่อการพัฒนา OS สำหรับการศึกษาและการทดลอง
  • โครงสร้างเคอร์เนลแบบ preemptive เต็มรูปแบบและ tickless บนพื้นฐานของ ตัวจัดตารางงาน EEVDF รองรับ SMP, multithreading และการควบคุมล็อกอย่างละเอียด
  • มี ระบบ IPC แบบอิงไฟล์ : รวมถึง pipe, shared memory, socket และ ระบบ notes ในสไตล์ Plan9 signals
  • ชั้นนามธรรมอุปกรณ์แบบอิงไฟล์ สำหรับจัดการ framebuffer, อุปกรณ์รับข้อมูลเข้า และอื่น ๆ แบบรวมศูนย์
  • รองรับ synchronization primitives เช่น mutex, rwlock, futex เป็นต้น
  • ออกแบบเคอร์เนลแบบโมดูลาร์ สามารถโหลด/ถอดโมดูลได้ขณะรันไทม์
  • ระบบไฟล์ ใช้โครงสร้าง VFS แบบ Unix รองรับ mount point, hard link และ namespace แยกตามโปรเซส
  • user space ประกอบด้วยไลบรารีมาตรฐาน C ของตัวเองและไลบรารีระบบ
    • มี สภาพแวดล้อมเดสก์ท็อปแบบโมดูลาร์ ที่ใช้ shared memory เป็นฐาน
  • ความแตกต่างหลักจาก POSIX
    • ใช้ spawn() แทน fork(), exec()
    • ตัดแนวคิดเรื่องผู้ใช้ออก และใช้ไลบรารีมาตรฐานที่ไม่อิง POSIX
    • ใช้ file flags สำหรับควบคุมการเข้าถึงแทน file mode
  • ข้อจำกัดในปัจจุบัน
    • รองรับเฉพาะ RAM disk และใช้ได้กับ x86_64 เท่านั้น
  • แผนในอนาคต
    • พอร์ต LUA และการตั้งค่าระบบแบบไดนามิก
    • I/O และ system call แบบอะซิงโครนัส (กำลังพิจารณา io_uring)
    • มีแผนเพิ่ม การรองรับ USB
  • ยูทิลิตี Shell ถูกออกแบบใหม่ให้สอดคล้องกับระบบ file flags
    • มีอินเทอร์เฟซคล้ายยูทิลิตี POSIX เช่น touch, cat, echo, ls, rm เป็นต้น
  • สภาพแวดล้อมการ build : ต้องใช้ Linux, GCC, NASM, mtools, QEMU
  • มี เอกสารบนพื้นฐาน Doxygen พร้อมคอมเมนต์ในโค้ดและบรรณานุกรมอ้างอิง
  • ออกแบบให้เป็น ระบบปฏิบัติการขั้นกลางเพื่อการศึกษา ระหว่าง xv6 กับ Linux

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น