- ระบบปฏิบัติการเชิงทดลองที่ยึดตาม ปรัชญา “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
ยังไม่มีความคิดเห็น