Dies kann vergebens sein, da ich weiß, dass das Schreiben eines Betriebssystems unerträglich kompliziert ist (insbesondere für sich selbst).
Ich erwarte nicht, das nächste Linux oder Windows zu bauen.
Ich weiß, dass es schrecklich und fehlerhaft sein wird und nicht funktionieren wird, aber das ist in Ordnung.
Ich möchte alles selbst schreiben, in Assembly , C und (einigen) C ++ .
Dies ist ein zukünftiges Projekt, da ich im Moment mit einigen anderen Dingen beschäftigt bin und nicht sofort die Zeit habe, aber ich dachte, ich würde es jetzt fragen, also könnte ich vielleicht viele Antworten darauf bekommen, und es könnte Aufbau und eine nützliche Ressource für diese Art von Ansatz sein (alles andere, was ich gesehen habe, bestand darin, aus Minix aufzubauen, einen vorhandenen Bootloader zu verwenden, ihn in ein virtuelles Bootprogramm zu integrieren usw.).
Ich möchte einen meiner älteren Desktops mit Monitor, Tastatur und Maus einrichten und mit der Arbeit an einer leeren Festplatte beginnen.
Ich möchte lernen, wie ich meinen eigenen Bootloader schreibe (ich habe viele Ressourcen dazu gefunden, aber der Vollständigkeit halber bitte noch einige gute hinzufügen), meinen eigenen USB-Treiber (falls erforderlich), einen CD-Treiber (falls erforderlich) ) usw. Alles von Grund auf.
Wie lege ich den Code auf den Computer? Ist es am besten, es mit einer Diskette zu machen? Können die meisten Computer dies von einem USB-Stick aus tun?
Welche Treiber brauche ich, und können Sie Hinweise zum Erstellen dieser Treiber vorschlagen?
Nach der Bootsequenz - was dann? Wie komme ich in den geschützten Modus usw.
Wie verwalte ich den Speicher ohne die Hilfe eines Betriebssystems? Benutze ich nur die gewünschten Adressen? Keine Initialisierung notwendig?
Was werde ich zweifellos antreffen, das mich verwirren wird?
Wie kann ich es entweder zu einem Befehlszeilen-Betriebssystem oder zu einem grafischen machen?
Worauf baut ein grafisches Betriebssystem auf? Wie würde ich so etwas wie eine Befehlszeile mit einer Schriftart und einem Bild oben machen?
Wo kann ich über das Einrichten einer Multitasking-Umgebung lesen? (dh zwei grafisch ähnliche Befehlszeilen, die nebeneinander ausgeführt werden).
Wie würde ich eine Art Fenstersystem einrichten? Wie zeige ich Grafiken auf dem Bildschirm an, wenn einfaches Multitasking eingerichtet ist?
Glauben Sie mir, ich verstehe, dass dies ein sehr kompliziertes Projekt ist, und ich werde wahrscheinlich nie dazu kommen, es abzuschließen oder irgendetwas von Nutzen zu schreiben.
Es gibt viele andere Stücke, die ich nicht erwähnt habe. Wenn Sie an eines denken, können Sie diese auch hinzufügen.
Bitte geben Sie ein "Thema" pro Antwort an - zum Beispiel USB-Treiber und dann möglicherweise eine Liste mit Ressourcen, Dingen, auf die Sie achten müssen usw.
Bitte schlagen Sie auch nicht vor, aus einem anderen Betriebssystem oder bereits vorhandenem Code aufzubauen. Ich weiß, dass ich viel bereits vorhandenen Code lesen werde (wie den Linux-Kernel oder Beispielressourcen, vorhandene Treiber usw.), aber letztendlich möchte ich das ganze Schreiben selbst machen. Ich weiß, ich sollte aus etwas anderem aufbauen, und es gibt viele andere Fragen dazu, die ich lesen kann, wenn ich es mir anders überlege und diesen Weg gehe. Aber hier geht es darum, das Ganze von Grund auf neu zu machen.
Irgendwelche Vorschläge, wie man es grafisch macht? Verschiedene Videomodi und wie man damit arbeitet usw.?