nightingale
v0.15.0
Nightingale is an operating system for x86_64 that I have been developing for 7 years to learn about low-level programming and operating system design.
Nightingale implements a mostly POSIX-like userland, though compliance is not a goal. I see POSIX as useful as a well-understood and documented interface, and one that permits compatability with large amounts of existing software.

For more specific feature and capability information, see ABOUT.md.
Nightingale uses the CMake build system, and you can find package requirements in the GitHub Actions workflow files.
make in the root of the project../run.rb - its help text will show the available optionsdoc: Documentationinclude: Header files for the whole systeminterface: Interface definitions for syscalls and errno valueskernel: The core of the operating systemlibc: Common userland routines, including things like printflinker: Kernel module loader, userland dynamic linker, and libelfscript: Utility scripts for building and developing nightingaletoolchain: CMake toolchain filesuser: In-tree usermode programs distributed with the systembt.bash: convenience wrapper around addr2line for backtracingdump.bash: convenience wrapper around objdumpformat.bash: convenience wrapper around clang-formatmake.bash: core build engine for the projectrun.rb: convenience wrapper around qemu-system-x86_64These manifest files define the public syscall interface of the nightingale kernel, they are rendered into C enums and metadata that is used by both the kernel and the C library.
ERRNOS: defines the values of errno, their names, and their perror
stringsSYSCALLS: defines syscall numbers, types, and arguments