www.wikidata.de-de.nina.az
Geratedateien englisch device file sind spezielle Dateien die unter fast allen Unix Derivaten und vielen anderen Betriebssystemen genutzt werden Sie ermoglichen eine einfache Kommunikation zwischen Userspace zum Beispiel gewohnlichen Anwenderprogrammen und dem Kernel und damit letztlich der Hardware eines Computers Diese Kommunikation ist transparent da Geratedateien wie normale Dateien verwendet werden Inhaltsverzeichnis 1 Geratedateien unter Unix 1 1 Typen von Geratedateien 1 1 1 Blockorientierte Gerate 1 1 2 Zeichenorientierte Gerate 1 1 3 Socketorientierte Gerate 1 2 Unechte Gerate 1 3 Verwaltung der Geratedateien am Beispiel Linux 1 3 1 devfs 1 3 2 udev 2 Geratedateien unter Windows 3 Literatur 4 WeblinksGeratedateien unter Unix BearbeitenTypen von Geratedateien Bearbeiten Die Dateisysteme von Unix und ahnlichen Betriebssystemen unterscheiden zwischen normalen Dateien binar ASCII Verzeichnissen Named Pipes auch FIFOs genannt Symbolische Verknupfungen Sockets und Datenblocken Wahrend normale Dateien und Verzeichnisse zum Standardfunktionsumfang gewohnlicher Dateisysteme gehoren spielen bereits Named Pipes eine Sonderrolle zahlen aber nicht zu den Geratedateien Erst bei den letzten drei Typen handelt es sich um Geratedateien Somit wird zwischen drei Typen von Geratedateien unterschieden character devices zeichenorientierte Gerate block devices blockorientierte Gerate socket devices socketorientierte GerateZur Ausgabe des Typs einer Gerate Datei eignen sich Befehle wie a href Ls Unix html title Ls Unix ls a oder a href File html title File file a nbsp dev im Dateisystembrowser Konqueror Zu sehen sind die Icons der vielen verschiedenen GeratedateienDa meist fur jedes Gerat eine eigene Geratedatei existiert sammelte man bereits in fruhen Versionen von Unix diese Dateien im Verzeichnis dev Mit dem Filesystem Hierarchy Standard ist dieses Vorgehen fur Linux standardisiert worden Solaris fuhrt die Geratedateien unter dem virtuellen Dateisystem in devices und generiert automatisiert Symlinks die von dev zu den eigentlichen Dateien in devices zeigen ferner ist vorgeschrieben welche Geratedateien in diesem Verzeichnis unter welchem Namen existieren mussen siehe dazu die Listen weiter unten Moderne Unix Derivate benutzen oft spezielle virtuelle Dateisysteme um dieses Verzeichnis aktuell zu halten Unter Linux war dafur lange Zeit devfs popular mittlerweile sorgt udev fur die Verwaltung der Geratedateien Geratedateien werden als Schnittstelle zwischen Geratetreibern oder Systemkomponenten und Anwendungsprogrammen die im Userspace ablaufen genutzt So druckt man beispielsweise auf einem LPT Drucker der uber die parallele Schnittstelle an den Computer angeschlossen ist indem man Text direkt in die Geratedatei dev lp0 schreibt Durch das Konzept der Geratedateien sind Programme prinzipiell von den Geratetreibern die im Kernel agieren getrennt Ausserdem erscheint die Benutzung eines Gerates vollig transparent man muss nicht erst ein spezielles Programm nutzen sondern kann in eine Datei schreiben die quasi dem Drucker entspricht Dies ermoglicht eine intuitive Benutzung der Hardware Das Konzept der Geratedateien ist eine der Grundlagen fur den Unix Grundsatz Alles ist eine Datei und wurde beispielsweise mit Ansatzen wie dem Derivat Plan 9 ausgebaut Blockorientierte Gerate Bearbeiten Blockorientierte Gerate auch Blockspeichergerat Blockgerat oder engl block device ubertragen Daten in Datenblocken und werden daher oft fur parallele Datenubertragungen genutzt Alle diese Gerate nutzen den betriebssystemeigenen Puffer Beispiele von Dateinamen fur blockorientierte Gerate Beschreibung des Gerats Linux FreeBSD NetBSD OpenBSD macOS Solaris1 Diskettenlaufwerk fd0IDE Festplatte oder IDE CD ROM Laufwerk am 1 Anschluss Master in Linux hda ad0 wd0IDE Festplatte oder IDE CD ROM Laufwerk am 1 Anschluss Slave hdb ad11 primare Partition der ersten IDE Platte hda115 logische Partition der ersten IDE Platte hda151 Slice der ersten IDE Platte ad0s115 Slice der ersten IDE Platte ad0s151 Partition im 1 Slice der ersten IDE Platte ad0s1a2 Partition im 1 Slice der ersten IDE Platte ad0s1bIDE CD ROM Laufwerk am 1 Anschluss Master acd0IDE CD ROM Laufwerk am 1 Anschluss Slave acd11 SCSI CD ROM Laufwerk scd0 cd0SCSI Wechsel Platte kleinste SCSI ID sda disk0SCSI Wechsel Platte nachstgrossere SCSI ID sdb disk11 primare Partition der ersten SCSI Wechsel Platte sda1 disk0s011 logische Partition der ersten SCSI Wechsel Platte sda15SCSI Wechsel Platte kleinste SCSI ID da0 disk05 Partition im 2 Slice der 2 SCSI Wechsel Platte da1s2eam C ten SCSI Controller mit SCSI ID T die D te Festplatte und auf ihr das S te Slice c i C i t i T i d i D i s i S i symbolische Verknupfung auf CD ROM Laufwerk cdromDer erste Namespace des ersten registrierten NVMe Gerats nvme0n1Die erste Partition des ersten Namespaces des ersten registrierten NVMe Gerats nvme0n1p1Zeichenorientierte Gerate Bearbeiten Zeichenorientierte Gerate ubertragen nur ein Zeichen typischerweise ein Byte zur selben Zeit sind also der seriellen Datenubertragung zuzusprechen Meist aber nicht immer werden Daten ungepuffert also sofort ubertragen Beispiele von Dateinamen fur zeichenorientierte Gerate Beschreibung des Gerats Linux DOS Windows macOS1 Serielle Schnittstelle ttyS0 COM1 Parallele Schnittstelle lp0 LPT12 Parallele Schnittstelle lp1 LPT2symbolische Verknupfungen fur Pseudoterminals tty em X em Geratedateien fur USB Gerate sowie alle virtuellen Geratedateien usbdev1 1symbolische Verknupfung auf Maus Geratedatei mouseDatei eines Framebuffers z B Monitor fb em X em Laufwerksdatei im Zeichenmodus macOS rdisk0 rdisk1 entspricht hier der ersten zweiten Festplatte als Gerat an sich wahrend rdisk0s1 beispielsweise die erste Partition auf der ersten Festplatte ist rdisk rdisk s Der Gerate Controller des ersten registrierten NVMe Gerats nvme0Die Netzwerkkarten zum Beispiel Ethernet ISDN werden unter Linux nicht uber Geratedateien sondern uber den TCP IP Stack angesprochen gleichwohl existieren oft auch Geratedateien fur Spezialanwendungen wie etwa zur direkten Ansteuerung der Hardware Netlink Device D Kanal etc Socketorientierte Gerate Bearbeiten Bei socketorientierten Geraten handelt es sich nicht um Geratedateien sondern eine Form von Interprozesskommunikation Wie FIFOs sind sie damit keine Geratedateien konnen aber auch zur Kommunikation mit dem Kernel eingesetzt werden und nehmen dabei eine ahnliche Aufgabe wahr wie zeichenorientierte Gerate Beispiele fur socketorientierte Gerate Dateiname Bedeutung dev log Socket fur den syslog Daemon dev gpmdata Socket fur den GPM Maus Multiplexer dev printer Socket fur lpdUnechte Gerate Bearbeiten Eine Geratedatei muss nicht mit einem real existierenden Gerat korrespondieren sondern kann auch fur ein sogenanntes virtuelles Gerat virtual device bzw Pseudogerat pseudo device stehen Das ist ein Arbeitsmittel dessen Funktionsweise vom Betriebssystem Kernel Kernelerweiterung Treiber gehandhabt wird Anders als der Begriff virtuelles Gerat vermuten lasst wird hier nicht unbedingt ein physisches Gerat nachgebildet vgl Virtualisierung Nachfolgend eine Liste der verbreitetsten Pseudogerate alle zeichenorientiert in Unix und ahnlichen Systemen a href dev null html title dev null dev null a verwirft jede Eingabe ohne eine Ausgabe zu produzieren a href dev zero html title dev zero dev zero a produziert einen Zeichenstrom der nur aus Nullzeichen in C Notation 0 besteht a href dev full html title dev full dev full a produziert einen Zeichenstrom der beim Lesezugriff nur aus Nullzeichen in C Notation 0 besteht Bei Schreibzugriffen gibt es einen ENOSPC disk full Fehler a href dev random html title dev random dev random a produziert echte Zufallszahlen oder wenigstens kryptografisch starke Pseudozufallszahlen meist anhand von Hardware Eingaben a href dev urandom html class mw redirect title dev urandom dev urandom a produziert Pseudozufallszahlen meist im Gegensatz zu dev random ohne zu blockieren wenn keine Hardwaredaten anfallen Verwaltung der Geratedateien am Beispiel Linux Bearbeiten Zum Erstellen von Geratedateien dient das linuxspezifische Kommando mknod welches zum Erstellen einer Geratedatei die zugehorige Major und Minor number benotigt Wenn ein Benutzer bei fruhen Linux Versionen einen neuen Treiber installiert hat so mussten eine oder mehrere Geratedateien mit diesem mknod Kommando unter Zuhilfenahme der Treiberdokumentation und unter Angabe der notwendigen Major Minor Number angelegt werden um die benotigte Schnittstelle zu schaffen Viele Linux Distributionen lieferten daher im dev Verzeichnisbaum bereits tausende von Geratedateien mit ungeachtet ob diese jemals benotigt werden wurden Dies war einerseits unubersichtlich andererseits war es schwierig automatisch neue Treiber fur neue Hardware zu laden da die Geratedateien immer manuell gepflegt werden mussten Innerhalb mehrerer Jahre und Kernel Releases wurden so zwei neue Konzepte entwickelt devfs Bearbeiten Hauptartikel devfs Im Linux Kernelbaum 2 2 wurde das devfs eingefuhrt Die zugrundeliegende Idee war dass die Kernel Module selbst Informationen zu den Namen der Geratedateien die sie erzeugen neben den Minor und Major Numbers sowie dem Typ mit sich fuhren Dadurch konnte der Kernel erstmals die Erzeugung der Geratedateien selbst ubernehmen Die benotigten bzw vom Kernel und seinen Modulen gestellten Geratedateien hat der Kernel anschliessend automatisch in dem devfs Dateisystem mit Hilfe des devfsd Daemons erstellt Das Dateisystem wurde dabei ublicherweise im Verzeichnis dev gemountet udev Bearbeiten Hauptartikel udev Nach reiflicher Uberlegung schien das System mit devfs doch zu unflexibel Gefordert wurde ein System das beim Einstecken neuer Hardware reagiert Hotplugging die entsprechenden Kernelmodule ladt und die Geratedateien anlegt und beim Ausstecken der Gerate diese wieder entfernt Zusatzlich sollte es moglich sein uber ein Regelwerk selbst zu definieren welches Namensschema man fur seine Geratedateien anwenden mochte wie diese in Unterverzeichnissen strukturiert werden sollen etc Mit der Einfuhrung von Kernel 2 6 wurde udev dieses neue Gerateverwaltungskonzept Ahnlich wie bei devfs gibt es auch hier einen Daemon der im Userspace lauft und die eigentliche Arbeit erledigt Bei udev kommt jedoch kein eigenes Dateisystem zum Einsatz ausserdem ist die notwendige Kernelkomponente deutlich schlanker also kleiner und einfacher Geratedateien unter Windows BearbeitenAuch unter Windows gibt es Geratedateien Auf sie kann man als Programmierer mittels der Subroutine CreateFile zugreifen Der Name einer Geratedatei hat das Format NAME Geratedateien sind nicht wie unter Unix unter gewohnlichen Verzeichnissen anzutreffen die Kommunikation erfolgt entsprechend auch nicht fur den Benutzer transparent Im Allgemeinen hat man als Benutzer mit der Windows Shell keine Moglichkeit mit den Geratedateien in Beruhrung zu kommen Literatur BearbeitenArnold Willemer Wie werde ich UNIX Guru Galileo Press Bonn 2003 ISBN 978 3 89842 240 6 daraus Hardwarezugriff unter UNIX dev Matt Welsh Matthias K Dalheimer Terry Dawson Lar Kaufman Linux Wegweiser zur Installation amp Konfiguration O Reilly ISBN 978 3 89721 353 1 daraus Die GeratedateienWeblinks BearbeitenMajor und Minor Nummern aus der Dokumentation zur Konfiguration des HP 9000 Rechners Aus dem FreeBSD Handbook Devices and Device Nodes englisch Abgerufen von https de wikipedia org w index php title Geratedatei amp oldid 230161949