Diskussion:Linux/Datei/Typ: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „== Dateityp == ===== Dateityp anzeigen (file) ===== file ===== 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) ===== Zusammenfassung: Gerätedateien ===== * Spezialdateien (special files) * Geräte werden als Spezialdatei eingetragen * Zugriff auf Gerät Zugriff auf eine D…“ |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
== Dateityp == | == Dateityp == | ||
=== Dateityp anzeigen (file) === | |||
[[file]] | [[file]] | ||
=== Normale Dateien === | |||
* Normale Dateien (normal files) | * Normale Dateien (normal files) | ||
* Dateien im üblichen Sinn: Text- oder Binärdateien | * Dateien im üblichen Sinn: Text- oder Binärdateien | ||
Zeile 9: | Zeile 9: | ||
* Dateien sind Bytefolgen (Strukturierung nur durch das Programm) | * Dateien sind Bytefolgen (Strukturierung nur durch das Programm) | ||
=== Zusammenfassung: Gerätedateien === | |||
* Spezialdateien (special files) | * Spezialdateien (special files) | ||
* Geräte werden als Spezialdatei eingetragen | * Geräte werden als Spezialdatei eingetragen | ||
Zeile 16: | Zeile 16: | ||
* Blockorientierte und zeichenorientierte Geräte | * Blockorientierte und zeichenorientierte Geräte | ||
=== Named Pipes estellen (mkfifo) === | |||
mkfifo erstellt named pipes (FIFOs) mit dem übergebenen Namen. | mkfifo erstellt named pipes (FIFOs) mit dem übergebenen Namen. | ||
'''mkfifo '''[''OPTION'']... ''NAME''... | '''mkfifo '''[''OPTION'']... ''NAME''... | ||
=== Optionen === | |||
-'''m''', --'''mode'''<nowiki>=</nowiki>''MODE Setzt Zugriffsrechte mit Bitmaske (MODE)'' | -'''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 | -'''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 | <tt>'''mknod'''</tt> erzeugt eine Spezialdatei | ||
Zeile 61: | Zeile 61: | ||
|- | |- | ||
|} | |} | ||
=== Optionen === | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
Zeile 70: | Zeile 70: | ||
|} | |} | ||
=== 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. | udev ersetzt seit dem Kernel 2.6 das früher genutzte [http://de.wikipedia.org/wiki/Devfs devfs]-Dateisystem, dessen Aufgaben es damit übernimmt. | ||
Zeile 78: | Zeile 78: | ||
* Seit Ende Juni 2006 ist nur noch udev enthalten, devfs wurde vollständig entfernt. | * 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. | '''udev''' überwacht und wertet [http://de.wikipedia.org/wiki/Hot-Plug hotplug]-Ereignisse aus. | ||
Zeile 85: | Zeile 85: | ||
Dabei ist der für die spezielle Datei verwendete Name und die [http://de.wikipedia.org/wiki/Dateiberechtigung Zugriffsberechtigung] frei durch Regeln konfigurierbar. | 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>. | Installiert man udev, so findet man die Standardregeln unter <tt>/etc/udev/rules.d/50-udev.rules</tt>. | ||
Zeile 93: | Zeile 93: | ||
* Wurde eine Regel gefunden, so wird diese, und auch jede passende folgende, angewandt. | * 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. | 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. | ||
Zeile 105: | Zeile 105: | ||
* die Benennung ist [http://de.wikipedia.org/wiki/Linux_Standard_Base Linux-Standard-Base]-konform | * 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. | 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. | ||
Version vom 9. März 2024, 12:13 Uhr
Dateityp
Dateityp anzeigen (file)
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)
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=MODE Setzt Zugriffsrechte mit Bitmaske (MODE)
-Z, --context=CTX Setzt den SELinux security context für jeden NAME auf CTX
Gerätedateien erzeugen (mknod)
mknod erzeugt eine Spezialdatei
mknod [-m Modus] [-mode=Modus] Name {bcu} Major Minor
mknod [-m Modus] [-mode=Modus] Pfad p
mknod 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 ./src/linux/Documentation/devices.txt.
- Die verbindliche Liste aller registrierten Hauptgerätenummern befindet sich in der Includedatei <linux/major.h>.
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:
p | (pipe) erzeugt eine FIFO Spezialdatei (wie [../../../../ebooks/computer/betriebssysteme/linux/allgemein/unsortiert/linux_anwender_handbuch/linux_anwenderhandbuch_7-0/node79.html#mkfifo mkfifo]) |
b | (block) erzeugt eine Gerätedatei für ein (gepuffertes) blockorientiertes Gerät |
c | (character) erzeugt eine ungepufferte Gerätedatei für ein zeichenorientiertes Gerät |
u | (unbuffered) das Gleiche wie c |
Optionen
-m Modus | 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 devfs-Dateisystem, dessen Aufgaben es damit übernimmt.
Genauso wie devfs verwaltet udev das /dev-Verzeichnis, welches die speziellen 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 hotplug-Ereignisse aus.
Finden sich dort Informationen über ein neu angeschlossenes Gerät, werden zusätzliche zu diesem Gerät vorhandene Informationen dem sysfs-Dateisystem entnommen und eine neue Gerätedatei im /dev-Verzeichnis erzeugt.
Dabei ist der für die spezielle Datei verwendete Name und die Zugriffsberechtigung frei durch Regeln konfigurierbar.
Konfiguration
Installiert man udev, so findet man die Standardregeln unter /etc/udev/rules.d/50-udev.rules.
Um die eigenen Regeln anwenden zu können, sollte man diese Datei nicht verändern, sondern eine neuere mit kleinerer Nummer erzeugen, zum Beispiel /etc/udev/rules.d/10-udev.rules.
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 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 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 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.