Ein-/Ausgabe-Systeme

Ähnliche Dokumente
Konzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner

Inhaltsverzeichnis. 1.1 Der Begriff des Betriebssystems 1.2 Zur Geschichte der Betriebssysteme 1.3 Aufbau eines Rechners

Operating System Kernels

Betriebssysteme Vorstellung

I/O-Hardware Grundlagen. Ein- und Ausgabe. Memory-Mapped I/O. Device Controller

Geräte Treiber unter Unix/Linux

Technische Informatik 1

Linux-Kernel- Programmierung

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil

Grundlagen Rechnerarchitektur und Betriebssysteme

Ein-/Ausgabe-Systeme

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a

Vorlesung Betriebssysteme I

Rechnernutzung in der Physik. Betriebssysteme

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem)

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Betriebssystemschichten ( )

Theorie und Einsatz von Verbindungseinrichtungen in parallelen Rechnersystemen

Ein und Ausgabe. von Neumann Konzept enthält folgende Komponenten: Rechenwerk Steuerwerk Speicher Eingabewerk Ausgabewerk (siehe 1.

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Entwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte

2008 Jiri Spale, Programmierung in eingebetteten Systemen 1

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Treiber Kernel und Module bauen

Ein- und Ausgabe I/O. Kapitel 5 WS 07/08 IAIK 1

Entwicklung eines CANopen-Netzwerkes

PVFS (Parallel Virtual File System)

Systemsoftware (SYS)

Kapitel II. Computersysteme (1) Einführung: Hardware und Software. Bauteile eines einfachen PCs

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Verteilte Systeme. Verteilte Systeme. 9 Verteilte Dateisysteme SS 2015

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung

Self-aware Memory: Hardware-Prototyp eines Prozessorknotens

User Level Device Driver am Beispiel von TCP

C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme

Computer: PC. Informationstechnik für Luft-und Raumfahrt Aerospace Information Technology

C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme

Implementierung von Dateisystemen

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Betriebssysteme I WS 2014/2015. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Programmieren von UNIX-Netzen

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei

Betriebssysteme (BTS)

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Betriebssysteme Kap A: Grundlagen

White Paper. Embedded Treiberframework. Einführung

Betriebssysteme 1. Thomas Kolarz. Folie 1

Konzepte von Betriebssystem Komponenten. Aufbau eines Modernen Betriebssystems (Windows NT 5.0)

Remote-Objekt-Überwachung. von Jan Schäfer und Matthias Merk

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Wie groß ist die Page Table?

Filesystem in Userspace. Jens Spiekermann

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Leistungsanalyse von Rechnersystemen

DBUS Interprozess-Kommunikation für Embedded-Plattformen

Handbuch. S/ATA PCI Card 1+1. deutsch.

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation

Inhaltsverzeichnis Übersicht Prozesse

Die Sicht eines Sysadmins auf DB systeme

x86 Open Source Virtualisierungstechniken Thomas Glanzmann

Grundlagen der Rechnerarchitektur

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

System Monitoring mit strace. Systemcall tracing

Handbuch PCI Treiber-Installation

Teil VIII Von Neumann Rechner 1

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Parastation3. Design und Implementierung. ALiCE-Seminar 13. November Thomas Moschny

Hardware-Komponenten. DI (FH) Levent Öztürk

.DSLWHO+%HWULHEXQWHU,QWHUDFWLYH81,;

Funktionskapselung in Steuergeräten

Rüdiger Brause. Betriebssysteme. Grundlagen und Konzepte. Dritte, überarbeitete Auflage Mit 170 Abbildungen. Springer

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert 20. Juni 2007

METTLER TOLEDO USB-Option Installation der Treiber unter Windows XP

Ein- Ausgabeeinheiten

RO-INTERFACE-USB Hardware-Beschreibung

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor.

5.Vorlesung Betriebssysteme Hochschule Mannheim

SATA 2 und 3. Gruppe 8. Unser Weg ist Ihr Ziel. Der Spezialist für ADD-On Produkte. Tel Fax Fax

Analyse des Userspace I/O Framework (UIO) für den Einsatz in Embedded Linux-Systemen

Windows Vista Windows Phone 7

B.4. B.4 Betriebssysteme Prof. Dr. Rainer Manthey Informatik II 1

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Military Air Systems

CALLEO INFRASTRUCTURE SERVER 1101

Ferienakademie Programmierkonzepte für Multi-Core Rechner. Tools: Profiler

2 USBundLinuxhotplug. 2.1 Eigenschaften von USB. In diesem Kapitel lernen Sie. das USB-Schichtenmodell kennen.

3. Betriebssystemorganisation

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

VMware. Rainer Sennwitz.

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

Prozesse und Logs Linux-Kurs der Unix-AG

USB in Embedded Systemen. Referat von Peter Voser Embedded Development GmbH

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

Transkript:

Ein-/Ausgabe-Systeme Teil 2 Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012

Ein-/Ausgabe-Systeme Ein-/Ausgabe-Hardware Schnittstelle für Ein-/Ausgabegeräte Kernel-Subsystem für Ein-/Ausgabeoperationen Verwandlung von Ein-/Ausgabe-Anforderungen in Ein-/Ausgabe-Hardware-Operationen Ströme Leistungssteigerung 2

Ein-/Ausgabe-Schnittstelle Hier diskutieren wir Strukturierungs-Techniken und Schnittstellen-Definitionen mit dem Ziel: Einheitliche Zugriffsmechanismen zu definieren Kategorisierung von Geräte-Unterschieden, um eine minimale Anzahl von Ein-/Ausgabe-Funktionen zu definieren, die für eine große Anzahl unterschiedlicher Geräte gleich sind. um mächtige Ein-/Ausgabe-Operationen zu haben, die für möglichst unterschiedliche Gerätetypen anwendbar sind. 3

Ein-/Ausgabe-Schnittstelle Ziel - Geräte-Unabhängigkeit - Ein-/Ausgabe-Operationen, ohne das Gerät zu spezifizieren - einheitliches Benennungssystem - Fehlerbehandlung - Ein-/Ausgabe soll dem Benutzer als synchron erscheinen. - Pufferung - Verwaltung von gemeinsamen und exklusiven Geräten, um Deadlocks zu vermeiden. 4

Ein-/Ausgabe-Schnittstelle Benutzerprogramm-Ebene Generische Ein-/Ausgabeoperationen des Betriebssystems Systemaufrufe kapseln Geräteverhalten in generische Klassen Gerätetreiber Gerätetreiber kapseln die Unterschiede zwischen den verschiedenen Geräte- Controllern Unterbrechungsroutinen Hardware Jede Schicht soll eine wohldefinierte Schnittstelle definieren mit einer wohldefinierten Funktionalität 5

Struktur des Ein-/Ausgabe-Subsystems im Kernel Quelle: Silverschatz, Galvin und Gagne 6

Ein-/Ausgabe-Schnittstelle Geräte unterscheiden sich in viele Richtungen Datentransfer-Modus Zeichenströme oder Blöcke Zugriffs-Modus Sequentieller oder direkter Zugriff Exklusiv- oder Gemeinsame-Nutzung Geschwindigkeit Ein-/Ausgabe-Richtung read write, read only, oder write only 7

Eigenschaften von Ein-/Ausgabe-Geräten Quelle: Silverschatz, Galvin und Gagne 8

Klassifizierung von Ein-Ausgabe-Geräten Meist verwendete Klassifizierung ist: Block Ein-/Ausgabe Zeichenströme Zugriffe mittels Memory-Mapped Netz-Sockets Die meisten Betriebssysteme haben eine scape-funktion oder back door-funktion, die in der Lage ist, beliebige Kommandos zwischen einer Anwendung und einem Geräte-Treiber zu vermitteln. In UNIX wird dieses z.b. mit Hilfe des ioctl-systemaufrufs realisiert. 9

ioctl-funktion Input-Output-Control-Funktion #include <sys/ioctl.h> int ioctl( int channel, int command,... ); Die ioctl-funktion übermittelt ein Kommando (command) an den Kontroller eines Gerätes, der durch den channel (file descriptor) verbunden ist. Optional kann eine Liste von Argumenten eingegeben werden, die zu dem Kommando gehören. 10

Beispiel: #include <stdio.h> #include <unistd.h> #include <sys/ioctl.h> #include <fcntl.h> #include <linux/cdrom.h> ioctl-funktion Die open-funktion wird ausgeführt, auch wenn keine CD im Laufwerk liegt. int main() { int fd; if ((fd = open("/dev/cdrom", O_RDONLY O_NONBLOCK )) == -1 ) { perror("eject: Can't open /dev/cdrom"); return 1; } if ( ioctl ( fd, CDROMEJECT ) == -1 ){ perror("eject: ioctl() failed"); return 1; } close( fd ); return 0; } 11

Kategorisierung nach Datentransfer-Modus Blockorientiert Festplatten, USB-Sticks, CD-Roms, DVD, usw. Befehle read, write, seek raw-operationen Dateizugriff mit Memory-mapped Zeichenorientiert Tastatur, Zeigergeräte, serielle Ports, usw. Befehle get, put Bibliotheken auf einer höheren Ebene ermöglichen das Editieren von Zeichenzeilen 12

Netzwerk-Geräte Unterscheiden sich sehr stark von Datei-Ein-/Ausgabe-Geräten Die meisten Betriebssysteme bieten eine spezielle Schnittstelle für Netzwerk-Geräte Die populärste Schnittstelle ist die socket-schnittstelle abstrahiert vom Kommunikations-Protokoll select()-funktion Es gibt ein breites Angebot an Kommunikations-Mechanismen wie z.b. pipes, FIFOs, streams, queues, mailboxes usw. 13

Uhren und Timer Hardwareuhren Die meisten Rechner haben mehrere Hardwareuhren und Timer. Folgende Hauptfunktionalität wird angeboten: gibt die aktuelle Zeit gibt die verlaufende Zeit setzt eine Stoppuhr(Timer), um eine Operation X nach einer bestimmten Zeit T durchzuführen 14

Uhren und Timer Programmierbare Hardware-Uhren Quarzoszillator Zähler Halte-Register Modi: Einmalmodus Wiederholungsmodus Die aktuelle Zeit wird in einer batteriebetriebenen Sicherungsuhr gespeichert. Hardware-Uhren lösen nur Interrupts in vorgegebenen Intervallen. 15

Uhren und Timer Software-Uhren Aufgaben eines Uhrtreibers Verwaltung der Echtzeit Steuerung der Time-Slide eines Prozessors Prozessornutzung-Buchhaltung Behandlung des alarm-systemaufrufes durch Benutzerprozesse Bereitstellung von Uhren zur Überwachung von Betriebssystemaktivitäten Profiling. Monitoring und Führen von Statistiken 16

Software-Uhren Verwalten der Uhrzeit. Echtzeit (real time) Mit 32 Bits und 60 Hz haben wir in 2 Jahren einen Überlauf Lösungen: 64 Bits Das Inkrementieren des Zählers ist aufwändiger (kein Problem in modernen Rechnern) 32 Bits Uhrzeit in Sekunden + Hilfszähler 2 32 Sekunden sind mehr als 136 Jahre 32 Bits Zeitintervalle nur ab Systemstart 17

Software-Uhren 64 Bits Uhrzeit in Timer-Intervallen 32 Bits Anzahl der Timer- Intervalle in aktueller Sekunde. Zeit in Sekunden 32 Bits Zähler von Timer- Intervallen Zeit nach dem Systemstart in Sekunden 18

Software-Uhren Die meisten Rechner besitzen eine zweite programmierbare Uhr, die neben der Hauptsystem-Uhr existiert. Diese Soft-Uhren sind für Timer-Interrupts nach einer vom Programm gewünschten Zeit zuständig. Probleme - wenn sie in sehr kurzen Abständen verwendet wird. - Interrupts oder Polling sind meistens keine gute Lösung Lösung - immer wenn der Kern im Einsatz ist und kurz bevor er in den Benutzermodus zurückkehrt, kann geprüft werden, ob der Soft- Timer abgelaufen ist. - Keine aufwändige Kontextwechsel ist nötig - Die aktuelle Zeit wird in den Timer kopiert und das gewünschte Zeitintervall hinzuaddiert. 19

Soft Timer Soft-Timer werden mit der gleichen Häufigkeit aktualisiert, mit dem folgende Ereignisse zusammen auftreten. Systemaufrufe Seitenfehler TLB-Fehler Ein-/Ausgabe-Interrupts CPU ist im Leerlauf 20

Software-Uhren Aron und Druschel haben Messungen durchgeführt und festgestellt, dass Soft-Timer mit ca. 12 Mikrosekunden- Zeitintervallen damit möglich sind. In Zeiten, in denen es keine Systemaufrufe, Seitenfehler. usw. gibt, kann der Soft-Timer mit einem niedrigen getackten Hardware-Timer (1 Millisekunde) kombiniert werden und trotzdem eine bessere Lösung anbieten als was unter Verwendung von Interrupts oder Polling erreicht werden kann. 21

Blockierende oder nicht blockierende Ein-/Ausgabe- Operationen Synchron blockierend - ein Prozess wartet, bis die Ein-/Ausgabe-Operation beendet ist - meistens im Benutzerschnittstellen eingesetzt - einfach für den Benutzer zu verstehen - nicht für alle Fälle ausreichend gut nicht blockierend Der IO-Aufruf liefert sofort Information zurück über das, was übertragen werden konnte, ohne den Prozess zu blockieren. Multithreading + Buffering 22

Asynchron Blockierende oder nicht blockierende Ein-/Ausgabe-Operationen Der Prozess läuft weiter während die Ein-/Ausgabe- Operation ausgeführt wird. Das Ein-/Ausgabe-Subsystem meldet später an den Prozess das Ende der Ein-/Ausgabe-Operation. Beispiel: Signal Interrupt call-back routine select()-systemaufruf für Netz-Sockets 23

Zwei Ein-/Ausgabe-Methoden Synchron Asynchron Kernel Benutzer Benutzer Kernel Zeit Zeit Quelle: Silverschatz, Galvin und Gagne 24

Ein-/Ausgabe-Subsystem des Kernels Das Ein-/Ausgabe-Systems des Kernels muss eine Reihe von Diensten anbieten, um die Leistung von Ein-/Ausgabegeräte zu verbessern. I/O - Scheduling Pufferung Caching Spooling und Geräte-Reservierung Fehlerbehandlung I/O-Schutzmechanismen 25

I/O-Scheduling Optimiert die Reihenfolge der Abarbeitung von Ein-/Ausgabe- Anforderungen Ziel: Den Durchsatz zu erhöhen Die durchschnittliche Wartezeit zu reduzieren Warteschlangen pro Gerät werden verwendet, dessen Reihenfolge vom Scheduler geändert werden können. Eine Tabelle (device-status table) wird verwendet, in der sich ein Eintrag pro Gerät befindet. 26

device-status table Quelle: Silverschatz, Galvin und Gagne 27

Pufferung Ein Puffer wird verwendet, um Daten zu speichern, die zwischen Programm und Gerät gerade transferiert werden; Ziel: Geschwindigkeitsunterschiede der Datenströme zwischen Erzeuger und Verbraucher zu korrigieren verschiedene Datentransfer-Größen anzupassen Nebenläufigkeit zwischen Verbraucher und Erzeuger copy semantics: eine Kopie der Daten wird in einem Kernel- Puffer beim system call gemacht. Besser mit virtual memory mapping und copy-on-write Schutzmechanismus 28

Pufferung-Techniken Doppelt-Pufferung (double buffering) Benutzerprozess 2 Kernel-Adressraum 1 3 Anpassung zwischen verschiedenen Datentransfergrößen z.b. Puffer werden für Fragmentierung und Defragmentierung (reassembly) von Daten verwendet. 29

I/O Buffering-Schemas I/O Geräte in OS No Buffering I/O Geräte in OS Move Single Buffering I/O Geräte OS Move Double Buffering I/O Geräte OS. Move Circular Buffering 30

Sun Enterprise 6000 Geräte-Transfer-Raten (logarithmic) System Bus Hyper Transport (32-pair) PCI Express 2,0 (x32) Infiniband (QDR 12x) Serial ATA (SATA-300) Giagbit ethernet SCSI bus FireWire Festplatte Modem Mouse Tastatur 0,00001 0,001 0,1 10 1000 100000 10000000 31

Ein-/Ausgabe-Subsysteme des Kernels Caching Entscheidend für die Leistung Spooling Geräte-Ausgabe wird zwischengespeichert für Geräte, die Anfragen nur sequentiell abarbeiten können z.b. Drücker Geräte-Reservierung Exklusiver Zugriff muss oft garantiert werden Hier sollen Verklemmungen verhindert werden Systemaufrufe für die Reservierung und Freigabe von Geräten Einige Betriebssysteme bieten Funktionalität für die Kontrolle von exklusiven Zugriffen auf Benutzerebene. 32

Fehlerbehandlung Betriebssysteme mit geschütztem Speicher können besser gegen Hardware oder Programm-Fehler reagieren. Fehler sollen mit eindeutigen ID-Nummern identifiziert werden. Viele Fehler sind Hardware-abhängig und sollen vom Gerätetreiber behandelt werden. Andere Fehler sollen an das Ein-/Ausgabe-System weiter gereicht werden und dort behandelt werden. read() oder send()-operationen werden manchmal durch einfache Wiederholung behandelt. Ein-/Ausgabefehler sollen in Log-Dateien protokolliert werden. 33

Aufgaben: Gerätetreiber - Verbergen der Komplexität der Registerbelegungen des Controllers. - Jedes Gerät benötigt üblicherweise seinen eigenen Treiber. - Gerätetreiber sind praktisch immer Teil des Kernels. - API-für die darüber liegende Schicht: - read- und write-operationen 34

Ein-/Ausgabe-Schutz Ein-/Ausgabe-Operationen sind in enger Beziehung mit dem Problem des Informationsschutzes. Alle I/O-Operationen sind als privilegiert definiert und können nur unter Verwendung von Systemaufrufen durchgeführt werden. Memory-mapped-Speicherbereiche und I/O-Port- Speicheradressen müssen meistens vom Speicherschutz- System für den direkten Benutzerzugriff gesperrt werden. 35

Kernel-Datenstrukturen Im Kernel müssen ständig Tabellen mit Informationen über den Zustand aller Ein-/Ausgabe-Komponenten zwischen-aufbewahrt werden. - geöffnete Dateien - Netzverwindungen - Zustand von Zeichengeräten, usw. Andere Komplexere Datenstrukturen für - Puffern-Verwaltung - Speicher-Allokation - dirty-blocks, usw. Einige Betriebssysteme wie UNIX verwenden objektorientierte- Techniken, um eine einheitliche Struktur für die Verwaltung zu ermöglichen. Windows verwendet ein Nachrichten-System, das noch flexibler ist. 36

UNIX Ein-/Ausgabe Kernel-Struktur Quelle: Silverschatz, Galvin und Gagne 37

Kernel-Ein-/Ausgabe-Subsystem Zusammenfassung Verwaltung des Namensraums von Dateien und Geräten Zugriffskontrolle von Dateien und Geräten Kontrolle über die Operationen Dateisystem-Allokation Geräte-Allokation Pufferung, Caching und Spooling I/O- Scheduling Statuskontrolle von Geräten, Fehlerbehandlung und Fehlerkorrektur Gerätetreiber-Konfiguration und -Initialisierung 38

Lebenszyklus einer Ein-/Ausgabe- Anfrage Benutzer- Prozess Kernel-IO- Subsystem Kernel-IO- Subsystem Gerätetreiber Interrupt- Händler Gerätekontroller Zeit 39

Ströme (STREAM) Ein Stream ist eine zweidirektionale Kanalverbindung zwischen einem Benutzerprozess und einem Gerätetreiber A STREAM besteht aus: - stream head Schnittstelle zum Benutzerprozess - driver end Schnittstelle zum Gerät - eine oder mehrere stream modules zwischen stream head und driver end Jedes stream module hat eine read queue und eine write queue, die die Kommunikation mittels Nachrichten-Verkehr zwischen den Warteschlangen realisiert. Die Warteschlangen können flow control unterstützen. 40

Die STREAMS-Struktur 41

Leistungsfaktoren Ein-/Ausgabe-Operationen spielen eine große Rolle in der gesamten System-Leistung. Grundlegende Prinzipien für eine Leistungssteigerung sind: Reduziere die Anzahl von Kontextwechseln Reduziere die Anzahl der Kopieroperationen von Daten zwischen Geräten und Anwendung Reduziere die Anzahl von Interrupts mit - großen Transfermengen - intelligenten Gerätekontrollern - polling Steigere die Nebenläufigkeit mit DMA- oder Kanälen Eine balancierte Auslastung der wichtigsten Systeme (CPU, Speicher, Bus und Ein-/Ausgabe) 42

Wo soll die Funktionalität implementiert werden? 43

Gerätetreiber in Linux Treiberunterstützung ist für die Akzeptanz eines Betriebssystems sehr wichtig. Das Gerätetreiber-System dominiert in ihrer Größe. linux-2.6.27.19$ du -c -d 1 sort -n 56./usr 128./samples 152./virt 256./init 408./ipc 856./block 2080./lib 2128./security 2720./crypto 2856./scripts 2968./mm 3136./firmware 6072./kernel 24184./Documentation 29864./sound 30848./net 51288./fs 55048./include 157456./arch 275424./drivers 648552 total 44

Linux Ein-/Ausgabe-Subsystem Linux bietet einen einheitlichen Zugriff Geräte werden über Namen in dem Dateisystem ansprechbar. /dev/tty40 Die gleichen Systemaufrufe für Dateizugriffe können auch für andere Ein-/Ausgabe-Geräte verwendet werden. open, read, write, close Zugriffsrechte können auch über die Mechanismen des Dateisystems gesteuert werden. Aus Anwendersicht gibt es keinen Unterschied zwischen Dateien und anderen IO-Geräten. Nicht alle Geräte lassen sich in dieses Schema einordnen, z.b. Uhren und 3D Graphikkarten. 45

Linux Ein-/Ausgabe- Subsystem Quelle: www.linux-magazin.de 46

Zusammenfassung Das Ein-/Ausgabe-System bildet einen dominante Anteil des Betriebssystems. Grundlegende Hardwarekomponenten sind: Buse, Ports, Geräteadapter und die Geräte selber. Datentransfer kann direkt mit programmierten Ein-/Ausgabe- Operationen oder durch den DMA-Kontroller erfolgen. Eine geeignete Klassifizierung der Geräte ist zentral, um eine Hardware-unabhängige Schnittstelle zu definieren. Dynamische Bindung von Geräten ist wichtig. Gerätetreiber laufen im Kernelmodus, werden aber von fremden Herstellern programmiert. Gerätetreiber können Sicherheitslücken einfügen. 47

Kommunikation zwischen Rechnern