Dieser Code sieht an vielen Orten möglicherweise nicht so geeignet aus und wird früher oder später neu ausgestattet. NEUES LAARHOUSE REFORN-OS. Warten Sie, bis ich zurückkomme, um die Grube auszufüllen. Refactored Version: https://github.com/yiezias/recover-os
Dieses Projekt basiert auf der Version der AMD64 -Architektur (oder x86_64 -Architektur) des Betriebssystems, das von "Betriebssystem Wahrheit Restore" implementiert wurde. Die Hauptideen und der Code stimmen mit dem Originalbuch überein.
Das von "Betriebssystem Truth Restore" implementierte Betriebssystem wird auf einem 32-Bit-X86-Architekturprozessor ausgeführt, aber jetzt haben wir bereits in die 64-Bit-ERA eingegeben. Also ich Kopie Siehe den Code in "Betriebssystem Wahrheit Wiederherstellung", um seine 64-Bit-Version zu implementieren.
$ make run kompilieren und den Bochs Emulator starten.
Dieses Betriebssystem hat 2048, Snake und andere Mini-Spiele integriert.
Schreiben Sie Code mit Wiederherstellung:
(Das Terminal implementiert keine Eingabe- und Ausgangsumleitung, und die folgende Katze unterscheidet sich von der Katze unter Linux.)
(Zeigen Sie einfach die Funktion des Schreibens von Textdateien an)

2048 Mini -Spiel:

Gierige Schlange (der Rahmenabfall ist ernst, also werde ich die Animationen nicht laufen):

Die leicht verständlichsten Bücher, die ich gelesen habe, detailliert und interessant. Auch wenn es ein bisschen langatmedig erscheint, muss der Autor immer noch verschiedene Möglichkeiten ausprobieren, um die Leser verstehen zu lassen (wo kann ich ein so freundliches Buch finden). Unter den vielen Büchern im Zusammenhang mit dem Betriebssystem habe ich mich endlich ausgewählt Der einzige, der verstehen kann Buchimplementierung des Betriebssystems.
Hauptsächlich der Unterschied zwischen AMD64- und X86 -Architekturen
Unter der AMD64 -Architektur verwenden Funktionen im Allgemeinen Register, um Parameter zu übergeben, und die Funktion, die unter x86 aufruft, hat keinen Referenzwert. Aber es ist leicht zu verstehen. Schreiben Sie eine C -Funktion im Detail und kompilieren Sie sie in die Montage. Dann werden Sie sie verstehen, indem Sie sie in GCC schreiben. Dieses Wissen ist an vielen Orten während des Entwicklungsprozesses erforderlich.
Der lange Modus kann als 64-Bit verstanden werden Besonderheit Der geschützte Modus muss der Prozessor vom realen Modus zum geschützten Modus und dann zum Long -Modus wechseln.
Der bequemste Weg, um Informationen zu erhalten, ist natürlich eine Suchmaschine, aber Suchmaschinen können die gewünschten Inhalte oft nicht finden, und die wirklich maßgeblichen Informationen sind immer noch AMD- oder Intel -Dokumente.
Dieses System verlangt die Methode zur Unterbrechung der Implementierung von Systemaufrufen vollständig und verwendet SYSCALL SYSRET Fast System Call -Anweisung, um sie zu implementieren. Weitere Informationen finden Sie unter AMD- oder Intel -Dokumente, und der Inhalt ist nicht kompliziert.
Das Dateisystem des Autors fühlt sich nicht sehr gut geschrieben an. Einerseits ist das Dateisystem bereits sehr kompliziert, aber der Autor verwendet häufig fast Hunderte von Funktionszeilen, und es kann ein Code wiederverwendet werden, aber es muss wiederholt implementiert werden, was insgesamt sehr verwirrend ist. Dieses Systemdateisystem entspricht einer wesentlichen Änderung des Autors, aber es sollte nicht schwer zu verstehen sein, basierend auf dem Buch und Code des Autors. Das Dateisystem dieses Systems implementiert keine Funktionen auf Verzeichnisebene, sondern wirkt sich nicht auf die Implementierung anderer Funktionen des Systems aus, sodass es weggelassen wird.
Die Hülle des Autors wird im Kernel implementiert. Dieses System verwendet die Shell als Anwendung, und der Init -Prozess verwendet den EXECV -Systemaufruf, um die Root -Verzeichnis -Shell zu laden. Viele integrierte Befehle des Autorensystems werden auch direkt als Anwendungen in diesem System implementiert. Die Codeebene ist jedoch ähnlich. Es gibt auch spezielle Minispiele, mit denen die Schnittstelle des Betriebssystems aufgerufen werden kann, um Anwendungen unabhängig voneinander zu implementieren, und dieses System ist im Grunde genommen abgeschlossen.