Dies ist meine Implementierung der Labors aus der Graduiertenklasse 6.828 des MIT. (MIT bietet der Öffentlichkeit anmutig ihr Kursmaterial an).
Das Folgende wird von der Website zitiert.
Das Labor ist in 6 Hauptteile aufgeteilt, die aufeinander aufbauen, und gipfelt in einem primitiven Betriebssystem, auf dem Sie einfache Befehle über Ihre eigene Hülle ausführen können. Wir behalten uns den letzten Vortrag vor, damit Sie Ihr Betriebssystem dem Rest der Klasse demonstrieren können.
Das von Ihnen erstellte Betriebssystem, das Sie JOS erstellen, verfügt über Unix-ähnliche Funktionen (z. B. Fork, Exec), wird jedoch in einem Exokernel-Stil implementiert (dh die UNIX-Funktionen werden hauptsächlich als Bibliothek auf Benutzerebene implementiert, anstatt in den Kernel integriert zu sein). Die Hauptteile des JOS -Betriebssystems sind:
- Booten
- Speicherverwaltung
- Benutzerumgebungen
- Präventiver Multitasking
- Dateisystem, Spawn und Shell
- Netzwerktreiber
- Open-End-Projekt
Wir werden Skelettcode für JOS -Stücke bereitstellen, aber Sie müssen die ganze harte Arbeit erledigen.
Die vollständige Konfiguration finden Sie auf der LAB -Webseite.
Eine einfache Möglichkeit, das Projekt auszuprobieren, besteht darin, ein Docker -Bild zu verwenden.
Docker Build -t Jos.
Es kann verwendet werden mit:
docker run -v $(pwd):/to_build -it jos
Dies öffnet eine Schale in einer Umgebung mit dem richtigen Compiler und QEMU.
make
make qemu-nox
TODO: GDB und QEMU mit x hinzufügen