Systemaufrufschnittstelle zur Geräteansteuerung in Unix
- Geräteunabhängigkeit
- Geräte über spezielle Dateien (special files) ansprechen
- mknod() (⇒ Erzeugen der Gerätedatei)
- open() / close() (⇒ Anmelden/Reservieren bzw. Abmelden)
- read() / write()
- Ermöglicht Namen, vereinfacht Ein-/Ausgabeumlenkung
Kern-intern:
- open(): im Prinzip wie bei normaler Datei
- Erzeugt Eintrag in Deskriptor-Tabelle des Prozesses (liefert fd zurück)
- Erzeugt Eintrag in File-Tabelle
- Liest Inode der Gerätedatei von Platte (⇒ Inode-Tabelle)
- Inode enthält keine Blocknummern sondern:
- Major Number: Gerätetyp
- Minor Number: Konkretes Exemplar von Gerät diesen Typs
Über Major Number Zugriff auf Gerätetreiber
⇒ indiziert Device Switch Table (Block vs. Character Devices)
⇒ Verweise auf Zugriffsoperationen
Grobe Unterscheidung:
- Blockgerätetreiber:
- open()
- close()
- strategy() (Eine Routine für read()/write() + Richtungsparameter)
- Charactergerätetreiber
- open()
- close()
- read()
- write()
- ioctl() (Parametrisierung des Gerätetreibers)
- …
Überblick

Read / Write im Gerätetreiber


Aufgaben des Gerätetreibers


Terminal-Treiber
Link to original

