Zurzeit bin ich noch recht stark in der design Phase und kann daher nicht viel code schreiben.
Ich habe mir daher überlegt, dass ich die API nativ (Bonobo API) mache und später dann evtl. einen POSIX/UNIX Wrapper bereitstelle um unix/linux Programme drüber laufen zu können.
Damit ich keinen Compiler schreiben muss werde ich allerdings den C99 Standard einführen, denn gcc läuft nach meinem Wissen grössten Teils mit C99, wenn nicht,.
Bis der posix wrapper kommt muss ich die Programme halt selber schreiben, macht ja eigentlich auch mehr Spass :D.
Beim Treiber design gibt es auch ein paar Änderungen. Ich werde die meisten Treiber im x86 Ring 3 (Userspace) laufen lassen um mehr Stabilität gewährleisten zu können.
Somit wird der kernel zum hybrid kernel, da er weiterhin kernel treiber unterstützt. Das Treiberinterface wird ab jetzt auch nativ sein.
Momentan werde ich x86 auch bevorzugen, ARM und AVR werden dann später dazukommen.
Achja, der Kernel bekommt den Codenamen Bonobok.
Überblick über die geplanten Abstraktionsschichten:
- Kernelspace
- Userspace (Isolierung vom Kernel) // Ab hier gehört nichtsmehr zum Betriebssystemkern, alles abgeschottet mit Privilegien
- Bonobo API (Syscalls, API Module, Treiberinterface)
- C99 Lib
- POSIX Wrapper baut auf C99 und Bonobo API auf
- Eigene kleine Scriptsprache, baut auf C99 und Bonobo API auf. Kommt erst viel später.