<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Ger%C3%A4tedatei</id>
	<title>Gerätedatei - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Ger%C3%A4tedatei"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Ger%C3%A4tedatei&amp;action=history"/>
	<updated>2026-06-23T00:30:54Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Ger%C3%A4tedatei&amp;diff=45035&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Ger%C3%A4tedatei&amp;diff=45035&amp;oldid=prev"/>
		<updated>2025-11-23T11:33:00Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Gerätedateien&amp;#039;&amp;#039;&amp;#039; ({{enS|device file}}) sind spezielle [[Datei]]en, die unter fast allen [[Unix-Derivat]]en und vielen anderen [[Betriebssystem]]en genutzt werden. Sie ermöglichen eine einfache Kommunikation zwischen [[Userspace]], zum Beispiel gewöhnlichen [[Anwenderprogramm]]en, und dem [[Kernel (Betriebssystem)|Kernel]] und damit letztlich der [[Hardware]] eines [[Computer]]s. Diese Kommunikation ist [[Transparenz (Computersystem)|transparent]], da Gerätedateien wie normale Dateien verwendet werden.&lt;br /&gt;
&lt;br /&gt;
== Gerätedateien unter Unix ==&lt;br /&gt;
=== Typen von Gerätedateien ===&lt;br /&gt;
Die [[Dateisystem]]e von [[Unix]]- und [[Unixoides Betriebssystem|ähnlichen Betriebssystemen]] unterscheiden zwischen „normalen“ [[Datei]]en (binär/ASCII), [[Verzeichnis]]sen, [[Named&amp;amp;nbsp;Pipe]]s (auch [[FIFO]]s genannt), [[Symbolische Verknüpfung]]en, [[Socket (Software)|Sockets]] und [[Datenblock|Datenblöcken]]. Während „normale“ Dateien und Verzeichnisse zum Standardfunktionsumfang gewöhnlicher Dateisysteme gehören, spielen bereits Named&amp;amp;nbsp;Pipes eine Sonderrolle, zählen aber nicht zu den Gerätedateien. Erst bei den letzten drei Typen handelt es sich um Gerätedateien. Somit wird zwischen drei Typen von Gerätedateien unterschieden:&lt;br /&gt;
* &amp;#039;&amp;#039;character devices&amp;#039;&amp;#039;: [[#Zeichenorientierte Geräte|zeichenorientierte Geräte]]&lt;br /&gt;
* &amp;#039;&amp;#039;block devices&amp;#039;&amp;#039;: [[#Blockorientierte Geräte|blockorientierte Geräte]]&lt;br /&gt;
* &amp;#039;&amp;#039;socket devices&amp;#039;&amp;#039;: [[#Socketorientierte Geräte|socketorientierte Geräte]]&lt;br /&gt;
&lt;br /&gt;
Zur Ausgabe des Typs einer (Geräte-)Datei eignen sich Befehle wie &amp;lt;code&amp;gt;[[ls (Unix)|ls]]&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;[[file]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Konqueror dev.png|mini|&amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; im Dateisystembrowser [[Konqueror]]. Zu sehen sind die [[Icon (Computer)|Icons]] der vielen verschiedenen Gerätedateien]]&lt;br /&gt;
Da meist für jedes Gerät eine eigene Gerätedatei existiert, sammelte man bereits in frühen Versionen von Unix diese Dateien im Verzeichnis &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt;. Mit dem [[Filesystem Hierarchy Standard]] ist dieses Vorgehen für Linux standardisiert worden ([[Solaris (Betriebssystem)|Solaris]] führt die Gerätedateien unter dem virtuellen Dateisystem in &amp;lt;code&amp;gt;/devices&amp;lt;/code&amp;gt; und generiert automatisiert Symlinks die von &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; zu den eigentlichen Dateien in &amp;lt;code&amp;gt;/devices&amp;lt;/code&amp;gt; zeigen), ferner ist vorgeschrieben, welche Gerätedateien in diesem Verzeichnis unter welchem Namen existieren müssen (siehe dazu die Listen weiter unten). Moderne Unix-Derivate benutzen oft spezielle (virtuelle) Dateisysteme, um dieses Verzeichnis aktuell zu halten. Unter [[Linux]] war dafür lange Zeit [[devfs]] populär, mittlerweile sorgt [[udev]] für die Verwaltung der Gerätedateien.&lt;br /&gt;
&lt;br /&gt;
Gerätedateien werden als Schnittstelle zwischen [[Gerätetreiber]]n oder Systemkomponenten und [[Anwendungsprogramm]]en, die im [[Userspace]] ablaufen, genutzt. So druckt man beispielsweise auf einem [[LPT]]-Drucker, der über die [[parallele Schnittstelle]] an den Computer angeschlossen ist, indem man Text direkt in die Gerätedatei &amp;lt;code&amp;gt;/dev/lp0&amp;lt;/code&amp;gt; schreibt. Durch das Konzept der Gerätedateien sind Programme prinzipiell von den Gerätetreibern, die im Kernel agieren, getrennt. Außerdem erscheint die Benutzung eines Gerätes völlig transparent – man muss nicht erst ein spezielles Programm nutzen, sondern kann in eine Datei schreiben, die quasi dem Drucker entspricht. Dies ermöglicht eine intuitive Benutzung der Hardware.&lt;br /&gt;
&lt;br /&gt;
Das Konzept der Gerätedateien ist eine der Grundlagen für den Unix-Grundsatz &amp;#039;&amp;#039;[[Everything is a file|Alles ist eine Datei]]&amp;#039;&amp;#039; und wurde beispielsweise mit Ansätzen wie dem Derivat [[Plan 9 (Betriebssystem)|Plan 9]] ausgebaut.&lt;br /&gt;
&lt;br /&gt;
==== Blockorientierte Geräte ====&lt;br /&gt;
Blockorientierte Geräte (auch Blockspeichergerät, Blockgerät oder [[Englische Sprache|engl.]] &amp;#039;&amp;#039;{{lang|en|block device}}&amp;#039;&amp;#039;) übertragen Daten in [[Datenblock|Datenblöcken]] und werden daher oft für [[parallele Datenübertragung]]en genutzt. Alle diese Geräte nutzen den betriebssystemeigenen [[Puffer (Informatik)|Puffer]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ Beispiele von Dateinamen für blockorientierte Geräte&lt;br /&gt;
|-&lt;br /&gt;
! Beschreibung des Geräts || [[Linux]] || [[FreeBSD]] || [[NetBSD]]/[[OpenBSD]] || [[macOS]] || [[Solaris (Betriebssystem)|Solaris]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| 1.&amp;amp;nbsp;[[Diskettenlaufwerk]]&lt;br /&gt;
| &amp;lt;code&amp;gt;fd0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| [[Integrated Drive Electronics|IDE]]-[[Massenspeicher|Festplatte]] oder IDE-[[CD-ROM-Laufwerk]] am 1.&amp;amp;nbsp;Anschluss [[Master/Slave|Master]] (in [[Linux]])&lt;br /&gt;
| &amp;lt;code&amp;gt;hda&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ad0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;wd0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| IDE-Festplatte oder IDE-CD-ROM-Laufwerk am 1.&amp;amp;nbsp;Anschluss [[Master-Slave|Slave]]&lt;br /&gt;
| &amp;lt;code&amp;gt;hdb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ad1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| 1.&amp;amp;nbsp;[[Partition (Datenträger)|Partition]] der ersten IDE-Platte&lt;br /&gt;
| &amp;lt;code&amp;gt;hda1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| die logisch 15.&amp;amp;nbsp;Partition der ersten IDE-Platte&lt;br /&gt;
| &amp;lt;code&amp;gt;hda15&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| 1.&amp;amp;nbsp;[[Partition (Datenträger)#Konzepte der Partitionierungen|Slice]] der ersten IDE-Platte&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;ad0s1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| 15.&amp;amp;nbsp;Slice der ersten IDE-Platte&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;ad0s15&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| 1.&amp;amp;nbsp;Partition im 1.&amp;amp;nbsp;Slice der ersten IDE-Platte&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;ad0s1a&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| 2.&amp;amp;nbsp;Partition im 1.&amp;amp;nbsp;Slice der ersten IDE-Platte&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;ad0s1b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| IDE-[[CD-ROM-Laufwerk]] am 1.&amp;amp;nbsp;Anschluss Master&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;acd0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| IDE-CD-ROM-Laufwerk am 1.&amp;amp;nbsp;Anschluss Slave&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;acd1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| 1.&amp;amp;nbsp;SCSI-CD-ROM-Laufwerk&lt;br /&gt;
| &amp;lt;code&amp;gt;scd0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;cd0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| [[Small Computer System Interface|SCSI]]-(Wechsel-)Platte, kleinste SCSI-ID&lt;br /&gt;
| &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;disk0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| [[SCSI]]-(Wechsel-)Platte, nächstgrößere SCSI-ID&lt;br /&gt;
| &amp;lt;code&amp;gt;sdb&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| 1.&amp;amp;nbsp;Partition der ersten SCSI-(Wechsel-)Platte&lt;br /&gt;
| &amp;lt;code&amp;gt;sda1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;disk0s1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| die logisch 15.&amp;amp;nbsp;Partition der ersten SCSI-(Wechsel-)Platte&lt;br /&gt;
| &amp;lt;code&amp;gt;sda15&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| SCSI-(Wechsel-)Platte, kleinste SCSI-ID&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;da0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;disk0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| 5.&amp;amp;nbsp;Partition im 2.&amp;amp;nbsp;Slice der 2.&amp;amp;nbsp;SCSI-(Wechsel-)Platte&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;da1s2e&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| am &amp;#039;&amp;#039;C&amp;#039;&amp;#039;-ten SCSI-[[Controller (Hardware)|Controller]] mit SCSI-ID=&amp;#039;&amp;#039;T&amp;#039;&amp;#039; die &amp;#039;&amp;#039;D&amp;#039;&amp;#039;-te Festplatte und auf ihr das &amp;#039;&amp;#039;S&amp;#039;&amp;#039;-te Slice&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;c&amp;#039;&amp;#039;C&amp;#039;&amp;#039;t&amp;#039;&amp;#039;T&amp;#039;&amp;#039;d&amp;#039;&amp;#039;D&amp;#039;&amp;#039;s&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| [[symbolische Verknüpfung]] auf CD-ROM-Laufwerk&lt;br /&gt;
| &amp;lt;code&amp;gt;cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| Der erste Namespace des ersten registrierten [[NVMe]]-Geräts&lt;br /&gt;
|&amp;lt;code&amp;gt;nvme0n1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| Die erste Partition des ersten Namespaces des ersten registrierten [[NVMe]]-Geräts&lt;br /&gt;
|&amp;lt;code&amp;gt;nvme0n1p1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Unterscheidung zwischen den [[Schnittstelle]]n[[Kommunikationsprotokoll|protokollen]] ist bei den meisten Systemen nur noch historisch. Unter [[macOS]] sind sowohl [[Integrated Drive Electronics|IDE]]-, [[Small Computer System Interface|SCSI]]-, [[Serial ATA|SATA]]-, [[NVM Express|NVMe]]-, [[optisches Laufwerk|optische Laufwerke]] wie DVD-ROM- als auch logische Laufwerke wie [[Apple File System|APFS]]-Container als Geräte mit dem Dateinamen &amp;lt;code&amp;gt;/dev/disk&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; durchnummeriert. Auch unter [[Linux (Kernel)|Linux]] wurde Ende 2006 mit Kernel-Version 2.6.19&amp;lt;ref&amp;gt;{{Internetquelle |url=https://kernelnewbies.org/Linux_2_6_19#Libata_PATA_.28Parallel_ATA.29_merge |titel=Linux_2_6_19 2.4 Libata PATA (Parallel ATA) merge |werk=KernelNewbies |hrsg=&amp;lt;!--unbekannt... &amp;quot;Kernelnewbies is a community&amp;quot;...--&amp;gt; |datum=&amp;lt;!-- last updated: --&amp;gt;2017-12-30 |sprache=en |abruf=2025-09-23}}&amp;lt;/ref&amp;gt; der bis dahin separate IDE- bzw. ATA-Treiber („Parallel ATA“) gemeinsam mit SATA und den SCSI-Treibern in das libATA-Treiber-Framework überführt, sodass auch IDE-Geräte nun als &amp;lt;code&amp;gt;/dev/sd&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; durchnummeriert werden (beginnend bei &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Die Partitionsnummern sind abhängig vom verwendeten [[Partitionsschema#Partitionierung|Partitionsschema]]. Beispielsweise ist der [[Master Boot Record]] (MBR), wie er auf den meisten [[IBM-PC-kompatibler Computer|IBM-kompatiblen PCs]] bis in die Mitte der 2010er Jahre vorzufinden war und auch auf zahlreichen externen [[Datenträger]]n (z.&amp;amp;nbsp;B. [[USB-Stick]]s, [[Speicherkarte]]n oder [[externe Festplatte]]n) weiterhin genutzt wird, auf vier „Primärpartitionen“ beschränkt. Daher sind z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;/dev/hda&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; bis &amp;lt;code&amp;gt;/dev/hda&amp;#039;&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; (bzw. analog dazu auf u.&amp;amp;nbsp;a. &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nvem0n1&amp;lt;/code&amp;gt; usw.) immer für die primären [[Partition (Datenträger)|Partitionen]] reserviert. Um mehr als diese vier Partitionen nutzen zu können, erlaubt der MBR eine „[[Erweiterte Partition]]“ – so könnte z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;/dev/hda&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; eine Erweiterte Partition beherbergen (wodurch &amp;lt;code&amp;gt;/dev/hda&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/dev/hda&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/dev/hda&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; für primäre Partitionen nutzbar bleiben). Die Gerätedatei &amp;lt;code&amp;gt;/dev/hda&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; beschreibt dann zwar eine Partition, allerdings beinhaltet diese kein Dateisystem, sondern weitere Partitionen – wie eine Partitionstabelle – in Form einer oder mehrerer „logischer Partitionen“. Beim MBR starten logische Partitionen daher immer bei &amp;lt;code&amp;gt;/dev/hda&amp;#039;&amp;#039;&amp;#039;5&amp;#039;&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; – auch dann, wenn die Erweiterte Partition die einzige primäre Partition darstellt (etwa bereits in der ersten Primärpartition definiert ist, &amp;lt;code&amp;gt;/dev/hda&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;) – &amp;lt;code&amp;gt;/dev/hda&amp;#039;&amp;#039;5&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; (bzw. analog dazu auf u.&amp;amp;nbsp;a. &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nvem0n1&amp;lt;/code&amp;gt; usw.) wäre in diesem Szenario daher die erste im klassischen Sinn verfügbare Partition.&lt;br /&gt;
&lt;br /&gt;
Andere [[Partitionstabelle]]n, beispielsweise die [[GUID Partition Table|GUID-Partitionstabelle]] (GPT), haben keine Unterteilung in primäre und erweiterte Partitionen, sodass die Nummerierung jener in der Partitionstabelle definierten Reihenfolge entspricht.&lt;br /&gt;
&lt;br /&gt;
Bei der [[Apple Partition Map]] (APM) ist dies ebenso, jedoch ist die Nummerierung nicht repräsentativ für die Nummer einer nutzbaren Partition, da auch die Partitionstabelle selbst sowie leere Bereiche zwischen zwei Partitionen in der Tabelle als Partition geführt werden. Da diese nicht nutzbar sind, verschiebt sich die Nummerierung dementsprechend: da &amp;lt;code&amp;gt;/dev/disk0s1&amp;lt;/code&amp;gt; immer die Partitionstabelle selbst ist, stellt &amp;lt;code&amp;gt;/dev/disk0s&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; die erste nutzbare Partition dar. [[Mac OS (Classic)|Klassisches Mac&amp;amp;nbsp;OS]] benötigt jedoch versteckte Partitionen für diverse Treiber, die vom System verwaltet und daher für den Anwender ([[Systemadministrator|Administrator]] oder [[Benutzer|Nutzer]]) nicht direkt verwendbar bzw. nicht sichtbar sind. Bei [[macOS|Mac OS&amp;amp;nbsp;X]] ohne [[Dual-Boot]] mit dem klassischen Mac&amp;amp;nbsp;OS fallen diese jedoch weg. In späteren Versionen von Mac OS&amp;amp;nbsp;X&amp;lt;!-- zumindest ab Mac OS X Tiger aka 10.4 ist das so--&amp;gt; werden durch das [[Festplattendienstprogramm (Apple)|Festplatten-Dienstprogramm]] ({{enS}} &amp;#039;&amp;#039;Disk Utility&amp;#039;&amp;#039;) erstellte Partitionen immer von leeren Bereichen à 128&amp;amp;nbsp;MB umschlossen, sodass &amp;lt;code&amp;gt;/dev/disk0s&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; die erste nutzbare Partition darstellt, &amp;lt;code&amp;gt;/dev/disk0s5&amp;lt;/code&amp;gt; die zweite usw.&lt;br /&gt;
&lt;br /&gt;
==== Zeichenorientierte Geräte ====&lt;br /&gt;
Zeichenorientierte Geräte übertragen nur ein Zeichen (typischerweise ein [[Byte]]) zur selben Zeit, sind also der [[Serielle Datenübertragung|seriellen Datenübertragung]] zuzusprechen. Meist, aber nicht immer, werden Daten ungepuffert – also sofort – übertragen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ Beispiele von Dateinamen für zeichenorientierte Geräte&lt;br /&gt;
|-&lt;br /&gt;
! Beschreibung des Geräts || [[Linux]] || [[DOS]]/[[Microsoft Windows|Windows]] || [[macOS]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| 1.&amp;amp;nbsp;[[Serielle Schnittstelle]]&lt;br /&gt;
| &amp;lt;code&amp;gt;ttyS0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| 1.&amp;amp;nbsp;[[Parallele Schnittstelle]]&lt;br /&gt;
| &amp;lt;code&amp;gt;lp0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;LPT1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| 2.&amp;amp;nbsp;Parallele Schnittstelle&lt;br /&gt;
| &amp;lt;code&amp;gt;lp1&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;LPT2&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| symbolische Verknüpfungen für [[Pseudoterminal]]s&lt;br /&gt;
| &amp;lt;code&amp;gt;tty&amp;lt;em&amp;gt;X&amp;lt;/em&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| Gerätedateien für USB-Geräte sowie alle virtuellen Gerätedateien&lt;br /&gt;
| &amp;lt;code&amp;gt;usbdev1.1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| symbolische Verknüpfung auf [[Maus (Computer)|Maus]]-Gerätedatei&lt;br /&gt;
| &amp;lt;code&amp;gt;mouse&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| Datei eines [[Framebuffer]]s (z.&amp;amp;nbsp;B. Monitor)&lt;br /&gt;
| &amp;lt;code&amp;gt;fb&amp;lt;em&amp;gt;X&amp;lt;/em&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| Laufwerksdatei im Zeichenmodus ([[macOS]]). rdisk0, rdisk1, … entspricht hier der ersten, zweiten, … Festplatte als Gerät an sich, während rdisk0s1 beispielsweise die erste Partition auf der ersten Festplatte ist.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;rdisk#&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rdisk#s#&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;| Der Geräte-[[Controller (Hardware)|Controller&lt;br /&gt;
]] des ersten registrierten [[NVMe]]-Geräts&lt;br /&gt;
|&amp;lt;code&amp;gt;nvme0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die [[Netzwerkkarte]]n (zum Beispiel [[Ethernet]], [[Integrated Services Digital Network|ISDN]]) werden unter Linux nicht über Gerätedateien, sondern über den [[TCP/IP-Stack]] angesprochen, gleichwohl existieren oft auch Gerätedateien für Spezialanwendungen wie etwa zur direkten Ansteuerung der Hardware ([[Netlink]] Device, [[D-Kanal]] etc.).&lt;br /&gt;
&lt;br /&gt;
==== Socketorientierte Geräte ====&lt;br /&gt;
Bei &amp;#039;&amp;#039;socketorientierten Geräten&amp;#039;&amp;#039; handelt es sich nicht um Gerätedateien, sondern eine Form von [[Interprozesskommunikation]]. Wie [[FIFO]]s sind sie damit keine Gerätedateien, können aber auch zur Kommunikation mit dem Kernel eingesetzt werden und nehmen dabei eine ähnliche Aufgabe wahr wie zeichenorientierte Geräte.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Beispiele für socketorientierte Geräte&lt;br /&gt;
|-&lt;br /&gt;
! Dateiname || Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/dev/log&amp;lt;/code&amp;gt;&lt;br /&gt;
|Socket für den [[syslog]]-[[Daemon]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/dev/gpmdata&amp;lt;/code&amp;gt;&lt;br /&gt;
|Socket für den GPM-Maus-[[Multiplexer]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/dev/printer&amp;lt;/code&amp;gt;&lt;br /&gt;
|Socket für [[LPD-Protokoll|lpd]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unechte Geräte ===&lt;br /&gt;
{{Anker|Virtuelle Gerätedateien}}&lt;br /&gt;
Eine Gerätedatei muss nicht mit einem real existierenden Gerät korrespondieren, sondern kann auch für ein sogenanntes &amp;#039;&amp;#039;virtuelles Gerät&amp;#039;&amp;#039; ({{lang|en|virtual device}}) bzw. &amp;#039;&amp;#039;Pseudogerät&amp;#039;&amp;#039; ({{lang|en|pseudo-device}}) stehen. Das ist ein Arbeitsmittel, dessen Funktionsweise vom Betriebssystem (Kernel, Kernelerweiterung, Treiber) gehandhabt wird.&lt;br /&gt;
&lt;br /&gt;
Anders als der Begriff &amp;#039;&amp;#039;virtuelles Gerät&amp;#039;&amp;#039; vermuten lässt, wird hier nicht unbedingt ein physisches Gerät nachgebildet (vgl. [[Virtualisierung (Informatik)|Virtualisierung]]).&lt;br /&gt;
&lt;br /&gt;
Nachfolgend eine Liste der verbreitetsten Pseudogeräte (alle zeichenorientiert) in [[Unix]]- und [[Unixoides Betriebssystem|ähnlichen Systemen]]:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[:/dev/null]]&amp;lt;/code&amp;gt; || verwirft jede Eingabe ohne eine Ausgabe zu produzieren&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[:/dev/zero]]&amp;lt;/code&amp;gt; || produziert einen Zeichenstrom, der nur aus [[Nullzeichen]] (in [[C (Programmiersprache)|C]]-Notation: &amp;lt;code&amp;gt;&amp;#039;\0&amp;#039;&amp;lt;/code&amp;gt;) besteht&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[:/dev/full]]&amp;lt;/code&amp;gt; || produziert einen Zeichenstrom, der beim [[Lesezugriff]] nur aus [[Nullzeichen]] (in [[C (Programmiersprache)|C]]-Notation: &amp;lt;code&amp;gt;&amp;#039;\0&amp;#039;&amp;lt;/code&amp;gt;) besteht. Bei Schreibzugriffen gibt es einen ENOSPC (&amp;quot;disk full&amp;quot;) Fehler.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[:/dev/random]]&amp;lt;/code&amp;gt; || produziert echte [[Zufallszahl]]en oder wenigstens [[Kryptographie|kryptografisch]] starke [[Pseudozufallszahl]]en (meist anhand von Hardware-Eingaben)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[:/dev/urandom]]&amp;lt;/code&amp;gt; || produziert [[Pseudozufallszahl]]en (meist im Gegensatz zu &amp;lt;code&amp;gt;/dev/random&amp;lt;/code&amp;gt; ohne zu blockieren, wenn keine Hardwaredaten anfallen)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Verwaltung der Gerätedateien am Beispiel Linux ===&lt;br /&gt;
Zum Erstellen von Gerätedateien dient das linuxspezifische [[Unix-Kommando|Kommando]] &amp;lt;code&amp;gt;[[mknod]]&amp;lt;/code&amp;gt;, welches zum Erstellen einer Gerätedatei die zugehörige Major- und Minor number benötigt.&lt;br /&gt;
&lt;br /&gt;
Wenn ein Benutzer bei frühen Linux-Versionen einen neuen Treiber installiert hat, so mussten eine oder mehrere Gerätedateien mit diesem &amp;lt;code&amp;gt;mknod&amp;lt;/code&amp;gt;-Kommando unter Zuhilfenahme der Treiberdokumentation und unter Angabe der notwendigen Major/Minor-Number angelegt werden, um die benötigte Schnittstelle zu schaffen. Viele [[Linux-Distribution]]en lieferten daher im &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt;-Verzeichnisbaum bereits tausende von Gerätedateien mit, ungeachtet ob diese jemals benötigt werden würden. Dies war einerseits unübersichtlich, andererseits war es schwierig, automatisch neue Treiber für neue Hardware zu laden, da die Gerätedateien immer manuell gepflegt werden mussten.&lt;br /&gt;
&lt;br /&gt;
Innerhalb mehrerer Jahre und Kernel-Releases wurden so zwei neue Konzepte entwickelt:&lt;br /&gt;
&lt;br /&gt;
==== devfs ====&lt;br /&gt;
{{Hauptartikel|devfs}}&lt;br /&gt;
&lt;br /&gt;
Im [[Linux (Kernel)|Linux-Kernelbaum]] 2.2 wurde das &amp;#039;&amp;#039;[[devfs]]&amp;#039;&amp;#039; eingeführt. Die zugrundeliegende Idee war, dass die [[Kernel-Modul]]e selbst Informationen zu den Namen der Gerätedateien, die sie erzeugen, neben den Minor und Major Numbers sowie dem Typ mit sich führen. Dadurch konnte der Kernel erstmals die Erzeugung der Gerätedateien selbst übernehmen.&lt;br /&gt;
&lt;br /&gt;
Die benötigten bzw. vom Kernel und seinen Modulen gestellten Gerätedateien hat der Kernel anschließend automatisch in dem devfs-Dateisystem mit Hilfe des &amp;#039;&amp;#039;devfsd&amp;#039;&amp;#039;-[[Daemon]]s erstellt. Das Dateisystem wurde dabei üblicherweise im Verzeichnis &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; gemountet.&lt;br /&gt;
&lt;br /&gt;
==== udev ====&lt;br /&gt;
{{Hauptartikel|udev}}&lt;br /&gt;
&lt;br /&gt;
Nach reiflicher Überlegung schien das System mit devfs doch zu unflexibel. Gefordert wurde ein System, das beim Einstecken neuer Hardware reagiert ([[Hotplug]]ging), die entsprechenden Kernelmodule lädt und die Gerätedateien anlegt und beim Ausstecken der Geräte diese wieder entfernt. Zusätzlich sollte es möglich sein, über ein Regelwerk selbst zu definieren, welches Namensschema man für seine Gerätedateien anwenden möchte, wie diese in Unterverzeichnissen strukturiert werden sollen etc.&lt;br /&gt;
&lt;br /&gt;
Mit der Einführung von Kernel 2.6 wurde [[udev]] dieses neue Geräteverwaltungskonzept. Ähnlich wie bei devfs gibt es auch hier einen Daemon der im [[Userspace]] läuft und die eigentliche Arbeit erledigt. Bei udev kommt jedoch kein eigenes Dateisystem zum Einsatz, außerdem ist die notwendige Kernelkomponente deutlich schlanker, also kleiner und einfacher.&lt;br /&gt;
&lt;br /&gt;
== Gerätedateien unter Windows ==&lt;br /&gt;
Auch unter [[Microsoft Windows|Windows]] gibt es Gerätedateien: Auf sie kann man als Programmierer mittels der [[Subroutine]] &amp;lt;code&amp;gt;CreateFile()&amp;lt;/code&amp;gt; zugreifen. Der Name einer Gerätedatei hat das Format &amp;lt;code&amp;gt;\\.\NAME&amp;lt;/code&amp;gt;. Gerätedateien sind nicht, wie unter Unix, unter gewöhnlichen Verzeichnissen anzutreffen, die Kommunikation erfolgt entsprechend auch nicht (für den Benutzer) transparent. Im Allgemeinen hat man als Benutzer mit der Windows-[[Shell (Betriebssystem)|Shell]] keine Möglichkeit, mit den Gerätedateien in Berührung zu kommen.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* [[Arnold Willemer]]: &amp;#039;&amp;#039;Wie werde ich UNIX-Guru.&amp;#039;&amp;#039; Galileo Press, Bonn 2003, ISBN 978-3-89842-240-6, daraus [http://openbook.galileocomputing.de/unix_guru/node122.html Hardwarezugriff unter UNIX: /dev]&lt;br /&gt;
* Matt Welsh, Matthias K Dalheimer, Terry Dawson, Lar Kaufman: &amp;#039;&amp;#039;Linux Wegweiser zur Installation &amp;amp; Konfiguration.&amp;#039;&amp;#039; O’Reilly, ISBN 978-3-89721-353-1, daraus [http://www.oreilly.de/german/freebooks/linux_install/kap0414.html Die Gerätedateien]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://docs.hp.com/de/B2355-90714/apc.html Major- und Minor-Nummern] aus der Dokumentation zur Konfiguration des [[HP 9000]] Rechners&lt;br /&gt;
* Aus dem [[FreeBSD]]-Handbook: [https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/basics-devices.html Devices and Device Nodes] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{SORTIERUNG:Geratedatei}}&lt;br /&gt;
[[Kategorie:Betriebssystemtheorie]]&lt;br /&gt;
[[Kategorie:Unix]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>