Next: Literatur
Up: Treiberkonzepte unter UNIX
Previous: Streams
- Geräte sind entweder Block- oder Zeichengeräte.
- Schnittstelle zwischen Gerät und System ist die jeweilige Schalttabelle.
- Die Blockgeräte-Schalttabelle besteht aus Einsprungpunkten für
open, close und Strategieprozeduren.
- Die Strategieprozedur steuert den Datentransport vom und zum
Blockgerät.
- Die Zeichengeräte-Schalttabelle besteht aus Einsprungpunkten für
open-, close-, read-, write- und
ioctl-Prozeduren.
- Der Systemaufruf ioctl benutzt die ioctl-Schnittstelle
der Zeichengeräte, die den Austausch von Steuerinformationen
zwischen Prozessen und Geräten erlaubt.
- Bei Empfang eines Geräteinterrupts ruft der Kern in
Abhängigkeit von Informationen in der Interruptvektortabelle
und von durch die unterbrechende Hardware gelieferten Parametern
die Routine für Geräteinterrupts auf.
- Plattentreiber wandeln die vom Dateisystem verwendeten logischen
Blocknummern in Positionen auf der physikalischen Platte um.
- Die Blockschnittstelle gestattet dem Kern das Puffern von Daten.
- Die Rohdatenschnittstelle dagegen gestattet schnellere I/O von
und auf die Platte, umgeht aber das Blockdepot und erhöht die
Wahrscheinlichkeit für Fehler im Dateisystem.
- Terminaltreiber bilden die Hauptschnittstelle zu den Benutzern.
- Der Kern verbindet drei C-Listen mit jedem Terminal:
- für die Rohdateneingabe von der Tastatur
- für die Eingabe unter Berücksichtigung von Lösch-, Kill- und
Wagenrücklaufzeichen
- für die Ausgabe
- Der Aufruf von ioctl gestattet Prozessen
- die Kontrolle darüber, wie der Kern Eingabedaten bearbeitet,
- das Versetzen des Terminals in den kanonischen Modus oder
- das Setzen verschiedener Parameter für den Rohdatenmodus.
- Der Prozeß getty eröffnet Terminalleitungen und wartet auf
eine Verbindung: Er setzt seine Prozeßgruppe so, daß die Login-Shell
zum Prozeßgruppenführer wird, initialisiert mit ioctl
Terminalparameter und führt den Benutzer durch die Login-Sequenz.
- Streams sind ein Schema zur Verbesserung der Modularität von
Gerätetreibern und Protokollen. Ein Stream ist eine
Vollduplexverbindung zwischen Prozessen und Gerätetreibern, die
Module für Zeilendisziplin und Protokolle zur Bearbeitung der
auf dem Weg befindlichen Daten enthalten kann.
Anke Steuernagel
Thu May 15 18:53:37 MET DST 1997