- Ein praxisorientierter Leitfaden dafür, wie man selbst ein x86-Betriebssystem entwickelt
- So geschrieben, dass technische Details vermittelt werden, ohne zu viele Informationen über Codebeispiele oder Samples preiszugeben
- Erklärt weder die Theorie von Betriebssystemen noch die Funktionsweise eines bestimmten Betriebssystems
- Die frühen Kapitel sind detailliert und konkret erklärt, damit man sich schnell an das Schreiben von Code gewöhnen kann
- Die späteren Kapitel skizzieren Konzepte und Anforderungen grob und regen die Leser dazu an, Implementierung und Design selbst zu übernehmen
- Wenn man Betriebssystemtheorie lernen möchte, wird Modern Operating Systems von Andrew Tanenbaum empfohlen
Wichtige Kapitelinhalte
- Frühe Kapitel
- Kapitel 2–3: Entwicklungsumgebung einrichten und den OS-Kernel in einer virtuellen Maschine booten → Beginn des Codens in C
- Kapitel 4: Bildschirmausgabe und Ausgabe über den seriellen Port
- Kapitel 5: Segmentierung
- Kapitel 6: Interrupts und Eingabeverarbeitung
- Nach der Entwicklung eines funktionsfähigen Kernels
- Kapitel 7: Vorbereitung der Unterstützung für Anwendungen im User Mode
- Kapitel 8–9: Einrichten von virtuellem Speicher mittels Paging
- Kapitel 10: Speicherallokation
- Kapitel 11: Ausführen von Benutzeranwendungen
- Fortgeschrittene Themen
- Kapitel 12: Dateisystem
- Kapitel 13: System Calls
- Kapitel 14: Multitasking
Hintergrund des Buchs und Entwicklungsprozess
- Dieses Buch und der OS-Kernel wurden im Rahmen eines fortgeschrittenen Individualkurses am schwedischen Royal Institute of Technology entwickelt
- Die Autoren hatten zuvor Kurse zur OS-Theorie belegt, aber nur wenig praktische Erfahrung mit echter Kernel-Entwicklung
- Um die Theorie praktisch umzusetzen und ein tieferes Verständnis zu gewinnen, richteten sie einen neuen Kurs ein und verfassten dieses Buch
- Die x86-Architektur war über lange Zeit die am weitesten verbreitete Hardware-Architektur, und es gibt umfangreiche Referenzmaterialien sowie Emulatoren
- Die Dokumentation zu Hardware-Details war häufig komplex und schwer verständlich
Entwicklungsweise
- Etwa 6 Wochen lang in Vollzeit daran gearbeitet
- In kleinen Schritten implementiert und nach jedem Schritt manuelle Tests durchgeführt → Ursachen von Bugs leichter nachvollziehbar
- Der Großteil des Codes wurde per Pair Programming geschrieben → erwarteter Effekt: weniger Bugs
Zielgruppe
- Geeignet für Leser mit folgendem Hintergrundwissen:
- Vertraut mit UNIX/Linux und Systemprogrammierung
- Vertraut mit der Programmiersprache C
- Verständnis von Computersystemen und hexadezimaler Notation
- Auch Anfänger können es als Lernwerkzeug nutzen, der Schwierigkeitsgrad ist jedoch hoch
1 Kommentare
Hacker-News-Kommentare
Ich liebe osdev. Ich kenne das Endziel nicht, aber die Tatsache, dass man bauen kann, was man will, ist einfach großartig
Viele Leute empfehlen ihre bevorzugte Alternative, aber ich bin immer noch ein großer Fan von Project Oberon
Dieses Buch hat den klassischen Makel von osdev-Tutorials
Mein Lieblingsbuch zu Betriebssystemen ist Operating Systems: Three Easy Pieces
Danke! Das sieht nach großartigem Material zu diesem Thema aus
Dieser Kommentar weckt Nostalgie nach den 2000ern
Das Buch ist gut. Es lohnt sich, die Issues auf GitHub anzuschauen
Ich wünschte, zwei japanische Bücher über Betriebssystementwicklung wären ins Englische übersetzt worden
Ich frage mich, wo die Dokumentation für das kleine rote OS-Buch ist
Wenn wir schon über OS-Entwicklung sprechen: Spiele machen das Lernen unterhaltsam