Sie müssen lediglich das Betriebssystem entwerfen. Auch wenn Sie zum Beispiel entscheiden, dass es sich um ein UNIX-ähnliches System handeln soll, sind noch viele Entscheidungen zu treffen. Wie sehr soll es UNIX ähneln? Welche Teile von UNIX gefallen Ihnen und welche sind Ihrer Meinung nach verbesserungswürdig?
Wenn Sie nicht darauf festgelegt sind, UNIX-artig zu sein, müssen Sie am Ende noch weitere Fragen beantworten: Sollten Prozesse einen Baum bilden oder sind sie "flach"? Welche Art von prozessübergreifender Kommunikation möchten Sie unterstützen? Möchten Sie, dass es sich um ein Mehrbenutzer- oder nur ein Multitasking-Verfahren (oder möglicherweise ein Single-Tasking-Verfahren) handelt? Möchten Sie, dass es sich um ein Echtzeitsystem handelt? Welchen Grad an Isolation möchten Sie zwischen den Aufgaben erreichen? Wo soll es im monolithischen Vergleich zum Mikrokern liegen? Inwieweit (falls vorhanden) soll der verteilte Betrieb unterstützt werden?
Ich würde generell raten gegen den Linux - Kernel für Ihre Inspiration zu studieren. Das ist nichts gegen den Linux-Kernel selbst, aber eine einfache Tatsache, dass Linux in erster Linie für die Produktion gedacht ist, nicht für die Ausbildung. Es hat viele Optimierungen, Abwärtskompatibilitäts-Hacks usw., die für die Produktion äußerst nützlich sind, aber eher ablenken als erziehen.
Wenn Sie es finden, ist ein Exemplar von Lion's Book ( Lions-Kommentar zur 6. UNIX-Edition mit Quellcode von John Lions) ein viel einfacherer Ausgangspunkt. Die 6. Edition von UNIX war noch klein und einfach genug, um relativ schnell gelesen und verstanden zu werden, ohne dass es sich dabei um ein stark vereinfachtes Spielzeugsystem handelte.
Wenn Sie vorhaben, auf x86 (zumindest in erster Linie) zuzugreifen, sollten Sie sich auch MMURTL V 1.0 von Richard Burgess ansehen . Dies stellt ein System für x86 dar, das die x86-Hardware viel stärker als ursprünglich von den CPU-Designern beabsichtigt nutzt - etwas, das die meisten realen Systeme zugunsten der Portabilität auf andere CPUs meiden. Wie Sie sich vorstellen können, ist dies in der Regel viel stärker auf das Hardware-Ende der Dinge ausgerichtet. Gedruckte Exemplare scheinen teuer und schwer zu finden zu sein, aber Sie können den Text und den Code kostenlos herunterladen .
Zum Glück gibt es noch einige weitere Möglichkeiten - das Design und die Implementierung von Betriebssystemen , zum Beispiel von Andrew Tanenbaum und Albert Woodhull.