Nightingale adalah sistem operasi untuk x86_64 yang telah saya kembangkan selama 7 tahun untuk belajar tentang desain sistem pemrograman dan operasi tingkat rendah.
Nightingale mengimplementasikan Userland yang sebagian besar seperti POSIX, meskipun kepatuhan bukanlah tujuan. Saya melihat POSIX bermanfaat sebagai antarmuka yang dipahami dengan baik dan terdokumentasi, dan yang memungkinkan kompatibilitas dengan sejumlah besar perangkat lunak yang ada.

Untuk informasi fitur dan kemampuan yang lebih spesifik, lihat tentang.md.
Nightingale menggunakan sistem build CMake, dan Anda dapat menemukan persyaratan paket dalam file alur kerja tindakan GitHub.
make dalam akar proyek../run.rb - teks bantuannya akan menampilkan opsi yang tersedia doc : Dokumentasiinclude : file header untuk seluruh sisteminterface : Definisi Antarmuka untuk Nilai Syscall dan ERRNOkernel : Inti dari sistem operasilibc : Rutinitas Userland Umum, termasuk hal -hal seperti printflinker : Kernel Module Loader, Userland Dynamic Linker, dan libelfscript : skrip utilitas untuk membangun dan mengembangkan Nightingaletoolchain : File CMake Toolchainuser : Program UserMode in-tree yang didistribusikan dengan sistembt.bash : Pembungkus kenyamanan di sekitar addr2line untuk melarikan diridump.bash : pembungkus kenyamanan di sekitar objdumpformat.bash : Pembungkus kenyamanan di sekitar clang-formatmake.bash : mesin pembuatan inti untuk proyekrun.rb : Pembungkus kenyamanan di sekitar qemu-system-x86_64File -file manifes ini menentukan antarmuka Syscall publik dari kernel Nightingale, mereka diterjemahkan ke dalam C enum dan metadata yang digunakan oleh Kernel dan Perpustakaan C.
ERRNOS : mendefinisikan nilai -nilai errno , nama mereka, dan string perror merekaSYSCALLS : mendefinisikan angka, jenis, dan argumen syscall