Frage

Dies könnte vergeblich sein, da ich ein Betriebssystem weiß zu schreiben ist unerträglich kompliziert (vor allem von sich selbst).

  • Ich erwarte nicht, die nächste Linux oder Windows zu bauen.

  • Ich weiß, dass es schrecklich sein, und Buggy, und werde nicht funktionieren, aber das ist in Ordnung.

Ich will alles selber schreiben, in Versammlung C und (etwas) C ++ .

Dies ist ein künftiges Projekt, da ich mit einigen anderen Dingen im Moment bin beschäftigt und habe nicht die Zeit, sofort, aber ich dachte, ich es jetzt fragen würde, vielleicht könnte ich viele Antworten auf diese bekommen, und es könnte aufbauen und sein eine nützliche Ressource für diese Art von Ansatz (alles andere habe ich beteiligt Gebäude gesehen weg von minix, einen vorhandenen Bootloader verwenden, bauen sie in einem virtuellen Boot-Programm Sache, etc).

Ich möchte eine meiner älteren Desktops einzurichten mit einem Monitor, Tastatur und Maus, und anfangen zu arbeiten auf eine blank Festplatte.

ich lernen, wie man meinen eigenen Bootloader zu schreiben (ich habe viele Ressourcen dazu gefunden, aber der Vollständigkeit halber, bitte noch einige gute hinzufügen), meine eigenen USB-Treiber (wenn das notwendig), einen CD-Treiber ( wenn das notwendig), etc. Alles, von Grund auf neu.

  • Wie kann ich den Code auf den Computer setzen? Ist es am besten, es mit einer Diskette zu tun? Können die meisten Computer es von einem USB-Stick zu tun?

  • Was Treiber brauche ich, und kann vorschlagen, dass Sie alle Verweise auf den Aufbau die?

  • Nach dem Bootsequenz - was dann? Wie erhalte ich in den geschützten Modus etc.

  • Wie verwalte ich Speicher ohne die Hilfe eines Betriebssystems? Verwende ich nur, was Adressen ich will? Keine Initialisierung erforderlich?

  • Was werde ich ohne Zweifel in das laufen wird mich verwirren?

  • Wie kann ich es entweder ein Kommandozeilen-O / S, und ein grafischer zu machen?

  • Was ist eine grafische O / S gebaut auf? Wie, wie würde ich so etwas wie eine Befehlszeile ein, mit einer Schriftart, und ein Bild an der Spitze?

  • Wo kann ich lesen über eine Multitasking-Umgebung einrichten? (Dh., Mit zwei grafischen artigen Befehlszeilen Seite-an-Seite ausgeführt wird).

  • Wie würde ich eine Art von Windowing-System auf? Wie zeige ich Grafiken auf dem Bildschirm einmal einfaches Multitasking eingerichtet ist?

Glauben Sie mir, ich verstehe, dass dies ein sehr kompliziertes Projekt, und ich werde wahrscheinlich nie dazu bekommen, um es abgeschlossen oder es irgend schriftlich etwas.

Es gibt viele andere Stücke zu diesem ich nicht erwähnt habe, wenn Sie von jeder denken, fühlen sich frei, diejenigen hinzuzufügen.

Bitte setzen Sie ein „Thema“ pro Antwort - zum Beispiel USB-Treiber, und dann vielleicht eine Liste der Ressourcen, die Dinge für usw. zu achten

.

Auch bitte nicht vorschlagen O / S oder bereits bestehenden Code aus einem anderen Aufbau. Ich weiß, ich werde lesen eine Menge von bereits bestehenden Code (wie dem Linux-Kernel, oder beispielsweise Ressourcen, bestehende Treiber, etc.), aber letztlich möchte ich alle Schreiben selbst zu tun. Ich weiß, ich sollte bauen weg von etwas anderem, und es gibt viele andere Fragen auf SO über das, was ich lesen kann, wenn ich meine Meinung ändern und diesen Weg zu gehen. Aber das ist alles über die ganze Sache von Grund auf zu tun.

