next up previous contents
Nächste Seite: Implementierung Aufwärts: Spezifische DDE Funktionalität Vorherige Seite: Schnittstelle   Inhalt

Weitere Subsystem-Funktionalitäten

In Linux 2.4 existieren zwei Typen von Soundtreibern. Einmal sind das die sog. native Treiber, die direkt zum Linuxkern gehören. Daneben gibt es noch das OSS/Free-Paket, das einen Teil der kommerziell vertriebenen Open Sound System Gerätetreiber beinhaltet und von dessen Autor gepflegt wird.

Die OSS/Free-Treiber sind auch Bestandteil der Standard-Linuxquellen, setzen aber eine andere Umgebung voraus. Deshalb existiert eine Software-Schicht zwischen dem eigentlichen soundcore und den Treibern, die zum einen die Umgebung zur Verfügung stellt und zum anderen eine Abbildung auf das native Sound-Subsystem ist.

Es müssen also, wenn man Gerätetreiber aus OSS/Free im DDE verwenden möchte, nicht nur diese, sondern auch deren Subsystem-Wrapper in den Treiber-Server eingebunden werden.

Abbildung: Aufbau eines Gerätetreibers
\resizebox*{.70\textwidth}{!}{\includegraphics{dde_impl.eps}}

Den Aufbau eines Treiber-Servers illustriert Abb. 3.3. Auch hier ist (wie beim I/O Server) das lokale Common L4 Environment Bestandteil jedes Servers.






Zusammenfassend ergibt sich die in Abb. 3.4 dargestellte Architektur. Die einzige Systemkomponente, welche im privilegierten Prozessormodus mit eigenem Adreßraum abläuft, ist der Mikrokern.

Abbildung: Endgütlige DDE Architektur
\resizebox*{.50\textwidth}{!}{\includegraphics{arch.eps}}

Darüber liegt eine Schicht von Laufzeitkomponenten ausgeführt als User-Mode-Server, die das Common L4 Environment [Reu01] unterstützen und damit die minimale Grundlage für Applikationen unter L4/Fiasco bzw. DROPS bilden. Bestandteil dieser Schicht ist der I/ O Server neben Komponenten wie z.B. einem Speicher-Server, der physischen Speicher in Form von Dataspaces [L$^+$99] zur Verfügung stellt.

Oberhalb dieses Runtime Layers sind systemnahe Komponenten angesiedelt, z.B. Dateisysteme, Gerätetreiber oder der Netzwerk-Protokollstack. Der in Abb. 3.4 dargestellte Gerätetreiber besteht wie in Abschnitt 3.3 beschrieben aus drei Teilen und läuft als eigenständiger Server auf dem Mikrokern. Es kann hier auch eine Verschmelzung mit anderen Komponenten stattfinden (siehe 2.1: Colocation), um die Leistung zu steigern.


Im folgenden Kapitel werde ich auf die programmtechnische Umsetzung der Entwurfsideen und die Lösung dabei auftauchender Probleme eingehen.


next up previous contents
Nächste Seite: Implementierung Aufwärts: Spezifische DDE Funktionalität Vorherige Seite: Schnittstelle   Inhalt
Christian Helmuth 2001-12-11