Erstellen eines Betriebssystems von Grund auf neu. Dieses Betriebssystem wird für i386+ 32bit Intel x86 erstellt. Andere Plattformen funktionieren möglicherweise nicht und wurden nicht getestet.
Geben Sie einfach aus, make run , um alle benötigten Dateien zu erstellen und im QEMU -Emulator auszuführen. Das Makefile ist ein Trümmer, daher werden alle Vorschläge zu besseren Makefiles geschätzt.
nasm - zum Zusammenstellen des Bootloadersgcc - Zum Kompilieren des Kernels und der C -Bibliothek eingeschlossenld - zum Verknüpfen aller Kernel -Dateien miteinanderobjcopy - zum Erstellen des Kernel -Binärs aus der ELF -Dateiar - zum Erstellen der C -Bibliotheksbibliothekmake - um das Makefile zu laufenqemu - das Betriebssystem ausführenWindows Linux subsystem :cmd - Für die Verwendung von Windows -Befehlen im Linux -Subsystem -Terminalpartcopy - Windows CMD zum Erstellen des Bootsektorsimdisk - Windows CMD zum Erstellen und Montieren des Diskettenbildescopy - Windows CMS zum Kopieren von Dateien auf das Floppy -Bild Es tut mir leid, dass dies die Menschen dazu verletzt, Windows und Linux zusammen zu verwenden. Wenn also jemand Vorschläge und/oder bessere Makefile hat, die ich verwenden kann, lassen Sie es mich bitte wissen. Makefiles sind für mich neu, sodass Sie alle Änderungen vorgenommen haben, können Sie sie kommentieren, damit ich verstehen kann, was los ist. Besonders ein Makefile, das nur Linux -Befehle verwendet, wäre am besten. Ich habe versucht, dd für die Erstellung des Bootsektors zu verwenden, konnte ihn aber nicht korrekt zum Laufen bringen, sodass die Fahrt einiger Windows -Befehle gut ist. Sie können mir eine E -Mail an [email protected] senden, wenn Sie Änderungen haben.
Sie können make debug ausführen, das alle benötigten Dateien erstellt und im QEMU -Emulator ausgeführt wird. Sie können dann einen GDB -Debugger anhängen, indem Sie die Zeilen in .gdbinit hinzufügen oder die Befehle direkt eingeben:
set architecture i386
target remote localhost:1234
br *0x7c00
c
Dadurch wird die Architektur auf 16 Bit x86 festgelegt, da der Bootloader zunächst codiert wird. Stellen Sie dann eine Verbindung zum Emulator auf Port 1234 her (Standard für QEMU). Legt dann am Anfang des Bootloaders einen Break -Punkt fest. Das startet das Betriebssystem und stoppt zu Beginn des Bootloaders.
Wenn Sie zu Beginn des Kernels brechen möchten, ist die Adresse, bei der es geladen ist, 0x100000. Ersetzen Sie also br *0x7c00 durch br *0x100000 .
Sie führen mein Betriebssystem auf Ihrem eigenen Risiko für echte Hardware aus. Es gibt keine Garantie dafür, dass Hardware durch Ausführen des Betriebssystems nicht beschädigt wird. Führen Sie also zur Sicherheit in einer virtuellen Maschine oder einem Emulator aus.