Alle Vorschläge, wie es grafisch zu bekommen? Verschiedene Videomodi und wie mit ihnen zu arbeiten, etc?

War es hilfreich?

Lösung

Das Wichtigste zuerst. Lesen, lesen, lesen, lesen, lesen. Sie müssen ein festes Verständnis davon, wie das Betriebssystem funktioniert, bevor Sie Ihre eigenen implementieren können hoffen.

Schnappen eines von Andrew Tanenbaum Bücher über Betriebssysteme. Das ist das, was wir in meiner OS-Klasse in der Schule verwendet:

Moderne Betriebssysteme PDF

Moderne Betriebssysteme auf Amazon

Trotz der lächerlichen Abdeckung, ist es ein fantastischer lesen, vor allem für ein Lehrbuch. Tanenbaum ist wirklich ein Experte auf diesem Gebiet und seine Erklärungen, wie das Betriebssystem unter der Haube arbeitet klar und einfach zu verstehen. Dieses Buch ist vor allem der Theorie, aber ich glaube, dass er auch ein Buch hat, die mehr von der Umsetzung diskutiert. Ich habe es nie gelesen, obwohl, so kann ich auf sie nicht kommentieren.

Das sollten Sie pauken Prozessmanagement, Speichermanagement, Dateisysteme, und alles, was Ihr Betriebssystem-Kernel, es zu tun braucht Hilfe, um einen startfähigen Zustand zu bekommen. Von diesem Punkt an ist es im Grunde eine Frage der Gerätetreiber für die Hardware Schreiben Sie unterstützen müssen, und bietet Implementierungen der C-Bibliotheksfunktionen zu Kernel-Anrufe für Dinge wie das Öffnen von Dateien und Geräte, Lesen und Schreiben, Weitergabe von Nachrichten zwischen Prozessen zu machen, usw. .

auf x86-Assembler Lesen Sie oben (vorausgesetzt, Sie dies für einen x86-Computer entwerfen). Das sollte zu bewegen zwischen Prozessor Betriebsart einer Menge Fragen in Bezug beantworten.

Wenn Sie irgendeine Elektronik Wissen haben, kann es einfacher sein, mit dem Schreiben eines Betriebssystems für ein Embedded-Gerät zu starten, die umfangreiche Dokumentation hat, weil es in der Regel einfacher ist als ein x86-PC. Ich wollte schon immer auch mein eigenes O schreiben, und ich beginne mit einem Microkernel Embedded OS Das Development Board von Digilent. Es kann die Soft-Core-Prozessor Microblaze von Xilinx laufen, die sehr gründliche Dokumentation hat. Es hat auch einige RAM, Flash-Datenspeicher, LEDs, Schalter, Taster, VGA-Ausgang, usw. Viel Material mit Schreiben einfacher Treiber für rumspielen.

Einer der Vorteile eines Embedded-Gerät ist auch, dass Sie in der Lage sein können, einen VGA-Treiber für eine lange Zeit zu vermeiden, zu schreiben. In meinem Fall hat die Digilent Entwicklungs-Board über eine Onboard-UART, so kann ich effektiv die serielle Ausgabe als meine Konsole das Ganze und das Booten zu einer Befehlszeile mit minimalem Aufwand zu erhalten.

So stellen Sie sicher, dass alles, was Sie zum Ziel wählen hat einen leicht verfügbaren und gut getestet Compiler für sie. Sie tun nicht will ein Betriebssystem und einen Compiler zur gleichen Zeit zu schreiben.

Andere Tipps

http://www.osdev.org/ und http://www.osdever.net/

Willkommen in der OS-Entwicklung Welt.

Siehe auch andere x86-Dokumentation Links in SO tag Wiki . Intel und AMD Handbücher, Compiler / Assembler-Dokumentation und verschiedene Führungen

Es schlägt auch BOCHS oder andere virtuelle Umgebung für die Fehlersuche verwendet wird, da können Sie Ihre Bootloader einstufiges und untersuchen Register.

