- Minimaler "Kernel" + Treiber werden in die 3 Propeller "geschrieben". D.h.: Nur die wichtigsten Funktionen werden "Onboard" sein.
- Administra bekommt eine neue Routine zum laden des "erweiterten" Kernels. Findet Administra diesen nicht, so läd sie einen minimalen Kernel, welche eine Mini-Shell + Treiber für SD-Card usw.
- Das minimale OS hat nur noch einen Minitreiber für Textausgabe am TV-Out/ VGA. Optionale Funktionen (Grafik usw.) können nachgeladen werden
- Sound ist, bis auf einen System-Beep/ Heatbeat Ton, ausgelagert. Auch hier spielen externe Treiber (von SD-Card geladen) die Hauptrolle.
Nun zu den Funktionen des Mini-Kernels selbst:
- Selbsttest - Prüft in Schnelldurchgang alle wichtigen Geräte (KB, VGA/ TV-Out, Sound, HB Leeds, vorhandene SD-Card usw.)
- Prüfen auf vorhanden sein des erweiterten Kernel von SD-Card. Falls TRUE, dann diesen Booten
- Prüfen auf vorhandene externe Treiber, falls ja, Schnittstellen öffnen
- Init-Script laden und starten, sofern vorhanden
- Netzwerk laden und starten, sofern Verbindung vorhanden, ggf. DHCP zu Hilfe nehmen
- Userland einrichten, ggf. optionale Module laden (GUI, TUI, Konfigurationsscripte von vorhandene Programme laden)
- Sheduler, COG Handler, RAM Handling usw. optimieren
- Schnittstellen für externe Hardware (Joystick-, IDE, USB Ports usw...)
Nun eine kurze Beschreibung des angedachten Boot, bzw. Init-Prozess (Dargestellt in Zeitabschnitten):
- Power-On - 1 Sek. -> Selbsttest (Alle wichtigen Geräte abfragen)
- 1-2 Sek. -> erweiterten Kernel laden. Bei Fehlschlag, minimaler Kernel laden
- 2-4 Sek. -> Kernel laden
- 4-6 Sek -> Treiber und Userland laden
Den zeitlichen Ablauf des erweiterten Kernels lasse ich mal noch offen, da ich an deren Struktur gerade arbeite. Ach ja, ein Speicherabbild des Kernels kann ich noch nicht geben, da ich noch nicht weis, wieviel Platz ich für die einzellnen Elemente brauchen werde...
blau dargestellte Elemente sind optional. Es kann sein, das ich diese Elemente ändern, oder entfernen werde...
Es fehlen auch noch die Programme, mit denen man arbeiten wird. Das wurde hier absichtlich ausgelassen! Ersteinmal muss ein Betriebssystem selbst stehen, bevor man Programme hierführ schreiben kann.
Nun seit Ihr gefragt: Ist so ein Betriebssystem für Euch interissant? Wenn Ja, warum. Wenn Nein, warum nicht. Ach ja, Verbesserungsvorschläge sind erwünscht.
Für die OS-Dever unter uns: Ein malloc() ist hier unnötig, da wir eine feste Ram größe haben.