Dies ist das offizielle Repository des Libertyos -Kernels. Libertyos ist ein Betriebssystem, das mit Rost gebaut wurde, das sich frei zu nutzen und für neue Mitwirkende offen ist. Alles in LOS ist oder wird von Grund auf neu gebaut. Derzeit unterstützt LOS X86_64 -Systeme und kann mit einem einfachen Bootloader auf realer Hardware gebootet werden. Dieses Betriebssystem wird kontinuierlich bearbeitet, und alle Änderungen sind in der Version von Versionhistory.md (im Stammverzeichnis dieses Repositorys) protokolliert. Wenn Sie eine detailliertere Erläuterung von Änderungen zwischen den Versionen sehen möchten, können Sie die Commits im Github -Repository lesen.
Wie man beiträgt
Möchten Sie dazu beitragen, diesen Kernel noch besser zu machen? Wir haben viele Dinge, die getan werden müssen, und wir könnten immer Hilfe nutzen, um sie zu tun! In diesem Repository befindet sich ein Ordner (genannt "Ideen"), der verschiedene Dateien enthält, die eine Idee für den Kernel erklären. Wenn Sie eine neue Idee haben, erstellen Sie einfach eine neue Datei im Ideenordner, senden Sie eine Pull -Anfrage, und einer von uns wird Ihre Idee in die Hauptzweide verschmelzen. Derzeit werden viele großartige Funktionen gearbeitet, und wir könnten so viele talentierte Entwickler wie möglich verwenden!
Blog
Ab dem 22. August 2022 gibt es eine Blog -Datei (blog.md). Dies erklärt einige der getroffenen Entwurfsentscheidungen, einige der Themen in der Entwicklung und was in naher Zukunft zu erwarten ist. Libertyos ist nicht tot. Für dieses Projekt steht eine glänzende Zukunft vor sich.
Libertyos bauen/leiten
- Klonen Sie dieses Repository.
- Navigieren Sie zu dem Ort, an den Sie dieses Repository geklont haben.
- Stellen Sie sicher, dass Sie Folgendes installiert haben:
- Führen Sie das Bootstrap -Skript (./Bootstrap.sh) aus
- Kompilieren Sie den Kernel mit "Cargo Build -Release" oder führen Sie den Kernel in QEMU mit "Frachtlauf -Release".
Derzeit implementierte Funktionen
- Unterstützung für X86-64 Architektur
- Unterstützung für Rusts Kern- und Alloc -Kisten
- Speicherzuweisung unter Verwendung von verknüpften Listen, Buddy-Adlocation und Bump-Adlocation
- Grundlegende Fehlerhandhabung
- Eingebaute Unterstützung für das Laufen von LOS mit QEMU
- Unterstützung für mehrere Tastaturlayouts
- Grundlegende Unterstützung für asynchrone Funktionen, einschließlich eines grundlegenden Aufgabenausreibers
- Unterstützung für das Lesen/Schreiben in Dateisysteme (die Unterstützung für bestimmte Dateisysteme muss noch implementiert werden, aber die Grundlagen wurden bereits implementiert)
- Verwendet eine Kernbibliothek, die für Libertyos (libcore) gebaut wurde.
- Unterstützt mathematische Berechnungen, einschließlich grundlegender Algebra, Geometrie usw.
- Unterstützung für C-Typen
- Grundlegende Unterstützung für Parsen -Schriftarten
- Zeitmessung
- Systemanrufe
- Grundlegendes Prozessmanagement
- Unterstützung für Stdin, Stdout und Stderr
- Grundlegende Unterstützung für das Ausführen von Prozessen im UserSpace
WIP -Funktionen
- Ein grundlegendes Dateisystem, das für Libertyos erstellt wurde
- Vollständige Dokumentation für den gesamten Kernel
- Vollständige Unterstützung für das Lesen/Schreiben in Fat -Dateisysteme
- Grundlegende Networking -Funktionen
- Unterstützung für Computermäuse
- Eine einfache Schale
Geplante Funktionen
- Unterstützung für ARM-basierte Ziele
- Unterstützung für Glibc/Musl (oder vielleicht bestimmte Teile von ihnen umschreiben)
- Unterstützung für FAT, FAT32, Exfat -Dateisysteme
- Unterstützung für Ext2-, EXT3-, EXT4 -Dateisysteme
- Unterstützung für das NTFS -Dateisystem
- Hostnamen
- Fähigkeit, den Kernel aus dem Betriebssystem aus zu aktualisieren
- Unterstützung für nicht englische Charaktere
- Vollständige Unterstützung für Unicode
- Grundanpassung
Derzeit erwartetes Verhalten
- Der Kernel initialisiert die kritischen Teile von Libertyos
- Der Kernel zeigt eine Nachricht zum Setup -Vorgang an
- Der Kernel trifft auf eine Seitenfehler. :(