würde ich vorschlagen, arbeiten, zumindest auf den ersten, auf Bochs oder eine andere virtuelle Maschine, dass der Grund dafür ist, Sie es mit Ihnen nehmen können, wo immer Sie wollen, ist es einfacher zu debuggen (Sie den genauen Zustand der Hardware sehen), und wenn Sie Hilfe von außen Debuggen benötigen, können sie genau die gleiche ‚Hardware‘ wie Sie verwenden.

Die nützlichsten Ratschläge, die ich habe, ist, sich in einen Zustand zu erhalten, wo Sie so schnell wie möglich von C-Code ausgeführt werden kann - dh booten, Ihre Descriptor Tabellen-Setup, und sich selbst zu einem Punkt, wo es ist sicher zu laufen zusammengestellt C. die meisten, wenn nicht alle der Kern sollte in C, wenn Sie gesund bleiben wollen und halten daran zu arbeiten. Montag, während an einigen Stellen erforderlich, langweilig ist und dazu neigt, zu debuggen schwer zu sein.

auf dem niedrigsten Niveau der Mindest dass ein Betriebssystem muss in der Lage zu tun, ist die Hardware eines Systems in irgendeiner Weise zu fahren und irgendwie laden ein, eine Art ausführen „Benutzercode ein.“ Wenn Sie mit einem PC starten gehen, dann müssen Sie Code schreiben, indem sie sie von einem Gerät oder einem anderes geladen werden kann. Ältere PCs haben ein BIOS-Firmware, die bestimmt, wie die Hardware eine Initialisierung (zumindest Video, Tastatur und eine Form der Lagerung oder Bootloader) führt. (Update Oktober 2017: Neuere PCs haben EFI oder UEFI-Firmware ... die weitgehend ein pedantisch Unterschied ist, die die gleichen Zwecke für diese Diskussion dienen)

.

So starten Sie durch den niedrigen Pegel Details des Lernens, wie das BIOS oder eine andere Firmware zu verwenden, auf dem Zielsystem. Das heißt, lernt, wie man ein Programm zu schreiben, das BIOS laden und auszuführen. Das wird schließlich in den Bootloader morphen. Fangen Sie klein an. Nur ein Programm, das druckt. „Hallo, Linus“ direkt aus dem Firmware-Boot-Prozess (auf einer Diskette oder USB-Stick, wäre ein guter Anfang sein ... oder auf einer Festplatte, wenn Sie mögen)

Von dort würde ich empfehlen, einen sehr einfachen seriellen Treiber zu schreiben ... aktualisieren Sie Ihren Bootloader eine serielle Schnittstelle zu initialisieren, und einen Download starten dort aus. Dann kann er den Code ausführen es über zieht. Von dort aus einem wenig Bootstrap schreiben, die auf einem anderen Satz von Blöcken schreiben können (wir ein Dateisystem nicht umgesetzt haben, noch ... nicht einmal Parsing-Partitionstabelle, so würden wir nur zunächst mit rohen Bereichen von Blöcken auf der Platte befassen ).

An diesem Punkt Bootloader neuen Code Lage sein sollte, über die serielle Leitung zu ziehen, kippen ihn in eine Partition (ja, Partitionstabelle Handhabung von einer Art zu implementieren ... ob es sich um Standard-PC-Konventionen entspricht liegt an Ihnen an dieser Stelle), und ausführen.

Von dort aus sollten Sie in der Lage sein, weit komplexere Funktionen zu arbeiten. Von dieser Basis können Sie eine neue „Kernel“ ... starten Sie Ihren Testbed, und haben die neuen Kernel es bereitgestellt schreiben und kompilieren.

(Ihr Bootloader sollte ein Signal nehmen, wie ein BREAK über die seriellen Handshaking-Leitungen als Befehl um den Download zu überspringen und nur das vorhandene Bild bootet, und es soll eine gewisse Timeout auf diese Weise auch handhaben)

Von dort aus einer sehr einfachen Anschlussschicht und Kommando-Shell schreiben? Ein Dateisystem? Implementieren Sie Befehle neue ausführbare Inhalte anders als die Kernel (Dateien oder Objekte irgendeine Art) zum Download bereit. Und so weiter.

