O Nightingale é um sistema operacional para x86_64 que estou desenvolvendo há 7 anos para aprender sobre o design de programação e sistema operacional de baixo nível.
O Nightingale implementa uma terra de usuário principalmente semelhante a Posix, embora a conformidade não seja uma meta. Vejo Posix tão útil quanto uma interface bem compreendida e documentada, e que permite a compatibilidade com grandes quantidades de software existente.

Para obter informações mais específicas sobre recursos e capacidade, consulte sobre.md.
O Nightingale usa o sistema CMake Build e você pode encontrar os requisitos de pacote nos arquivos de fluxo de trabalho do GitHub Actions.
make na raiz do projeto../run.rb - seu texto de ajuda mostrará as opções disponíveis doc : documentaçãoinclude : arquivos de cabeçalho para todo o sistemainterface : Definições de interface para syscalls e valores errnokernel : o núcleo do sistema operacionallibc : rotinas comuns de terras de usuários, incluindo coisas como printflinker : Kernel Module Loader, Userland Dynamic Linker e libelfscript : Scripts de utilidade para construir e desenvolver Nightingaletoolchain : arquivos CMake Toolchainuser : Programas Usermode na árvore distribuídos com o sistemabt.bash : invólucro de conveniência em torno addr2line para retornodump.bash : invólucro de conveniência em torno objdumpformat.bash : invólucro de conveniência em torno clang-formatmake.bash : Core Build Engine para o projetorun.rb : invólucro de conveniência em torno qemu-system-x86_64Esses arquivos de manifesto definem a interface pública syscall do kernel do Nightingale, são renderizados em enumes e metadados que são usados pelo kernel e pela biblioteca C.
ERRNOS : define os valores de errno , seus nomes e suas cordas perrorSYSCALLS : define números, tipos e argumentos syscall