Monkos ist ein experimentelles 64-Bit-Betriebssystem für Intel- und AMD-Prozessoren. Es ist eine Mischung aus C und Montagesprache und in Arbeit. Derzeit besteht es aus einem BIOS -Bootlader, einem virtuellen Konsolensystem, einem Interrupt -Handhabungssystem, einem PAGED -Speichermanager, einem Heap -Allocator, einigen einfachen Gerätetreibern und einer primitiven interaktiven Hülle. Der Bootlader ist so konzipiert, dass das Betriebssystem von einem CDROM gestartet wird.
Das Betriebssystem baut derzeit unter Linux mit einem Kreuzkompiler auf. Es gibt zwei Möglichkeiten, es zu erstellen: (1) Durch die Installation aller erforderlichen Tools in Ihrem System und zum Ausführen make oder (2) mit einem vorgefertigten Docker-Container, der alle Build-Tools enthält, die Sie benötigen.
Um mit Tools zu erstellen, die auf Ihrem lokalen System installiert sind, müssen Sie die folgende Software bereits installieren lassen:
Die meisten dieser Tools sind bei Standard -Linux -Paketmanagern erhältlich. Der Cross-Compiler ist jedoch nicht. Um einen Cross-Compiler zu erstellen, wenden Sie sich an die Anweisungen auf dieser Seite. Folgen Sie dem LIBGCC auch ohne Anweisungen zur Rotzone.
Sobald Sie alle Werkzeuge installiert und dafür gesorgt haben, dass der Cross-Compiler auf Ihrem Weg ist, rennen make .
$ make Dies führt zu einer bootfähigen CDROM -ISO -Datei namens monk.iso in Ihrem Build -Unterverzeichnis.
Da es sich um ein bisschen mühsam handeln kann, einen Cross-Compiler zu bauen und zu installieren, wurde ein Docker-Container vorbereitet, sodass Sie nicht selbst den Cross-Compiler bauen können. Um den Docker-basierten Build auszuführen, stellen Sie sicher, dass Sie eine aktuelle Version von Docker in Ihrem System installiert haben, fügen Sie sich der Docker-Benutzergruppe Ihres Systems hinzu und geben Sie dann Folgendes ein:
$ make docker Dadurch wird der Docker-Container ( brett/monkos-build ) heruntergezogen, wenn Sie ihn noch nicht haben, den Build im Container ausführen und die ISO-Datei (und alle anderen Zwischenausgabedateien) in Ihrem Build-Unterverzeichnis generieren. Es verhält sich fast genau so, als ob Sie mit einem Cross-Compiler, der lokal auf Ihrem System installiert ist, mit einem Cross-Compiler make .
Es gibt verschiedene Möglichkeiten, Monkos auszuführen, sobald Sie die ISO -Datei haben. Der erste und zeitaufwändigste Weg besteht darin, es mit Ihrem bevorzugten Brenndienstprogramm auf ein CD- oder DVD-ROM zu verbrennen. Dies ist die einzige Möglichkeit, Monkos auf einem nackten Metallsystem zu testen.
Alternativ können Sie das Betriebssystem über virtuelle Maschinensoftware wie VMware oder VirtualBox starten.
Oder Sie können das Betriebssystem in einem Linux-basierten Emulator wie Qemu oder Bochs ausführen. Das Monkos Makefile macht diese Alternative besonders einfach, indem es eine einfache Build -Regel zur Einführung des Betriebssystems in QEMU bereitstellt:
$ make testSie können das Makefile auch verwenden, um eine Kernel -Debugging -Sitzung unter QEMU und GDB zu starten. Starten Sie zunächst QEMU im Debugging -Modus:
$ make debugStarten Sie dann eine GDB -Debugger -Sitzung, indem Sie GDB an den QEMU -Debugger -Endpunkt anhängen:
$ gdb
(gdb) set arch i386:x86-64
(gdb) symbol-file build/monk.sys
(gdb) target remote localhost:8864
(gdb) layout src
Run make docs , um eine schön formatierte Dokumentation für Monkos zu erstellen. Um dies zu tun, benötigen Sie Doxygen auf Ihrem System.
$ make docs Die Doxygen -Dokumente werden im Unterverzeichnis der docs/monk angezeigt. Um sie anzusehen, starten Sie sie in Ihrem Browser (in diesem Fall Firefox):
$ firefox docs/monk/index.htmlUm Code-Tags für einfache Symbolen in Ihrem Editor zu erstellen, führen Sie das Makefile mit dem überschwänglichen Dienstprogramm aus:
$ make tags Dies erzeugt eine .tags -Datei in Ihrem Monkos -Verzeichnis.
Verwenden Sie den Clean Build, um alle Zwischendateien aufzuräumen:
$ make cleanUm alle erzeugten Abhängigkeitsdateien zu reinigen, verwenden Sie den CleanDeps Build:
$ make cleandepsBitte wenden Sie sich an die Doxygen-formatierte Dokumentation, die Teil des Monkos-Dokumentationssatzes ist.
Dies sind einige der Ressourcen, auf die ich mich verlassen habe, um die zahlreichen und verschiedenen Aspekte des Bootloaders und des Betriebssystems besser zu verstehen:
Die Verwendung dieses Quellcode wird durch eine Lizenz im BSD-Stil geregelt, die in der Lizenzdatei zu finden ist.