Nightingale es un sistema operativo para x86_64 que he estado desarrollando durante 7 años para aprender sobre el diseño de programación y sistema operativo de bajo nivel.
Nightingale implementa un país de usuarios en su mayoría de POSIX, aunque el cumplimiento no es un objetivo. Veo a Posix como una interfaz bien entendida y documentada, y una que permite la compatibilidad con grandes cantidades de software existente.

Para obtener información sobre características y capacidad más específica, consulte Acerca de. MD.
Nightingale utiliza el sistema de compilación Cmake, y puede encontrar requisitos de paquetes en los archivos de flujo de trabajo de GitHub Actions.
make en la raíz del proyecto../run.rb : su texto de ayuda mostrará las opciones disponibles doc : documentacióninclude : archivos de encabezado para todo el sistemainterface : Definiciones de interfaz para valores SYSCALLS y ERRNOkernel : el núcleo del sistema operativolibc : rutinas comunes de tierras de usuario, incluidas cosas como printflinker : cargador de módulos de kernel, libelf dinámico de usuariosscript : Scripts de utilidad para construir y desarrollar Nightingaletoolchain : archivos Cmake ToolChainuser : Programas de Usermode en el árbol distribuidos con el sistemabt.bash : envoltura de conveniencia alrededor de addr2line para retrocesodump.bash : envoltura de conveniencia alrededor de objdumpformat.bash : envoltura de conveniencia alrededor de clang-formatmake.bash : Motor de construcción de núcleo para el proyectorun.rb : Convenience Wrapper alrededor de qemu-system-x86_64Estos archivos manifiestos definen la interfaz pública de Syscall del nueces del núcleo, se renderizan en C enums y metadatos que utilizan tanto el núcleo como la biblioteca C.
ERRNOS : define los valores de errno , sus nombres y sus cuerdas perrorSYSCALLS : define números, tipos y argumentos de Syscall