nightingale
v0.15.0
ไนติงเกลเป็นระบบปฏิบัติการสำหรับ x86_64 ที่ฉันพัฒนามา 7 ปีเพื่อเรียนรู้เกี่ยวกับการเขียนโปรแกรมและการออกแบบระบบปฏิบัติการระดับต่ำ
ไนติงเกลใช้ผู้ใช้ที่เหมือน posix ส่วนใหญ่แม้ว่าการปฏิบัติตามกฎระเบียบไม่ใช่เป้าหมาย ฉันเห็นว่า Posix มีประโยชน์เป็นอินเทอร์เฟซที่เข้าใจได้ดีและมีเอกสารและเป็นส่วนหนึ่งที่อนุญาตให้เข้ากันได้กับซอฟต์แวร์ที่มีอยู่จำนวนมาก

สำหรับข้อมูลคุณสมบัติและความสามารถที่เฉพาะเจาะจงมากขึ้นโปรดดูเกี่ยวกับ MD
ไนติงเกลใช้ระบบ CMake Build และคุณสามารถค้นหาข้อกำหนดของแพ็คเกจในไฟล์เวิร์กโฟลว์การกระทำของ GitHub
make ในรากของโครงการ./run.rb - ข้อความความช่วยเหลือจะแสดงตัวเลือกที่มีอยู่ doc : เอกสารinclude : ไฟล์ส่วนหัวสำหรับทั้งระบบinterface : คำจำกัดความอินเตอร์เฟสสำหรับ syscalls และค่า errnokernel : แกนกลางของระบบปฏิบัติการlibc : กิจวัตรผู้ใช้ทั่วไปทั่วไปรวมถึงสิ่งต่าง ๆ เช่น printflinker : Kernel Module Loader, Userland Dynamic Linker และ libelfscript : สคริปต์ยูทิลิตี้สำหรับการสร้างและพัฒนาไนติงเกลtoolchain : ไฟล์ CMAKE Toolchainuser : โปรแกรม USERMODE ในต้นไม้กระจายไปกับระบบbt.bash : Wrapper สะดวกรอบ addr2line สำหรับ backtracingdump.bash : wrapper สะดวกรอบ objdumpformat.bash : wrapper สะดวกรอบ clang-formatmake.bash : Core Build Engine สำหรับโครงการrun.rb : Wrapper สะดวกรอบ qemu-system-x86_64ไฟล์รายการเหล่านี้กำหนดอินเทอร์เฟซ Syscall สาธารณะของเคอร์เนลไนติงเกลพวกเขาจะแสดงเป็น c enums และข้อมูลเมตาที่ใช้โดยทั้งเคอร์เนลและไลบรารี C
ERRNOS : กำหนดค่าของ errno ชื่อของพวกเขาและสตริง perror ของพวกเขาSYSCALLS : กำหนดหมายเลข syscall ประเภทและอาร์กิวเมนต์