Natürlich könnte man mit einem Treiber für die Konsole mit der PC-Tastatur und Video gestartet (das BIOS INT 0x16h und INT 0x10h Sachen bzw. wenn ich mich richtig erinnere). Ich würde jedoch vorschlagen, mit einem seriellen Treiber starten, da Sie dann Ihren Build automatisieren / deploy / Testzyklus von jedem anderen vorhandenen (funktionellen) System. Da Ihr neues Betriebssystem als Quer kompilierte Projekt starten, es wird wesentlich sein, dass Sie eine optimierte Art und Weise haben, dass der Umgang mit.

Ich weiß nicht, wie weit Sie Ihr Projekt übernehmen wollen. Ein ziemlich beeindruckend Ziel wäre es, zu erreichen „self-Hosting.“ Wenn Sie einen einfachen Assembler / Compiler erstellen können, mit denen können Sie Ihre neue OS (wieder) bauen, Link und Boot in eine funktionierende Version des neuen Betriebssystem verwenden ... dann haben Sie dieses Ziel erreicht. (Beachten Sie, dass ist keine Voraussetzung. Viele eingebettete Systeme sind nie Selbst Hosting zu gehen, und es ist nichts falsch mit, dass).

Wenn Sie nicht mit Hardware-Virtualisierung dagegen gibt es einen Kurs (Buch + Vorlesungen + Software), die Sie ‚Von Nand zu Tetris‘ nehmen. Sie erstellen ein komplettes Computersystem vollständig selbst von der (für diese Zwecke Atom- und angegeben) elektrische NAND-Gatter, direkt durch das Betriebssystem zu bauen, eine Sprache aus, und schließlich ein einfaches Spiel auf Ihrer persönlichen Maschine Codierung.

Ich denke, es ist eine großartige Idee und etwas, das ich vollständig in bald stecken bleiben mag. Das Buch ist überraschend günstig und ich glaube, dass der Kurs am MIT unterrichtet wird. Ich kann die volle, vollständige Kenntnis des gesamten Systems kein größeres Gefühl vorstellen, als wenn man sich von Grund auf neu gebaut.

Link: http://www1.idc.ac.il/tecs/

würde ich klein anfangen und den Kauf eines 8086 Embedded-Entwicklungs-Kit, und entwickeln ein Multitasking-Betriebssystem, dass auf. Sobald Sie einen Kernel und sind vertraut mit Arbeiten auf Hardware-Ebene, werden Sie bereit sein, etwas schwieriger zu tun.

Gebäude auch ein VGA-Display DOS-Klon ist eine ziemlich anspruchsvolle Sache. Die Details sind enorm. : -)

spezifische Themen.

Wie kann ich den Code auf den Computer setzen? Ist es am besten, es mit einer Diskette zu tun? Kann die meisten Computer es von einem USB-Stick zu tun?

Das BIOS tut elementares Bootstrapping.


Welche Treiber brauche ich, und kann vorschlagen, dass Sie alle Verweise auf den Aufbau die?

alles, was nicht direkt CPU / Speicher-Operationen sind. Alles, was nicht direkt in dem CPU-Referenzhandbuch ist.


Nach der Bootreihenfolge - was dann? Wie erhalte ich in den geschützten Modus etc.

Protected Mode wird ein Teil der Boot-Sequenz sein.

dann starten Sie Multitasking und herauszufinden, wie man Prozesse starten.


Wie kann ich Speicher ohne die Hilfe eines Betriebssystems verwalten? Verwende ich nur, was Adressen ich will? Keine Initialisierung erforderlich?

Richtig. Sie werden wahrscheinlich schließlich ein virtuelles Speichersystem sortieren möchten.


Was werde ich ohne Zweifel in das laufen wird mich verwirren?

nicht Debugging-Tools mit, nicht mit IO


Wie kann ich es entweder ein Kommandozeilen-O / S, und ein grafischer ein?

Mit Trauer. Nachschlagen Windows 3.1 und Linux, insbesondere X-Fenster.


