Benutzer-Werkzeuge

Webseiten-Werkzeuge


betriebssystemarchitektur

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
betriebssystemarchitektur [2024/01/17 09:10] – [IO-Management] torsten.roehlbetriebssystemarchitektur [2024/01/17 09:15] (aktuell) – [Sonstige Betriebssystemkomponenten] torsten.roehl
Zeile 89: Zeile 89:
 In Beispiel Datei und Gerätedatei ist die Ausgabe des Kommandos ''ls -l'' für eine normale Datei (//ordinary file//) und für eine Gerätedatei (//device file//) angegeben. Gleich anhand des ersten Zeichens, dem »c«, erkennt man bei der Datei'' /dev/lp0'', dass es sich um eine Gerätedatei, genauer um ein so genanntes //Character-Device-File// handelt. In Beispiel Datei und Gerätedatei ist die Ausgabe des Kommandos ''ls -l'' für eine normale Datei (//ordinary file//) und für eine Gerätedatei (//device file//) angegeben. Gleich anhand des ersten Zeichens, dem »c«, erkennt man bei der Datei'' /dev/lp0'', dass es sich um eine Gerätedatei, genauer um ein so genanntes //Character-Device-File// handelt.
 ==== Gerätetreiber ==== ==== Gerätetreiber ====
 +Die fünfte Komponente eines Betriebssystems sind die Gerätetreiber Als Softwarekomponente erfüllen sie eine überaus wichtige Funktion: Sie steuern den Zugriff auf alle Geräte! Erst der Treiber macht es einer Applikation möglich, über ein bekanntes Interface die Funktionalität eines Gerätes zu nutzen.\\
 +
 +Ganz verschiedene Arten von Hardware werden über Gerätetreiber in ein Betriebssystem integriert: Drucker, Kameras, Tastaturen, Bildschirme, Netzwerkkarten, Scanner – um nur einige Beispiele anzuführen.\\
 +
 +Da diese Geräte darüber hinaus über diverse Bussysteme (z.B. PCI, SCSI, USB) angeschlossen werden können, haben Betriebssysteme im Allgemeinen und Linux im Besonderen unterschiedliche Treiber-Subsysteme\\
 +
 +Während traditionell zwischen zeichenorientierten Geräten (//Character-Devices//) und Blockgeräten (Block-Devices) unterschieden wird, findet man bei Linux die folgenden Subsysteme (unvollständige Liste):\\
 +
 +
 +  * Character-Devices
 +  * Block-Devices
 +  * Netzwerk
 +  * SCSI (Small Computer System Interface)
 +  * USB (Universal Serial Bus)
 +  * IrDA (Infrared Data Association)
 +  * Cardbus und PCMCIA
 +  * Parallelport
 +  * I2C (serielles Kommunikationsprotokoll)
 +  * I2O (Intelligent Input/Output)
 +
 +Für diese Vielfalt von Subsystemen ist die Applikationsschnittstelle erweitert worden. Nunmehr lassen sich folgende Interfaces differenzieren:
 +
 +  * Das Standard-API (mit Funktionen wie ''open'', ''close'', ''read'', ''write'' und ''ioctl'')
 +  * Kommunikations-API
 +  * Card-Services
 +  * Multimedia-Interfaces (z.B. Video4Linux)
 +
 +Realisiert sind die Interfaces zumeist auf Basis eines Sets standardisierter Datenstrukturen und IO-Controls (um das Systemcall-Interface nicht erweitern zu müssen).\\
 +
 +Gerätetreiber sind integraler Bestandteil des Betriebssystemkerns. Soll ein Kernel mit einem neuen Treiber versehen werden, muss theoretisch der gesamte Kernel neu generiert werden. Treiber, die auf diese Art mit dem Betriebssystemkern verbunden sind, nennt man <color #00a2e8>Built-in-Treiber</color> oder auch Kerneltreiber.\\
 +
 +Daneben bietet Linux auch die Möglichkeit, zu einem bereits aktiven Kernel einen Treiber hinzuzuladen. In einem solchen Fall ist der Treiber als <color #00a2e8>ladbares
 +Kernelmodul</color> realisiert. Diese so genannten Modultreiber haben mehrere Vorteile. Der Treiberprogrammierer muss nicht jedes Mal einen neuen Kernel generieren, wenn er eine Version seines Treibers testen möchte. Auch entfallen damit das Runterfahren und der Neustart des Systems. Ist der Treiber fertiggestellt, kann er als Modul weitergegeben werden, und ein Nutzer kann den Treiber einfach – ebenfalls ohne Neugenerierung des Kernels – installieren und verwenden. \\
 +
 +Die Funktionen, die ein Gerätetreiber-Entwickler zu kodieren hat, sind:
 +
 +  - Funktionen, die zur Einbindung des Gerätetreibers in den Kernel notwendig sind,
 +  - Funktionen, die durch die Applikation angestoßen (getriggert) werden und
 +  - Funktionen, die durch den Betriebssystemkern getriggert werden.
 +
 +
 ====  Sonstige Betriebssystemkomponenten ==== ====  Sonstige Betriebssystemkomponenten ====
  
  
 +Ein Betriebssystem besteht nicht nur aus dem Betriebssystemkern, sondern auch aus einer Reihe von Betriebssystem-Applikationen und Bibliotheken (Libraries. Die Bibliotheken sind bereits erwähnt worden, beinhalten diese beispielsweise doch Funktionen, die die Systemcalls des Kernels aufrufen.\\
 +
 +Auch bei der **Treiberentwicklung** sind gegebenenfalls Bibliotheken mit einzuplanen, um dem Anwendungsprogrammierer vereinfachten Zugang zu komplexen Funktionen zu verschaffen.\\
 +
 +Betriebssystemapplikationen werden oft auch Dienste genannt. Diese Dienste gilt es jedoch gegenüber den Diensten des Betriebssystemkerns, die über das Systemcall-Interface durch Applikationen genutzt werden können, abzugrenzen. Die Dienste des Betriebssystems auf Anwender-Ebene sind meist ständig aktiv, ohne eine spezifische Ausgabe zu machen. In der Unix-Welt bezeichnet man sie auch als **Daemonen** in der Windows-Welt als **Services**.\\
 +
 +Ein solcher Service ist beispielsweise der //syslog-Daemon// (''syslogd''), der für die Protokollierung wichtiger Systemzustände eingesetzt wird.
 +
 +----
 +<color #00a2e8>//Quelle:  Prof. Jürgen Quade u. Eva-Katharina Kunst//</color>
  
  
betriebssystemarchitektur.1705482602.txt.gz · Zuletzt geändert: 2024/01/17 09:10 von torsten.roehl