Nightingale est un système d'exploitation pour x86_64 que je développe depuis 7 ans pour en savoir plus sur la conception de programmation et de système d'exploitation de bas niveau.
Nightingale implémente un Userland principalement de type POSIX, bien que la conformité ne soit pas un objectif. Je vois Posix aussi utile qu'une interface bien comprise et documentée, et une qui permet la compatibilité avec de grandes quantités de logiciels existants.

Pour plus d'informations sur les fonctionnalités et les capacités, voir à propos de.md.
Nightingale utilise le système CMake Build et vous pouvez trouver des exigences de package dans les fichiers de flux de travail GitHub Actions.
make à la racine du projet../run.rb - Son texte d'aide affichera les options disponibles doc : documentationinclude : fichiers d'en-tête pour l'ensemble du systèmeinterface : Définitions d'interface pour les systèmes et les valeurs Errnokernel : le cœur du système d'exploitationlibc : routines utilisateur communes, y compris des choses comme printflinker : chargeur de module de noyau, éditeur de liaison dynamique de l'utilisateur et libelfscript : scripts utilitaires pour construire et développer un rossignoltoolchain : fichiers de chaîne d'outils CMakeuser : Programmes en arbre en arbre distribué avec le systèmebt.bash : emballage de commodité autour de addr2line pour un retour de retour en arrièredump.bash : Emballage de commodité autour objdumpformat.bash : emballage de commodité autour de clang-formatmake.bash : Core Build Engine pour le projetrun.rb : emballage de commodité autour de qemu-system-x86_64Ces fichiers manifestes définissent l'interface système public du noyau Nightingale, elles sont rendues en énum et métadonnées C qui sont utilisés par le noyau et la bibliothèque C.
ERRNOS : définit les valeurs d' errno , leurs noms et leurs cordes perrorSYSCALLS : définit les nombres, les types et les arguments du système