Was ist eine grafische O / S gebaut auf? Wie, wie würde ich so etwas wie eine Befehlszeile ein, mit einer Schriftart, und ein Bild an der Spitze?

Suchen X-Fenster.


letzter Rat: Studie linux / x Fenster. Es ist nicht perfekt, aber es vermittelt ein Verständnis von ein Ansatz. Auch Studie Embedded-Systeme.

Ich sehe viele gute Hinweise auf OS Entwicklungsstandorte, also werde ich einen anderen Ansatz beschreiben:

Wenn Sie die Erfahrung der Implementierung ein OS aus blankem Metall wollen, gibt es viel besser Hardware Entscheidungen als einen alten PC. Mit der PC-Architektur, wird eine ungeregelte Menge Ihrer Zeit-Codierung um uninteressant Artefakte seiner 30 Jahre Designgeschichte verbringen. Zum Beispiel hat nur der Bootloader Teil des Projektes wahrscheinlich viele einen tapferen Programmierer ausgebrannt.

Zum Beispiel, werden Sie eine Reihe von Treibern benötigen Kernel aus der Festplatte und / oder das Netzwerk zu lesen. Dann werden Sie Code, um in den geschützten Modus zu erhalten. An diesem Punkt müssen Sie einen anderen Satz von Treibern! Sehr wenig von der Arbeit, die Sie den Chip in der geschützten Modus erhalten wird nach diesem Punkt übertragbar. Sie wollen es auf einem anderen PC + laufen - 4 Jahre, und Sie werden noch eine weitere Reihe von Treibern benötigen

.

Schauen Sie in Bootstrapping einen ARM oder anderen 32-Bit "embedded" Chip. Inexpensive Entwicklungs-Boards zur Verfügung, oder Sie können Ihre eigene löten! Einige haben integrierte Ethernet und USB. Ich denke, Sie werden mehr Spaß haben, arbeiten an einer gesunden, nicht-krustigen Architektur und vielleicht mit einigen wiederverwendbaren Fähigkeiten enden.

