|
|
(77 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| '''topic''' - Kurzbeschreibung | | '''Linux/Dateinamen''' - Beschreibung |
| | |
| == Beschreibung == | | == Beschreibung == |
| == Installation ==
| | ; Was ist ein Dateiname? |
| == Syntax ==
| | Identifiziert eine [[Datei]] |
| === Optionen ===
| | * auf einem [http://de.wikipedia.org/wiki/Datenspeicher Datenträger] |
| === Parameter ===
| | * bei einer [http://de.wikipedia.org/wiki/Datenübertragung Datenübertragung] |
| === Umgebungsvariablen ===
| |
| === Exit-Status ===
| |
| == Anwendung ==
| |
| === Fehlerbehebung ===
| |
| == Konfiguration ==
| |
| === Dateien ===
| |
| == Anhang ==
| |
| === Siehe auch ===
| |
| {{Special:PrefixIndex/{{BASEPAGENAME}}}}
| |
| ==== Sicherheit ====
| |
| ==== Dokumentation ====
| |
| ===== RFC =====
| |
| ===== Man-Pages =====
| |
| ===== Info-Pages =====
| |
| ==== Links ====
| |
| ===== Einzelnachweise =====
| |
| <references />
| |
| ===== Projekt =====
| |
| ===== Weblinks =====
| |
| <noinclude>
| |
| === Testfragen ===
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 1''
| |
| <div class="mw-collapsible-content">'''Antwort1'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 2''
| |
| <div class="mw-collapsible-content">'''Antwort2'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 3''
| |
| <div class="mw-collapsible-content">'''Antwort3'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 4''
| |
| <div class="mw-collapsible-content">'''Antwort4'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 5''
| |
| <div class="mw-collapsible-content">'''Antwort5'''</div>
| |
| </div>
| |
|
| |
|
| = TMP =
| | ; Verzeichnis |
| | * Meist wird eine Datei zusätzlich durch einen Verzeichnisnamen charakterisiert |
| | * sodass ein vollständiger [http://de.wikipedia.org/wiki/Pfadname Pfadname] entsteht |
|
| |
|
| == Dateieigenschaften ==
| | Eindeutigkeit |
| Wenn sie sich ein Verzeichnis mit dem Kommando "<tt>'''ls·-l'''</tt>" ansehen, erhalten wir eine solche Liste:
| | Erst diese Kombination zu einem vollständigen Pfadnamen ist in der Regel eindeutig |
|
| |
|
| total 1093
| | ; Teile |
| -rw-r--r-- 1 root root 116547 May 25 1997 System.map
| | Dateinamen können aus mehreren Teilen bestehen |
| drwxr-xr-x 2 root root 1024 Sep 23 1996 bin/
| | * Abhängig vom jeweiligen [http://de.wikipedia.org/wiki/Betriebssystem Betriebssystem] |
| drwxr-xr-x 2 root root 1024 May 25 1997 boot/
| | * Die einzelnen Teile sind durch bestimmte Zeichen, die in der Regel nicht Teil des Dateinamens sein können, getrennt; die [http://de.wikipedia.org/wiki/Liste_von_Dateinamenserweiterungen Liste von Dateinamenserweiterungen] verschafft einen Überblick |
| drwxr-xr-x 2 root root 1024 Oct 27 1996 cdrom/
| |
| drwxr-xr-x 3 root root 20480 May 4 15:28 dev/
| |
| drwxr-xr-x 7 root root 2048 May 4 16:05 etc/
| |
| drwxr-xr-x 5 root root 1024 Dec 7 1997 home/
| |
| drwxr-xr-x 3 root root 1024 Sep 23 1996 lib/
| |
| drwxr-xr-x 5 root root 1024 Sep 23 1996 local/
| |
| drwxr-xr-x 2 root root 12288 Sep 23 1996 lost+found/
| |
| drwxr-xr-x 2 root root 1024 Sep 23 1996 mnt/
| |
| dr-xr-xr-x 5 root root 0 May 4 1999 proc/
| |
| drwx------ 5 root root 1024 Sep 21 1997 root/
| |
| drwxr-xr-x 4 root root 2048 Sep 23 1996 sbin/
| |
| drwxrwxrwx 4 root root 1024 Apr 6 09:18 tmp/
| |
| drwxr-xr-x 18 root root 1024 Apr 25 1997 usr/
| |
| drwxr-xr-x 14 root root 1024 Apr 25 1997 var/
| |
|
| |
|
| ; Ausgabe von rechts nach links | | ; Mime-Types |
| * '''Dateiname''', jede Zeile ist der Eintrag für eine Datei. | | * Einige Betriebssysteme machen die Behandlung der Dateien von der jeweiligen [http://de.wikipedia.org/wiki/Dateinamenserweiterung Dateinamenserweiterung] abhängig, andere arbeiten ohne diese Konvention und erkennen den Dateityp anhand des Inhalts (beispielsweise anhand einer sogenannten [http://de.wikipedia.org/wiki/Magische_Zahl_%28Informatik%29 magischen Zahl]) |
| * '''Datum und Uhrzeit''' der letzten Modifikation der Datei
| | * Auch auf diesen Systemen werden aber oft Dateien mit solchen Dateiendungen versehen, da es den Datenaustausch vereinfacht |
| * '''Größe''' der Datei in Bytes (1 Byte entspricht einem Zeichen, also z.B.
| |
| * einem Buchstaben | |
| * '''Gruppe''' der Datei
| |
| * '''Besitzer''' der Datei
| |
| * '''Zugriffsrechte'''
| |
| * '''Dateityp''' (erstes Zeichen)
| |
|
| |
|
| {| class="wikitable sortable"
| | ; Länge |
| |-
| | Die maximale Länge eines Dateinamens wird sowohl durch das Betriebssystem als auch durch das [http://de.wikipedia.org/wiki/Dateisystem Dateisystem] des Datenträgers begrenzt |
| | | <tt>'''-'''</tt>
| | * So können etwa auf einer CD-ROM bei Verwendung des [http://de.wikipedia.org/wiki/Joliet_%28Dateisystem%29 Joliet-Dateisystems] maximal 64 Zeichen genutzt werden |
| | | Normale Datei
| | * Eine indirekte Begrenzung kann zudem durch eine maximale Länge von Pfadnamen im Betriebssystem entstehen |
| |-
| | * Ein Unterschied zwischen MS-Windows und Linux/Unix besteht darin, dass Windows bei Dateinamen nicht zwischen Groß- und Kleinschreibung unterscheidet, während Unix dies tut (zum Beispiel bezeichnen dort ''Haustuer.txt'' und ''hausTuer.txt'' unterschiedliche Dateien) |
| | | <tt>'''d'''</tt>
| |
| | | Verzeichnis
| |
| |-
| |
| | | <tt>'''c '''</tt>
| |
| | | Character (Zeichen)- Gerätedatei
| |
| |-
| |
| | | <tt>'''b'''</tt>
| |
| | | Block – Gerätedatei
| |
| |-
| |
| | | <tt>'''l'''</tt>
| |
| | | Softlink
| |
| |-
| |
| | | <tt>'''p'''</tt>
| |
| | | Pipe
| |
| |-
| |
| | | '''s'''
| |
| | | Socket
| |
|
| |
|
| |-
| | === Groß-/Kleinschreibung === |
| |}
| | Im Unterschied zu Windows wird bei Linux zwischen Groß- und Kleinschreibung unterschieden |
| | | * Daher ist die Datei test nicht identisch mit der Datei Test |
| === Dateiname ===
| | * Was am Anfang bei Umsteigern womöglich zur Verwirrung beiträgt, erweist sich nach einer Einarbeitungszeit häufig als eine praktische Eigenschaft |
| * Ein Dateiname identifiziert eine [http://de.wikipedia.org/wiki/Datei Datei] auf einem [http://de.wikipedia.org/wiki/Datenspeicher Datenträger] oder bei einer [http://de.wikipedia.org/wiki/Datenübertragung Datenübertragung].
| |
| * Meist wird eine Datei zusätzlich durch einen Verzeichnisnamen charakterisiert, sodass ein vollständiger [http://de.wikipedia.org/wiki/Pfadname Pfadname] entsteht.
| |
| * Erst diese Kombination zu einem vollständigen Pfadnamen ist in der Regel eindeutig.
| |
| * Ein Dateiname kann – abhängig vom jeweiligen [http://de.wikipedia.org/wiki/Betriebssystem Betriebssystem] – aus mehreren Teilen bestehen.
| |
| * Die einzelnen Teile sind durch bestimmte Zeichen, die in der Regel nicht Teil des Dateinamens sein können, getrennt; die [http://de.wikipedia.org/wiki/Liste_von_Dateinamenserweiterungen Liste von Dateinamenserweiterungen] verschafft einen Überblick.
| |
| * Einige Betriebssysteme machen die Behandlung der Dateien von der jeweiligen [http://de.wikipedia.org/wiki/Dateinamenserweiterung Dateinamenserweiterung] abhängig, andere arbeiten ohne diese Konvention und erkennen den Dateityp anhand des Inhalts (beispielsweise anhand einer sogenannten [http://de.wikipedia.org/wiki/Magische_Zahl_%28Informatik%29 magischen Zahl]).
| |
| * Auch auf diesen Systemen werden aber oft Dateien mit solchen Dateiendungen versehen, da es den Datenaustausch vereinfacht.
| |
| * Die maximale Länge eines Dateinamens wird sowohl durch das Betriebssystem als auch durch das [http://de.wikipedia.org/wiki/Dateisystem Dateisystem] des Datenträgers begrenzt.
| |
| * So können etwa auf einer CD-ROM bei Verwendung des [http://de.wikipedia.org/wiki/Joliet_%28Dateisystem%29 Joliet-Dateisystems] maximal 64 Zeichen genutzt werden.
| |
| * Eine indirekte Begrenzung kann zudem durch eine maximale Länge von Pfadnamen im Betriebssystem entstehen.
| |
| * Ein Unterschied zwischen MS-Windows und Linux/Unix besteht darin, dass Windows bei Dateinamen nicht zwischen Groß- und Kleinschreibung unterscheidet, während Unix dies tut (zum Beispiel bezeichnen dort ''Haustuer.txt'' und ''hausTuer.txt'' unterschiedliche Dateien).
| |
| | |
| ==== Groß-/Kleinschreibung ====
| |
| * Im Unterschied zu Windows wird bei Linux zwischen Groß- und Kleinschreibung unterschieden.
| |
| * Daher ist die Datei test nicht identisch mit der Datei Test. | |
| * Was am Anfang bei Umsteigern womöglich zur Verwirrung beiträgt, erweist sich nach einer Einarbeitungszeit häufig als eine praktische Eigenschaft. | |
| * Der folgende Einzeiler wandelt alle Dateinamen im aktuellen Verzeichnis in Kleinbuchstaben um: | | * Der folgende Einzeiler wandelt alle Dateinamen im aktuellen Verzeichnis in Kleinbuchstaben um: |
| '''for i in * ; do mv -i $i $(echo $i | tr [A-ZÄÖÜ] [a-zäöü]) ; done''' | | '''for i in * ; do mv -i $i $(echo $i | tr [A-ZÄÖÜ] [a-zäöü]) ; done''' |
| * Mit dem ß hat der Einzeiler noch Probleme. (Warum? Es gibt kein großes ß.) | | * Mit dem ß hat der Einzeiler noch Probleme. (Warum? Es gibt kein großes ß.) |
|
| |
|
| ==== Länge von Dateinamen ====
| | === Länge von Dateinamen === |
| Ein Dateiname darf 255 Zeichen lang sein. | | Ein Dateiname darf 255 Zeichen lang sein |
| * Damit sollte es jedem gelingen, seine Dokumente aussagekräftig zu benennen. | | * Damit sollte es jedem gelingen, seine Dokumente aussagekräftig zu benennen |
| * Wie die Erfahrung zeigt, sind Dateinamen in der Praxis selten auch nur annähernd so lang. | | * Wie die Erfahrung zeigt, sind Dateinamen in der Praxis selten auch nur annähernd so lang |
|
| |
|
| ==== Dateiendungen ====
| | === Dateiendungen === |
| Eine Datei muss unter Linux keine bestimmte Endung haben, wie dies bei Windows der Fall ist (beispiel.exe oder beispiel.txt). | | Eine Datei muss unter Linux keine bestimmte Endung haben, wie dies bei Windows der Fall ist (beispiel.exe oder beispiel.txt) |
| * Auch dies verwirrt am Anfang den Umsteiger, doch gewöhnt man sich auch daran. | | * Auch dies verwirrt am Anfang den Umsteiger, doch gewöhnt man sich auch daran |
|
| |
|
| Die meisten Dateien haben aber eine Endung, nicht ungewöhnlich sind auch mehrere - durch Punkte getrennte - Endungen (beispiel.tar.bz2).[http://de.wikipedia.org/wiki/Unix Unix]- und Unix-ähnliche Betriebssysteme wie zum Beispiel [http://de.wikipedia.org/wiki/Solaris_%28Betriebssystem%29 Solaris] oder [http://de.wikipedia.org/wiki/Linux Linux] betrachten Dateinamen als Ganzes. | | Die meisten Dateien haben aber eine Endung, nicht ungewöhnlich sind auch mehrere - durch Punkte getrennte - Endungen (beispiel.tar.bz2).[http://de.wikipedia.org/wiki/Unix Unix]- und Unix-ähnliche Betriebssysteme wie zum Beispiel [http://de.wikipedia.org/wiki/Solaris_%28Betriebssystem%29 Solaris] oder [http://de.wikipedia.org/wiki/Linux Linux] betrachten Dateinamen als Ganzes |
|
| |
|
| Eine Datei kann mehrere Namen haben und sich in mehreren Verzeichnissen befinden („hard links“ oder „bind mounts“). | | Eine Datei kann mehrere Namen haben und sich in mehreren Verzeichnissen befinden („hard links“ oder „bind mounts“) |
| * Alle Zeichen außer dem [http://de.wikipedia.org/wiki/Schrägstrich Schrägstrich] "/" und dem [http://de.wikipedia.org/wiki/Nullzeichen Nullzeichen] sind erlaubt. | | * Alle Zeichen außer dem [http://de.wikipedia.org/wiki/Schrägstrich Schrägstrich] "/" und dem [http://de.wikipedia.org/wiki/Nullzeichen Nullzeichen] sind erlaubt |
| * Frühe Versionen hatten 1 bis 14 Zeichen lange Dateinamen. | | * Frühe Versionen hatten 1 bis 14 Zeichen lange Dateinamen |
| * Die [http://de.wikipedia.org/wiki/Berkeley_Software_Distribution BSD]-Varianten führten bis zu 255 Zeichen lange Namen ein. | | * Die [http://de.wikipedia.org/wiki/Berkeley_Software_Distribution BSD]-Varianten führten bis zu 255 Zeichen lange Namen ein |
|
| |
|
| Ein relativer Dateipfad kann aus mehreren Segmenten bestehen und beginnt mit einem Segment. | | Ein relativer Dateipfad kann aus mehreren Segmenten bestehen und beginnt mit einem Segment |
| * Jedes Segment unterliegt den Regeln des Dateinamens, kann also 14 bzw. 255 Zeichen lang sein. | | * Jedes Segment unterliegt den Regeln des Dateinamens, kann also 14 bzw. 255 Zeichen lang sein |
| * Die Segmente der Dateipfade werden durch das Zeichen "/" getrennt. | | * Die Segmente der Dateipfade werden durch das Zeichen "/" getrennt |
|
| |
|
| Das letzte Segment kennzeichnet die eigentliche Datei. | | Das letzte Segment kennzeichnet die eigentliche Datei |
| * Die vorhergehenden Segmente sind entweder Verzeichnisnamen oder symbolische Verweise (englisch „symbolic links“) auf Verzeichnisnamen. | | * Die vorhergehenden Segmente sind entweder Verzeichnisnamen oder symbolische Verweise (englisch „symbolic links“) auf Verzeichnisnamen |
| * Ein relativer Dateipfad geht vom aktuellen Arbeitsverzeichnis aus, das jeder [http://de.wikipedia.org/wiki/Prozess_%28Informatik%29 Prozess] individuell setzen kann. | | * Ein relativer Dateipfad geht vom aktuellen Arbeitsverzeichnis aus, das jeder [http://de.wikipedia.org/wiki/Prozess_%28Informatik%29 Prozess] individuell setzen kann |
|
| |
|
| Ein absoluter Dateipfad beginnt hingegen bereits mit "/" und ist unabhängig vom aktuellen Arbeitsverzeichnis. | | Ein absoluter Dateipfad beginnt hingegen bereits mit "/" und ist unabhängig vom aktuellen Arbeitsverzeichnis |
| * Er geht vom Wurzelverzeichnis aus. Über das Wurzelverzeichnis sind alle Dateien eines Systems erreichbar. | | * Er geht vom Wurzelverzeichnis aus. Über das Wurzelverzeichnis sind alle Dateien eines Systems erreichbar |
|
| |
|
| Beim Zugriff wird zwischen Groß- und Kleinschreibung unterschieden. | | Beim Zugriff wird zwischen Groß- und Kleinschreibung unterschieden |
|
| |
|
| ===== Wichtige Dateiendungen =====
| | ; Wichtige Dateiendungen |
| {| class="wikitable sortable" | | {| class="wikitable sortable" |
| |- | | |- |
| | | <tt>'''Zip.gz'''</tt> | | | | <tt>'''.zip.gz'''</tt> |
| | | Mit dem ZIP Algorithmus komprimierte Datei | | | | Mit dem ZIP Algorithmus komprimierte Datei |
| |- | | |- |
Zeile 170: |
Zeile 79: |
| |- | | |- |
| | | <tt>'''.c.cpp'''</tt> | | | | <tt>'''.c.cpp'''</tt> |
| | | C bzw. | | | | C bzw. |
| * C++ Quelltext | | * C++ Quelltext |
| |- | | |- |
Zeile 195: |
Zeile 104: |
| |- | | |- |
| | | <tt>'''.rpm.tar.tgz.deb'''</tt> | | | | <tt>'''.rpm.tar.tgz.deb'''</tt> |
| | | Verschiedene Packetformate. | | | | Verschiedene Packetformate |
| * Packete werden verwendet, um Software zu installieren | | * Packete werden verwendet, um Software zu installieren |
| |- | | |- |
Zeile 209: |
Zeile 118: |
| | | <tt>'''.dvi'''</tt> | | | | <tt>'''.dvi'''</tt> |
| | | Device Independent - Übersetzte .tex Datei | | | | Device Independent - Übersetzte .tex Datei |
|
| |
| |- | | |- |
| |} | | |} |
|
| |
| === Beispiele ===
| |
| /home/user/Dokumente/brief.txt
| |
| /usr/bin/texteditor
| |
|
| |
| Der Dateiname '.' (Punkt) bezeichnet das aktuelle Arbeitsverzeichnis.
| |
| * Der Name '..' verweist auf das übergeordnete Verzeichnis.
| |
|
| |
| Auch das Leerzeichen, der Zeilentrenner oder die sogenannten [http://de.wikipedia.org/wiki/Wildcard_%28Informatik%29 Wildcards] '*' und '?' können Teil eines Pfadnamens sein.
| |
| * Solche Zeichen bringen allerdings manchmal später Probleme mit sich, da zum Beispiel schlecht programmierte [http://de.wikipedia.org/wiki/Skriptsprache Skripte] damit nicht umgehen können.
| |
|
| |
| Weiterhin kann es Probleme mit Dateinamen geben, die Zeichen enthalten, die im aktuell verwendeten Zeichensatz eines Programms nicht vorkommen (zum Beispiel japanische Zeichen auf einem amerikanisch eingerichteten System).
| |
|
| |
| Die nicht darstellbaren Zeichen werden dann oft als Fragezeichen oder kleine Kästchen angezeigt, was den Zugriff auf die Daten sehr schwierig macht.
| |
|
| |
| Diese Dateien können dann oft nur bearbeitet werden, nachdem sie auf einer niedrigen Dateisystem-Abstraktionsebene umbenannt wurden (zum Beispiel durch Angabe der sogenannten inode statt des Dateinamens mit <tt>ls -i</tt> und <tt>find . -inum […] -exec mv {} […] \;</tt>).
| |
|
| |
| Ein Unix-System verwendet keine speziellen Erweiterungen, wie .EXE oder .CMD.
| |
| * Es hat sich allerdings eingebürgert, Dateien eines bestimmten Types, wie in anderen Betriebssystemen, auch mit einem Punkt und einer entsprechenden Erweiterung zu versehen, um die Übersichtlichkeit zu erhöhen.
| |
|
| |
| Beispielsweise wird die Endung ''.c'' für C-Quellprogramme verwendet.
| |
| * Ausführbare Dateien, also Programme und Skripte, erhalten keine Endung.
| |
| * Dateitypen können ansonsten mit dem einfachen Programm "file", unabhängig von einer eventuell vorhandenen Erweiterung ermittelt werden.
| |
|
| |
| Dateien oder Verzeichnisse, deren Namen mit einem Punkt beginnen, werden üblicherweise als „versteckte“ Dateien behandelt und nur angezeigt, wenn der Benutzer dies explizit angibt (zum Beispiel mit <tt>ls -a</tt>). Ähnliches gilt für Verzeichnispfade.
| |
|
| |
|
| === Dateisysteme === | | === Dateisysteme === |
| {| class="wikitable sortable" | | {| class="wikitable options" |
| |- | | |- |
| ! | Dateisystem | | ! | Dateisystem |
Zeile 297: |
Zeile 180: |
| |- | | |- |
| |} | | |} |
| (1) Bei Verwendung von [http://de.wikipedia.org/wiki/UTF-8 UTF-8]-Codierung und Benutzung von Nicht-ASCII-Zeichen stehen zwar 255 ''Byte'', aber weniger als 255 ''Zeichen'' zur Verfügung.
| | :Anmerkungen |
| | :# Bei Verwendung von [http://de.wikipedia.org/wiki/UTF-8 UTF-8]-Codierung und Benutzung von Nicht-ASCII-Zeichen stehen zwar 255 ''Byte'', aber weniger als 255 ''Zeichen'' zur Verfügung |
| | :# Die Codierung ist nicht genormt; als Voreinstellung wird meist UTF-8 verwendet |
| | :# Bei Verwendung langer Unicode-Pfade sind lediglich 255 Zeichen möglich |
|
| |
|
| (2) Die Codierung ist nicht genormt; als Voreinstellung wird meist UTF-8 verwendet.
| | == Anwendung == |
| | <noinclude> |
|
| |
|
| (3) Bei Verwendung langer Unicode-Pfade sind lediglich 255 Zeichen möglich
| | == Anhang == |
| | === Siehe auch === |
| | * [[stat]] |
| | {{Special:PrefixIndex/{{BASEPAGENAME}}}} |
|
| |
|
| == Dateieistatus anzeigen == | | ==== Dokumentation ==== |
| | | ===== Man-Page ===== |
| [[stat]]
| | ===== Info-Pages ===== |
| | | ==== Links ==== |
| == Zeitstempel ==
| | ===== Projekt ===== |
| [[Linux/Datei:Zeitstempel]]
| | ===== Weblinks ===== |
| | |
| == Dateityp ==
| |
| ===== Dateityp anzeigen (file) =====
| |
| <tt>'''file'''</tt> bestimmt den Dateityp
| |
| | |
| '''file''' [-c ] [-f ''Namendatei''] [-m ''Magiedatei''] ''Datei'' ...
| |
| | |
| <tt>'''file'''</tt> versucht die Art oder den Typ der angegebenen ''Datei'' zu bestimmen.
| |
| * Dazu werden drei Tests durchgeführt: ein Dateisystemtest, ein Kennzahlentest und ein Sprachtest.
| |
| * Der erste erfolgreiche Test führt zur Ausgabe des erkannten Dateityps.
| |
| | |
| Der erkannte Typ enthält normalerweise eines der Schlüsselwörter `text' für Dateien, die ohne Schwierigkeiten angezeigt werden können, `executable' für Dateien, die ausführbare Programme enthalten und auf dem einen oder anderen Unix-Rechner auch ausgeführt werden können, und `data' für alle anderen Dateien, die normalerweise nicht angezeigt werden können.
| |
| | |
| Nur allgemein bekannte Dateiformate wie <tt>core</tt>-Dateien oder <tt>tar</tt> Archive werden ohne diese Schlüsselwörter benannt.
| |
| * Der Dateisystemtest wird mit Hilfe des <tt>stat</tt>(2) Systemaufrufs durchgeführt.
| |
| * Hier werden leere Dateien ebenso erkannt wie alle Gerätedateien, Sockets, symbolische Links und andere Spezialdateien.
| |
| | |
| Der Kennzahlentest kann einige Dateien anhand festgelegter Kennzahlen - sogenannter `magic numbers' - erkennen, die sich in der Nähe des Dateianfangs an einer festgelegten Stelle befinden.
| |
| | |
| Mit Hilfe solcher Kennzahlen entscheidet beispielsweise das Betriebssystem, ob eine Datei korrekt ausführbar ist oder nicht.
| |
| * Diese Kennzahlen sind in der Datei /etc/magic abgespeichert.
| |
| * Wenn eine Datei als Text erkannt ist, versucht <tt>file</tt> noch, die (Programmier-)Sprache zu erkennen, indem es nach bestimmten Schlüsselwörtern sucht.
| |
| | |
| Auf diese Weise kann beispielsweise C-Quelltext oder die Eingabe für den <tt>groff</tt> Textprozessor erkannt werden.
| |
| | |
| ====== Optionen ======
| |
| {| class="wikitable sortable"
| |
| |-
| |
| | | <tt>'''-m ''Magiedatei'' '''</tt>
| |
| | | benutzt die benannte ''Magiedatei'' anstelle von /etc/magic für den Kennzahlentest
| |
| |-
| |
| | | <tt>'''-c '''</tt>
| |
| | | gibt den interpretierten Inhalt der Kennzahlendatei für Testzwecke aus
| |
| |-
| |
| | | <tt>'''-f ''Namendatei'' '''</tt>
| |
| | | veranlaßt <tt>file</tt>, die Namen der zu untersuchenden Programme aus der ''Namendatei'' zu lesen; in der Namendatei werden die Dateinamen durch Zeilenende getrennt aufgeführt
| |
| | |
| |-
| |
| |}
| |
| ===== Normale Dateien =====
| |
| * Normale Dateien (normal files)
| |
| * Dateien im üblichen Sinn: Text- oder Binärdateien
| |
| * Das System unterstützt keine Dateistruktur
| |
| * Dateien sind Bytefolgen (Strukturierung nur durch das Programm)
| |
| | |
| ===== Gerätedateien =====
| |
| Die Dateien im <tt>'''/dev'''</tt> Verzeichnis sind, wie bereits angedeutet "Pipelines" zur Hardware des Computers.
| |
| | |
| Die meisten Dateien können (die entsprechenden Zugriffsrechte vorausgesetzt) sowohl ausgelesen als auch beschrieben werden.
| |
| | |
| Einige, welche Statusinformationen über die Hardware liefern können selbstverständlich nur ausgelesen werden, während andere, welche die Hardware konfigurieren nur geschrieben werden können.
| |
| | |
| D.h.
| |
| * auf die einzelnen Hardwarekomponenten des Computers kann wie auf Dateien zugegriffen werden.
| |
| | |
| Vorteil dieses Konzepts: Auf diese Weise kann auf die Hardware zugegriffen werden (z.B.
| |
| * aus Shellscripten heraus), ohne dass spezielle Hilfsprogramme geschrieben werden müssen.
| |
| | |
| Die folgende Tabelle enthält eine Liste der wichtigsten Gerätedateien, samt Beschreibung:
| |
| | |
| {| class="wikitable sortable"
| |
| |-
| |
| ! | Gerätedatei
| |
| !colspan="2" | | Bedeutung
| |
| |-
| |
| | | <tt>'''sdasdbsdcsdd'''</tt>
| |
| | | erstezweitedrittevierte
| |
| | | SCSI/SATA-Festplatte
| |
| |-
| |
| | | <tt>'''sda1sda2sda3sda4'''</tt>
| |
| | | erstezweitedrittevierte
| |
| | | Festplattenpartition auf der ersten SCSI/SATA-Festplatte
| |
| |-
| |
| | | <tt>'''hda'''</tt>
| |
| | colspan="2" | wie s<tt>'''da'''</tt>, nur für IDE-Festplatten
| |
| |-
| |
| | | <tt>'''ttyS0ttyS1'''</tt>
| |
| | colspan="2" | Erste und zweite serielle Schnittstelle (COM1 und COM2 unter DOS)
| |
| |-
| |
| | | <tt>'''audiodspsndstatmidi00'''</tt>
| |
| | colspan="2" | Zugriff auf die Soundblasterkarte
| |
| |-
| |
| | | <tt>'''psaux'''</tt>
| |
| | colspan="2" | Zugriff auf die PS/2 Schnittstelle
| |
| |-
| |
| | | <tt>'''lp0lp1lp2'''</tt>
| |
| | colspan="2" | Zugriff auf die parallele Schnittstelle
| |
| |-
| |
| | | <tt>'''fd0'''</tt>
| |
| | colspan="2" | Zugriff auf das erste Diskettenlaufwerk
| |
| |-
| |
| |}
| |
| Dies ist selbstverständlich nur eine kleine Zusammenstellung.
| |
| * Eine vollständige Liste findet sich unter:
| |
| | |
| /usr/src/linux/Documentation/devices.txt
| |
| | |
| ====== Besondere Geräte ======
| |
| {| class="wikitable sortable"
| |
| |-
| |
| | | <tt>'''/dev/zero'''</tt>
| |
| | | liefert unendlich vielen Nullen
| |
| |-
| |
| | | <tt>'''/dev/null'''</tt>
| |
| | | schluckt alle Daten die es erhält
| |
| |-
| |
| | | '''/dev/random'''
| |
| | | liefert [http://de.wikipedia.org/wiki/Zufallszahlengenerator Zufallszahlen] von hoher Qualität
| |
| |-
| |
| | | '''/dev/urandom'''
| |
| | | liefert unendlich viele [http://de.wikipedia.org/wiki/Zufallszahlengenerator Zufallszahlen]
| |
| | |
| |-
| |
| |}
| |
| ======= /dev/null =======
| |
| '''/dev/null''' ([http://de.wikipedia.org/wiki/Englische_Sprache englisch] ''null'': dt. „nichts“) ist der Name einer speziellen [http://de.wikipedia.org/wiki/Gerätedatei#Virtuelle_Ger.C3.A4tedateien virtuellen Gerätedatei], des ''Nulldevice'', auf [http://de.wikipedia.org/wiki/Unix Unix] und Unix-ähnlichen [http://de.wikipedia.org/wiki/Betriebssystem Betriebssystemen], die jegliche Daten, die dorthin geschrieben werden, verwirft.
| |
| * Unter [http://de.wikipedia.org/wiki/CP/M CP/M] und seinen Abkömmlingen [http://de.wikipedia.org/wiki/PC-kompatibles_DOS DOS], [http://de.wikipedia.org/wiki/OS/2 OS/2] und [http://de.wikipedia.org/wiki/Microsoft_Windows Microsoft Windows] wird das Nulldevice als <tt>NUL:</tt> angesprochen.
| |
| * Unter [http://de.wikipedia.org/wiki/Disk_Operating_System DOS] und Nachfolgerbetriebssystemen existiert das Nulldevice in jedem Verzeichnis unter dem Dateinamen <tt>NUL</tt>.
| |
| * Die Datei <tt>/dev/null</tt> ist durch den [http://de.wikipedia.org/wiki/Portable_Operating_System_Interface POSIX]-Standard standardisiert.
| |
| | |
| ======= Verwendung =======
| |
| Eine häufige Verwendung ist z. B., in einer [http://de.wikipedia.org/wiki/Unix-Shell Shell]-Sitzung die Meldungen eines Programms von der [http://de.wikipedia.org/wiki/Stdout Standardausgabe] statt auf den Bildschirm nach <tt>/dev/null</tt> umzuleiten, wenn man an ihnen nicht interessiert ist; sie werden dann nicht angezeigt.
| |
| | |
| Das Gerät <tt>/dev/null</tt> kann auch als Ziel bei Dateisystemoperationen dienen.
| |
| | |
| Ein solcher Zweck tritt gelegentlich auf, wenn Shellskripte oder Programme unbedingt eine Dateiangabe erfordern, diese im vorliegenden Fall aber keinen Sinn ergibt oder unerwünscht ist.
| |
| | |
| Lesezugriffe liefern sofort ein Dateiende ([http://de.wikipedia.org/wiki/End_of_File End of File], „EOF“).
| |
| * Dabei verhält sich das Gerät wie eine gewöhnliche Datei, das öffnende Programm muss also keine besonderen Vorkehrungen treffen.
| |
| | |
| In der [http://de.wikipedia.org/wiki/Netzkultur Netzkultur] ist <tt>/dev/null</tt> ein umgangssprachlich verwendeter Begriff für eine Art gedankliches [http://de.wikipedia.org/wiki/Schwarzes_Loch Schwarzes Loch], meist um Desinteresse an der Aussage des Gesprächspartners zu bekunden.
| |
| | |
| ======= Beispiele ======= | |
| Wenn man nur die normale Ausgabe eines Programms sehen will, nicht aber die Fehlermeldungen und sonstigen Informationen, die das Programm in die [http://de.wikipedia.org/wiki/Standard-Datenströme#Standardfehlerausgabe_.28stderr.29 Standardfehlerausgabe] schreibt, kann man diese umleiten:
| |
| | |
| $ programm 2>/dev/null
| |
| | |
| Möchte man für Shell-Skripte nur den Rückgabewert eines Programms verwenden und somit sämtliche Ausgaben nach <tt>/dev/null</tt> umleiten, kann die folgende Syntax verwendet werden:
| |
| | |
| $ programm >/dev/null 2>&1
| |
| | |
| Mittels Shell-[http://de.wikipedia.org/wiki/Pipe_%28Informatik%29 Pipes] kann man selektiv uninteressante (Fehler-)Meldungen von Teilen der Pipeline ausblenden:
| |
| | |
| $ programm1 2>/dev/null | programm2 | ...
| |
| | |
| Ähnlich ist die Verwendung mittels [http://de.wikipedia.org/wiki/Symbolische_Verknüpfung symbolischer Verknüpfung], danach wird alles, was in die verlinkte Datei (<tt>~/.bash_history</tt>) geschrieben wird, nicht gespeichert, beispielsweise zum [http://de.wikipedia.org/wiki/Datenschutz Datenschutz]:
| |
| | |
| $ ln -sf /dev/null ~/.bash_history
| |
| | |
| Auch üblich ist die Verwendung für die Standardeingabe.
| |
| * Ein Beispiel dafür ist das Ausführen eines Kommandos im Hintergrund während einer [http://de.wikipedia.org/wiki/Secure_Shell SSH]-Sitzung.
| |
| * Dabei wird die Standardeingabe an <tt>/dev/null</tt> übergeben, womit das Programm im Hintergrund weiterläuft, auch wenn man sich aus der SSH-Sitzung ausloggt:
| |
| | |
| $ ssh example.com "programm </dev/null >/dev/null 2>&1 &"
| |
| | |
| Man kann auch einen Datenträger überprüfen, indem z. B. <tt>/dev/cdrom0</tt> nach <tt>/dev/null</tt> kopiert wird. | |
| * Wenn hierbei ein Fehler auftritt, ist der entsprechende Datenträger beschädigt oder nicht vorhanden.
| |
| | |
| $ dd if=/dev/cdrom of=/dev/null
| |
| | |
| ======= /dev/zero =======
| |
| <tt>'''/dev/zero'''</tt> ist eine spezielle [http://de.wikipedia.org/wiki/Virtuelle_Gerätedatei virtuellen Gerätedatei] auf [http://de.wikipedia.org/wiki/Unix Unix] und [http://de.wikipedia.org/wiki/Unixoides_System unixoiden Systemen], die bei jedem Lesezugriff [http://de.wikipedia.org/wiki/Nullzeichen Nullzeichen] zurückgeliefert.
| |
| * Im Gegensatz zu [http://de.wikipedia.org/wiki//dev/null /dev/null] ist <tt>/dev/zero</tt> nicht Bestandteil des [http://de.wikipedia.org/wiki/Portable_Operating_System_Interface POSIX]-Standard.
| |
| | |
| <tt>/dev/zero</tt> wurde mit [http://de.wikipedia.org/wiki/SunOS SunOS]-4.0 im Jahre 1987 gemeinsam mit dem neuen VM-Subsystem eingeführt.
| |
| | |
| ======= Details =======
| |
| Wenn auf <tt>/dev/zero</tt> geschrieben wird, verhält sich <tt>/dev/zero</tt> wie <tt>/dev/null</tt>.
| |
| | |
| Bei einem ''mmap'' auf <tt>/dev/zero</tt> werden anonyme genullte Seiten aus dem virtuellen [http://de.wikipedia.org/wiki/Speicherpool Speicherpool] des [http://de.wikipedia.org/wiki/Kernel_%28Betriebssystem%29 Kernels] zur Verfügung gestellt.
| |
| | |
| Viele Betriebssysteme verwenden diesen ''mmap''-Mechanismus, um Programmen und [http://de.wikipedia.org/wiki/Shared_Library Shared Libraries] den sogenannten ''nichtinitialisierten''-Datenbereich zur Verfügung zu stellen.
| |
| | |
| Viele Programme verwenden Datenbereiche, die durch einen ''mmap'' auf <tt>/dev/zero</tt> erzeugt wurden, als Basis für [http://de.wikipedia.org/wiki/Shared_Memory Shared Memory], das zur Kommunikation zwischen mehreren [http://de.wikipedia.org/wiki/Prozess_%28Informatik%29 Prozessen] verwendet wird.
| |
| | |
| ======= Beispiele =======
| |
| Das folgende [http://de.wikipedia.org/wiki/Unix-Kommando Unix-Kommando] erzeugt eine Datei namens ''file'', die 12 MB groß ist und nur das [http://de.wikipedia.org/wiki/Nullzeichen Nullzeichen] enthält:
| |
| | |
| [http://de.wikipedia.org/wiki/Dd_%28Unix%29 dd] if=/dev/zero of=file bs=1M count=12
| |
| | |
| ======= /dev/random =======
| |
| <tt>/dev/random</tt> ist eine zeichen-orientierte [http://de.wikipedia.org/wiki/Virtuelle_Gerätedatei virtuelle Gerätedatei], über die Programme auf einen systemweiten [http://de.wikipedia.org/wiki/Zufallszahlengenerator Zufallszahlengenerator] von hoher Qualität zugreifen können.
| |
| | |
| Da für [http://de.wikipedia.org/wiki/Rechnernetz netzwerk]-orientierte Systeme wie Unix [http://de.wikipedia.org/wiki/Kryptografie Kryptografie]-Dienste und damit [http://de.wikipedia.org/wiki/Zufallszahl Zufallszahlen] eine bedeutende Rolle spielen, kommt dieser Datei und dem dahinterstehenden Treiber eine wichtige Bedeutung zu.
| |
| | |
| Der Zufallsgenerator sammelt [http://de.wikipedia.org/w/index.php?title=Umgebungsrauschen&action=edit&redlink=1 Umgebungsrauschen] von [http://de.wikipedia.org/wiki/Gerätetreiber Gerätetreibern] und anderen Quellen in einem [http://de.wikipedia.org/wiki/Entropie_%28Informationstheorie%29 Entropiepool].
| |
| * Der Generator speichert auch eine Abschätzung über die Anzahl der [http://de.wikipedia.org/wiki/Bit Bit] im Entropiepool.
| |
| | |
| Aus diesem Pool werden die Zufallszahlen generiert.
| |
| * Beim Lesen gibt <tt>/dev/random</tt> nur solange Zufallszahlen zurück, bis die abgeschätzte Entropiemenge erschöpft ist.
| |
| | |
| Wenn der Entropiepool erschöpft ist, blockieren Lesezugriffe auf <tt>/dev/random</tt>, bis zusätzliches Umgebungsrauschen erhalten wurde. <tt>/dev/random</tt> sollte ausreichend sein für Anwendungszwecke, die auf eine sehr hohe Qualität der Zufälligkeit angewiesen sind, wie etwa [http://de.wikipedia.org/wiki/Kryptografie Kryptografie] (beispielsweise [http://de.wikipedia.org/wiki/One-Time-Pad One-Time-Pads] oder [http://de.wikipedia.org/wiki/Public_Key Schlüsselerzeugung]).
| |
| | |
| Aus Performancegründen wird in der Praxis oft nur der Seed eines Pseudo-Zufallszahlengenerators von <tt>/dev/random</tt> gelesen (z. B.
| |
| * in [http://de.wikipedia.org/wiki/OpenSSL OpenSSL], [http://de.wikipedia.org/wiki/Pretty_Good_Privacy PGP] und [http://de.wikipedia.org/wiki/GnuPG GnuPG]).
| |
| | |
| Der aktuelle Füllstand des Entropiepools lässt sich unter [http://de.wikipedia.org/wiki/Linux_%28Kernel%29 Linux] aus der Datei <tt>/proc/sys/kernel/random/entropy_avail</tt> ermitteln.
| |
| | |
| Eine Ausgabe der Datei liefert die verfügbare Entropie in bit, wobei das Maximum von 4096 bit einem vollständig gefüllten Entropiepool entspricht.
| |
| | |
| ======= /dev/urandom =======
| |
| Aus <tt>/dev/urandom</tt> (von engl.
| |
| * unlimited random(ness)) können wie aus <tt>/dev/random</tt> Zufallszahlen gelesen werden.
| |
| | |
| Im Gegensatz zu letzterem blockiert es jedoch nicht, wenn eine definierte Entropieschwelle unterschritten wird.
| |
| | |
| In diesem Fall ist es theoretisch möglich, dass die erzeugten [http://de.wikipedia.org/wiki/Pseudozufall Pseudozufallszahlen] im Nachhinein von einem Angreifer berechnet werden können.
| |
| * Im Zweifelsfall sollte bei hohen Anforderungen, z. B.
| |
| * bei One-Time-Pads, auf <tt>/dev/random</tt> zurückgegriffen werden.
| |
| | |
| ======= Verbesserung der Entropie ======= | |
| Über Software, wie z. B. <tt>timer_entropyd</tt>, <tt>haveged</tt>, <tt>randomsound</tt>, lässt sich die Entropie verbessern sowie bzw.
| |
| * der Entropie-Pool vergrößern, sodass mehr Zufallszahlen zur Verfügung stehen.
| |
| | |
| Mit der [http://de.wikipedia.org/wiki/GNU GNU]-Software <tt>rng-tools</tt> lassen sich unter Linux und ähnlichen Betriebssystemen [http://de.wikipedia.org/wiki/Zufallszahlengenerator#Physikalischer_Zufallszahlengenerator physikalische Zufallszahlengeneratoren] einbinden.
| |
| | |
| ===== Zusammenfassung: Gerätedateien =====
| |
| * Spezialdateien (special files)
| |
| * Geräte werden als Spezialdatei eingetragen
| |
| * Zugriff auf Gerät Zugriff auf eine Datei
| |
| * Schutzmechanismus wie für normale Dateien
| |
| * Blockorientierte und zeichenorientierte Geräte
| |
| | |
| ====== Named Pipes estellen (mkfifo) ====== | |
| mkfifo erstellt named pipes (FIFOs) mit dem übergebenen Namen.
| |
| | |
| '''mkfifo '''[''OPTION'']... ''NAME''...
| |
| | |
| ======= Optionen =======
| |
| -'''m''', --'''mode'''<nowiki>=</nowiki>''MODE Setzt Zugriffsrechte mit Bitmaske (MODE)''
| |
| | |
| -'''Z''', --'''context'''<nowiki>=</nowiki>''CTX Setzt den ''SELinux security context für jeden NAME auf CTX
| |
| | |
| ====== Gerätedateien erzeugen (mknod) ======
| |
| <tt>'''mknod'''</tt> erzeugt eine Spezialdatei
| |
| | |
| '''mknod''' ''[-m Modus] [-mode=Modus] Name {bcu} Major Minor''
| |
| '''mknod''' ''[-m Modus] [-mode=Modus] Pfad p''
| |
| | |
| <tt>'''mknod'''</tt> erzeugt ein FIFO, eine Gerätedatei für ein zeichenorientiertes Gerät (character device) oder für ein blockorientiertes Gerät (block-device) mit dem angegebenen ''Namen''.
| |
| | |
| Die Gerätedateien werden über die Major Device Nummern (Hauptgerätenummern) mit den entsprechenden Gerätetreibern im Kernel verbunden.
| |
| | |
| Mehrere Geräte der gleichen Art werden vom Gerätetreiber durch die Minor Device Nummern (Untergerätenummern) unterschieden.
| |
| | |
| Eine vollständige Liste aller Gerätenummern finden Sie bei den Kernelsourcen in der Datei <tt>./src/linux/Documentation/devices.txt</tt>.
| |
| * Die verbindliche Liste aller registrierten Hauptgerätenummern befindet sich in der Includedatei <tt><linux/major.h></tt>.
| |
| | |
| Die Zugriffsrechte auf die Datei werden aus der Bitdifferenz von 0666 und der aktuellen ''umask'' des aufrufenden Prozesses gebildet.
| |
| | |
| Der erste Buchstabe nach dem ''Namen'' gibt den Typ der Datei an:
| |
| | |
| {| class="wikitable sortable"
| |
| |-
| |
| | | <tt>'''p '''</tt>
| |
| | | (pipe) erzeugt eine FIFO Spezialdatei (wie [../../../../ebooks/computer/betriebssysteme/linux/allgemein/unsortiert/linux_anwender_handbuch/linux_anwenderhandbuch_7-0/node79.html#mkfifo mkfifo])
| |
| |-
| |
| | | <tt>'''b '''</tt>
| |
| | | (block) erzeugt eine Gerätedatei für ein (gepuffertes) blockorientiertes Gerät
| |
| |-
| |
| | | <tt>'''c '''</tt>
| |
| | | (character) erzeugt eine ungepufferte Gerätedatei für ein zeichenorientiertes Gerät
| |
| |-
| |
| | | <tt>'''u '''</tt>
| |
| | | (unbuffered) das Gleiche wie ''c''
| |
| | |
| |-
| |
| |}
| |
| ======= Optionen =======
| |
| {| class="wikitable sortable"
| |
| |-
| |
| | | <tt>'''-m ''Modus'' '''</tt>
| |
| | | setzt die Rechte der Dateien auf ''Modus'' wie bei [../../../../ebooks/computer/betriebssysteme/linux/allgemein/unsortiert/linux_anwender_handbuch/linux_anwenderhandbuch_7-0/node29.html#chmod chmod]
| |
| | |
| |-
| |
| |}
| |
| | |
| ====== Verwaltung der Gerätedateien mit udev ======
| |
| udev ersetzt seit dem Kernel 2.6 das früher genutzte [http://de.wikipedia.org/wiki/Devfs devfs]-Dateisystem, dessen Aufgaben es damit übernimmt.
| |
| | |
| Genauso wie devfs verwaltet udev das /dev-Verzeichnis, welches die speziellen [http://de.wikipedia.org/wiki/Gerätedatei Gerätedateien] enthält, um von Programmen aus auf die vom System zur Verfügung gestellten Geräte zuzugreifen.
| |
| | |
| Mit der Einführung von udev waren sowohl udev als auch devfs im Kernel enthalten.
| |
| * Seit Ende Juni 2006 ist nur noch udev enthalten, devfs wurde vollständig entfernt.
| |
| | |
| ======= Arbeitsweise =======
| |
| '''udev''' überwacht und wertet [http://de.wikipedia.org/wiki/Hot-Plug hotplug]-Ereignisse aus.
| |
| | |
| Finden sich dort Informationen über ein neu angeschlossenes Gerät, werden zusätzliche zu diesem Gerät vorhandene Informationen dem [http://de.wikipedia.org/w/index.php?title=Sysfs&action=edit&redlink=1 sysfs]-Dateisystem entnommen und eine neue Gerätedatei im /dev-Verzeichnis erzeugt.
| |
| | |
| Dabei ist der für die spezielle Datei verwendete Name und die [http://de.wikipedia.org/wiki/Dateiberechtigung Zugriffsberechtigung] frei durch Regeln konfigurierbar.
| |
| | |
| ======= Konfiguration ======= | |
| Installiert man udev, so findet man die Standardregeln unter <tt>/etc/udev/rules.d/50-udev.rules</tt>.
| |
| | |
| Um die eigenen Regeln anwenden zu können, sollte man diese Datei nicht verändern, sondern eine neuere mit kleinerer Nummer erzeugen, zum Beispiel <tt>/etc/udev/rules.d/10-udev.rules</tt>.
| |
| | |
| Somit ist gewährleistet, dass diese Regeln zuerst erkannt werden.
| |
| * Wurde eine Regel gefunden, so wird diese, und auch jede passende folgende, angewandt.
| |
| | |
| ======= Vorteile =======
| |
| Im Unterschied zu devfs, welches im Linux-Kernel selbst integriert ist, arbeitet udev im [http://de.wikipedia.org/wiki/Userspace userspace], wird also als normales Programm gestartet.
| |
| | |
| Die Verwaltung und Namensgebung der angeschlossenen Geräte liegt dadurch nicht mehr beim Kernel und ist somit einfacher konfigurierbar.
| |
| | |
| Weitere Vorteile:* die Zuordnung von Geräten ist eindeutig – es entstehen keine Probleme mehr, wenn man z. B.
| |
| * die Reihenfolge von zwei angeschlossenen USB-Druckern ändert
| |
| * die Benennung der Geräte kann durch den Nutzer gewählt werden; sie bleibt beständig
| |
| * für die Ermittlung der Gerätenamen können beliebige Verfahren zur Anwendung kommen, neben statischen Listen und Regeln z. B.
| |
| * auch die Abfrage einer externen Datenbank, wodurch sich beispielsweise Geräte innerhalb eines Unternehmensnetzwerkes - durch ihre Seriennummer identifiziert - einheitlich verhalten
| |
| * die Benennung ist [http://de.wikipedia.org/wiki/Linux_Standard_Base Linux-Standard-Base]-konform
| |
| | |
| ======= Nachteile =======
| |
| Ein beabsichtigter Nachteil von udev besteht darin, dass es im Gegensatz zu devfs beim Aufruf eines /dev-Knotens nicht automatisch die entsprechenden [http://de.wikipedia.org/wiki/Gerätetreiber Gerätetreiber] lädt.
| |
|
| |
|
| Funktioniert beim Einstecken eines Gerätes HotPlug nicht richtig und laden die benötigten Treiber nicht, können diese nicht mit udev nachgeladen werden.
| | [[Kategorie:Linux/Datei/Name]] |
|
| |
|
| [[Kategorie:Linux/Datei/Eigenschaften]]
| |
| </noinclude> | | </noinclude> |