| Zeile 122: | Zeile 122: | ||
Auch der tollste Kernel mit [[Multitasking]]-Unterstützung bringt Dir natürlich herzlich wenig, wenn die laufenden Programme nicht mit dem Benutzer interagieren können. Um den Programmen, die ja in einem eigenen Adressraum laufen und meist keinen direkten Zugriff auf die Hardware haben, diese Möglichkeit zu bieten, muss der Kernel eine entsprechende Schnittstelle, üblicherweise in Form von [[Syscall|Syscalls]], anbieten. Wie diese Schnittstelle genau aussieht, hängt von Deiner gewählten Architektur ab. Bei einem Monolithen wird die Schnittstelle eher breit ausfallen, und beispielsweise Funktionen für das Arbeiten mit Dateien mitbringen, während bei einem Mikrokernel vor allem die Funktionen für die [[Interprozesskommunikation]] im Zentrum stehen werden. | Auch der tollste Kernel mit [[Multitasking]]-Unterstützung bringt Dir natürlich herzlich wenig, wenn die laufenden Programme nicht mit dem Benutzer interagieren können. Um den Programmen, die ja in einem eigenen Adressraum laufen und meist keinen direkten Zugriff auf die Hardware haben, diese Möglichkeit zu bieten, muss der Kernel eine entsprechende Schnittstelle, üblicherweise in Form von [[Syscall|Syscalls]], anbieten. Wie diese Schnittstelle genau aussieht, hängt von Deiner gewählten Architektur ab. Bei einem Monolithen wird die Schnittstelle eher breit ausfallen, und beispielsweise Funktionen für das Arbeiten mit Dateien mitbringen, während bei einem Mikrokernel vor allem die Funktionen für die [[Interprozesskommunikation]] im Zentrum stehen werden. | ||
| + | |||
| + | ===Treiber=== | ||
| + | Irgendwann wirst Du vermutlich auf die Idee kommen irgendwas von einer [[FDC|Diskette]] oder [[ATA|Festplatte]] lesen zu wollen. Dafür werden zwei Treiber benötigt: einer für das [[FDC|Diskettenlaufwerk]]/die [[ATA|Festplatte]] und ein [[Dateisystem|Dateisystemtreiber]]. Wie sich die Treiber in Dein System einfügen sollen, hast Du bei der Wahl Deiner Architektur ja schon grob entschieden. Jetzt ist es an der Zeit die Details festzulegen. Für die Treiber musst Du auch erstmal eine Schnittstelle definieren und Dir genau überlegen wie die Kommunikation zwischen Clients und den Treibern ablaufen soll. Dabei ist es sicher keine schlechte Idee, ein bisschen in den Schnittstellen von anderen [[Kategorie:Betriebssystem|Betriebssystemen]] zu stöbern. Weiter könntest Du Dir auch überlegen dir [[CDI]], das von der Lowlevel-Community entwickelt wird, genauer anzusehen, denn damit sparst du unter Umständen viel Zeit und Ärger. | ||
[[Category:Tutorials]] | [[Category:Tutorials]] | ||