Mehr als alles andere, wenn Sie diese auf echter Hardware laufen lassen wollen, müssen Sie unbedingt eine Kopie Ihres Prozessors manuell. Die Intel-Handbuch ( http://www.intel.com/products/processor/manuals/) sind von unschätzbarem Wert. Sie gehen über alles von Schaltmodi (real / geschützt) auf virtuelle Speicherverwaltung (wenn Sie so weit gehen wählen) syscalls zu machen (wenn Sie jemals User-Modus zu tun bekommen). Am wichtigsten ist Sie erklären im Detail eine Reihe von Dingen, die für Dinge zu funktionieren, wie die TSS und Segmentregister eingerichtet werden muss, dass die meisten OS Texte nicht diskutieren, weil sie mehr besorgt sind mit geordnete Konzepte als prozessorspezifische Details.

Die OS Development Series @ BrokenThorn Sie interessieren könnte.

Versuchen Sie den Code eines kleinen, einfachen Open-Source-Betriebssystem, wie MikeOS zu lesen.

Alternativ schlage ich die folgenden Schritte (sollte Spaß machen!):

  1. eine virtuelle Maschine schreiben. Definieren Sie alle Ihre Prozessoranweisungen, so dass Sie Ihr System in- und auswendig kennen. Schnittstelle, die sie mit SDL für Tastatur, Maus, Bildschirm, Audio-Zugang. Halten Sie es einfach so, dass Sie alles in Ihrem Kopf auf einmal passen. Es braucht nicht eine state-of-the-art virtuelle Maschine zu sein, nur eine, die die Funktion eines ‚echten‘ Computer emulieren kann.
  2. Schreiben Sie einen Assembler für die virtuelle Maschine des Prozessors. Denken Sie daran, dass dieser Assembler braucht kein Programm geschrieben zu sein, in der virtuellen Maschine Sprache, aber alles, was Ihre Assemblersprache in Maschinencode umwandeln kann.
  3. Definieren Sie eine ausführbare Datei-Format und einen einfachen Linker schreiben.
  4. Sie haben alle Teile bekommen nun Ihr Betriebssystem zu schreiben! Schreiben Sie es in der Assemblersprache, montieren sie ... etc .. Sie brauchen nicht einen so komplizierten bootloading Prozess, nur um Ihre Maschine Ihre OS zuerst ausgeführt werden.

Die oben genannten Schritte können ein bisschen dumm scheinen für ein einfaches Betriebssystem zu schreiben, aber hey, es ist verdammt Spaß.

Besuche MikeOS . Es ist ein ziemlich einfaches O geschrieben lesbar ist (wie in kommentiert) Montag. Auch wenn seine ziemlich einfach, hat es eine GUI haben und einige Netzwerk- und Multimedia-Unterstützung.

Bearbeiten : MenuetOS ist grafisch. Es ist auch geschrieben ist gerade asm, aber sein anspruchsvoller als MikeOS

Sie haben ein ehrgeiziges Ziel. Aber Ausführung ist der Schlüssel.

Die meisten der strukturierten Ansätze (Lehrbuch oder College-Klasse) werden Sie durch den Prozess, aber sie viel von dem winzigsten Code liefern, der über die undurchschaubaren Details der von Ihnen gewählten Plattform Glossen und lassen Sie konzentrieren sich auf der Big- Bildideen. Prozessplanung, Speicherverwaltung, Deadlock Prävention, I / O, usw.

Mein Rat ist dies: schneidet Weg zurück auf Ihren Erwartungen und mit einer grundlegenden Frage beginnen

.

Was ist ein Betriebssystem?

Ein Informatiker wird (hoffentlich) nie sagen, dass ein Betriebssystem eine grafische Benutzeroberfläche ist, oder einen Web-Browser oder eine Art und Weise USB-Geräte zu anschließen, oder alles, was ein Benutzer oder berührt tatsächlich sehen. Stattdessen sind ein Betriebssystem auf seiner grundlegendsten Ebene die Dinge, die ich oben erwähnt. Sie fallen alle unter einem großen Schirm. Ressourcenmanagement

Ein Betriebssystem ist nichts anderes als ein Programm, das die Hardware-Ressourcen des Computers verwaltet. Speicher, CPU und Peripheriegeräte

Hier ist ein einfaches Betriebssystem: ein Programm gibt den Anwender in einem Programm (hexadezimal oder binär) eine serielle Verbindung. Nachdem das Programm in getippt worden, es läuft das Programm. Wenn das Programm beendet ist, wird die Steuerung an den Benutzer zurückgegeben, wo sie entweder das Programm erneut oder geben Sie einen neuen ausgeführt werden kann.

Tun Sie dies auf eine „saubere“ Architektur wie einem eingebetteten ARM-Prozessor mit 64 KB Speicher oder so. Sie können dies in der Montage nach wenigen Tagen lernen die Ins und Outs der ARM-Code auf. Und voila! , Sie haben sich ein Betriebssystem.

Es tut alles ein OS tun soll:

  • Sie verwaltet Speicher, indem nicht der Benutzer selbst das Betriebssystem überschreiben zu lassen.
  • Es plant einen einzigen Prozess ausgeführt werden.
  • Sie übernimmt das I / O auf die einzige serielle Peripherie.

Das gibt Ihnen ein Baustein starten aus. Sie haben jetzt eine große Auswahl. Vielleicht ist einer von ihnen wäre, zwei Programme zu ermöglichen, in den Speicher geladen werden und lassen den Benutzer entscheiden, welche neben laufen.

Oder Sie könnten die Benutzer suspendieren Ausführung eines Programms lassen, wechseln auf die andere, suspendieren, und wechseln. Dies ist rudimentär Multitasking, obwohl es völlig manuell.

Ihre Entscheidungen sind unbegrenzt, aber jeder ist ein Baby Schritt von dem, was Sie hatten vor.

Es macht Spaß, wenn Sie Ihre Sehenswürdigkeiten zu hoch nicht richten!

ich eine Liste der Ressourcen auf Stackoverflow halten: So starten in Betriebssystementwicklung . Bitte fügen Sie neue Ressourcen, um es, wie Sie beginnen du bist Abenteuer (ich bin zu beginnen :))

