Il s'agit du référentiel officiel du noyau Libertyos. Libertyos est un système d'exploitation, construit avec Rust, qui est open-source, gratuit et ouvert aux nouveaux contributeurs. Tout dans LOS est ou sera construit à partir de zéro. Actuellement, LOS prend en charge les systèmes x86_64 et peut être démarré sur du matériel réel, en utilisant un simple chargeur de démarrage. Ce système d'exploitation est en cours de travail en continu et toutes les modifications sont enregistrées dans le fichier versionhistory.md (dans le répertoire racine de ce référentiel). Si vous souhaitez voir une explication plus détaillée des changements entre les versions, vous pouvez lire les validations dans le référentiel GitHub.
Comment contribuer
Souhaitez-vous aider à rendre ce noyau encore meilleur? Nous avons beaucoup de choses qui doivent être faites, et nous pourrions toujours utiliser l'aide à les faire! Il y a un dossier dans ce référentiel (appelé "idées") qui contient différents fichiers qui expliquent une idée du noyau. Si vous avez une nouvelle idée, créez simplement un nouveau fichier dans le dossier des idées, soumettez une demande de traction et l'un de nous fusionnera votre idée dans la branche principale. Il y a beaucoup de fonctionnalités excellentes en ce moment, et nous pourrions utiliser autant de développeurs talentueux que possible!
Bloguer
Au 22 août 2022, il y a un fichier de blog (blog.md). Cela expliquera certaines des décisions de conception prises, certains des problèmes de développement et à quoi s'attendre dans un avenir proche. Libertyos n'est pas mort. Il y a un brillant avenir pour ce projet.
Construire / courir Libertyos
- Cloner ce référentiel.
- Accédez à l'emplacement vers lequel vous avez cloné ce référentiel.
- Assurez-vous que vous avez installé ce qui suit:
- Exécutez le script bootstrap (./bootstrap.sh)
- Compilez le noyau avec "la construction de cargaison --libération", ou exécutez le noyau dans QEMU, en utilisant "la course à la cargaison --libération".
Fonctionnalités actuellement implémentées
- Prise en charge de l'architecture x86-64
- Support pour les caisses du noyau et de l'alloc de Rust
- Allocation de mémoire, utilisant des listes liées, une allocation de copains et une allocation de bosse
- Poignant d'erreur de base
- Prise en charge intégrée pour l'exécution de LOS avec QEMU
- Prise en charge de plusieurs dispositions de clavier
- Support de base pour les fonctions asynchrones, y compris un exécuteur de base de base
- Prise en charge de la lecture / écriture sur les systèmes de fichiers (la prise en charge de systèmes de fichiers spécifiques n'a pas encore été implémenté, mais les fondations ont déjà été implémentées)
- Utilise une bibliothèque de base, conçue pour Libertyos (Libcore)
- Soutient les calculs mathématiques, y compris l'algèbre de base, la géométrie, etc.
- Prise en charge des types C
- Support de base pour les polices d'analyse
- Tenue temporelle
- Appels à système
- Gestion du processus de base
- Prise en charge de Stdin, Stdout et Stderr
- Prise en charge de base pour les processus en cours d'exécution dans l'espace utilisateur
Fonctionnement de WIP
- Un système de fichiers de base, conçu pour Libertyos
- Documentation complète pour tout le noyau
- Prise en charge complète de la lecture / écriture sur les systèmes de fichiers gras
- Capacités de réseautage de base
- Prise en charge des souris informatiques
- Un coquille de base
Fonctionnalités planifiées
- Prise en charge des cibles basées sur les bras
- Support pour GLIBC / MUSL (ou, peut-être, réécrire certaines parties)
- Prise en charge des systèmes de fichiers FAT, FAT32, EXFAT
- Prise en charge des systèmes de fichiers EXT2, EXT3, EXT4
- Prise en charge du système de fichiers NTFS
- Noms d'hôtes
- Capacité à mettre à jour le noyau à partir du système d'exploitation
- Prise en charge des personnages non anglais
- Support complet pour Unicode
- Personnalisation de base
Comportement actuellement attendu
- Le noyau initialise les parties critiques de Libertyos
- Le noyau affiche un message sur le processus de configuration
- Le noyau rencontre une faute de page. :(