Viele Schulen haben OS-Klassen, die von viel tun, was Sie beschreiben. Meine Schule (CMU) gelehrt OS in C, und wir schrieben einen Kernel, Dateisystem, und Shell, und wurde mit Code für einen Bootloader zur Verfügung gestellt.

Leider war ich nicht in der Lage jede endgültige Ressource für diesen Kurs (15-412) im Internet zu finden, und es ist im Laufe der Zeit weiterentwickelt. Aber vielleicht könnten die Menschen schreiben, Links zu Quellen und Zuweisungen für Schulen, die guten Ressourcen im Web haben.

Sie können genießen diese Tutorial namens „Ihr eigenes Spielzeug Rollen UNIX- Klon OS“, die sehr aufschlussreich und sollten Sie auf Ihrem Weg helfen.

Viel Glück.

Studieren Sie das A2-System (früher das Oberon System ) Ideen können Sie stehlen. Es ist ein grafisches Betriebssystem von nur zwei Personen gebaut, obwohl zugegebenermaßen ein Niklaus Wirth ist. Zuerst um 1990 freigegeben und die Geschwindigkeit ist erstaunlich gut. Es gibt ein Buch von Gutknecht.

Über Low-Level-Grafikprogrammierung, dies wird Ihnen eine Menge Informationen: http: / /www.osdever.net/FreeVGA/home.htm . (Es ist sehr interessant für Text-Modus als auch.)

  

Was werde ich ohne Zweifel in das laufen wird mich verwirren?

Sie, dass am PC erkennen, dass es ist eine Menge Sachen, die nicht klar ist: die x86-Befehlssatz selbst kompliziert ist, und wenn Sie einen direkten Zugriff auf die Hardware zu bekommen, kann es eine Weile dauern, bevor Sie zu verstehen, wie eine einzige schreiben Zeichen auf dem Bildschirm.

Sie sich keine Sorgen über Diskette und solche, die meiste Zeit werden Sie einen Emulator wie Bochs oder QEmu verwenden.

Sie können einen Blick auf, berücksichtigen wollen Betriebssysteme Konzepte, von Abraham Silberschatz - Verständnis Systeme Programmierung Konzepte ist eine wesentliche Voraussetzung, werfen Sie einen Blick in F / OSS-Kernel-Interna von OSes linux * BSD und GNU / Linux , vor allem frühere Versionen, die wahrscheinlich ein bisschen mehr dokumentiert. alt text alt text

Hier finden Sie aktuelle Minix . Studieren Sie den Quellcode zusammen mit „ Betriebssysteme Design und Implementierung “. Betrachten Sie Beiträge zum Projekt zu machen. Ich denke, Minix ein wirklich gute und vielversprechende OS in der Herstellung ist. Es ist auch gut Projekt finanziert. Das heißt, könnten Sie sogar für Ihre Beiträge bezahlt!

Es ist sehr einfach, dank der Tatsache, dass das BIOS hat bereits viele Ein- / Ausgabefunktionen hinein gebaut für Bildmodus zu ändern, Pixelfarbe ändern, Text auf den Bildschirm und viele anderen Dinge zu schreiben. Allerdings enthält es keine Unterstützung für Dateisysteme, das ist eines der wenigen Dinge, die Sie in Ihrem OS integrieren müssen.

Das BIOS lädt den ersten Sektor auf der Festplatte und startet den Code von dort ausgeführt wird, so dass Ihr Betriebssystem mit dem ersten Befehl im ersten Sektor auf der Festplatte abgelegt werden muß.

Dieses Wikipedia-Artikel sollten Sie auf BIOS Einstieg Interrupts für Text auf dem Bildschirm schreiben, Tasten der Tastatur und andere Sachen zu empfangen. https://en.wikipedia.org/wiki/BIOS_interrupt_call

Auch wenn Sie planen, C ++ Ich würde auf Assembler-Programmierung empfehlen dringend, auf das Lesen, wie es zu verstehen, wie die Hardware funktioniert lebenswichtig ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top