(Kein Duplikat von Understanding / dev und seinen Unterverzeichnissen und Dateien )
Ich habe mein Dateisystem durchsucht und zum ersten Mal eine Sekunde gebraucht, um mein /dev
Verzeichnis zu analysieren . Ich war von der Menge der darin enthaltenen Gerätedateien überrascht und konnte keinen Sinn daraus ziehen:
max@linux-vwzy:/dev> ls
adsp disk fd0u1760 initctl mem root sg0 tty tty21 tty35 tty49 tty62 vboxdrv vcsa2
audio dri fd0u1840 input mixer rtc sg1 tty0 tty22 tty36 tty5 tty63 vboxnetctl vcsa3
autofs dsp fd0u1920 kmem mixer1 rtc0 sg2 tty1 tty23 tty37 tty50 tty7 vboxusb vcsa4
block dvd fd0u360 kmsg net scd0 sg3 tty10 tty24 tty38 tty51 tty8 vcs vcsa5
bootsplash dvdrw fd0u720 log network_latency sda sg4 tty11 tty25 tty39 tty52 tty9 vcs1 vcsa6
bsg fb0 fd0u800 loop0 network_throughput sda1 sg5 tty12 tty26 tty4 tty53 ttyS0 vcs10 vcsa7
btrfs-control fd fd0u820 loop1 null sda2 sg6 tty13 tty27 tty40 tty54 ttyS1 vcs2 vga_arbiter
bus fd0 fd0u830 loop2 nvram sda3 sg7 tty14 tty28 tty41 tty55 ttyS2 vcs3 xconsole
cdrom fd0u1040 full loop3 oldmem sdb shm tty15 tty29 tty42 tty56 ttyS3 vcs4 zero
cdrw fd0u1120 fuse loop4 port sdc snapshot tty16 tty3 tty43 tty57 ttyS4 vcs5
char fd0u1440 fw0 loop5 ppp sdc1 snd tty17 tty30 tty44 tty58 ttyS5 vcs6
console fd0u1600 hidraw0 loop6 psaux sdd sr0 tty18 tty31 tty45 tty59 ttyS6 vcs7
core fd0u1680 hidraw1 loop7 ptmx sde stderr tty19 tty32 tty46 tty6 ttyS7 vcsa
cpu fd0u1722 hidraw2 mapper pts sdf stdin tty2 tty33 tty47 tty60 uinput vcsa1
cpu_dma_latency fd0u1743 hpet mcelog random sdg stdout tty20 tty34 tty48 tty61 urandom vcsa10
Ich weiß , dass die sd*
‚s sind meine Platten und Dateisysteme, aber was ist loopx
, fd0uxxxx
, sgx
, vcsxxx
und alle andere einzelne Dateien. Die meisten von ihnen sind Gerätedateien nach ls
.
Ich verstehe, dass eine vollständige Beantwortung dieser Frage eine Menge Informationen erfordern würde. Wenn also nicht jemand einen Link mit einem umfassenden Überblick über die verschiedenen Gerätedateien und deren Verwendungszweck bereitstellen kann dev
, schlagen wir eine CW-Antwort vor.
quelle
/dev
ich wissen sollte? (Vielleicht haben Sie für alle Antworten, vielleicht auch nicht ...)Antworten:
Einige von ihnen haben Manpages (in Abschnitt 4 ; lassen Sie die letzte (n) Ziffer (n) und in einigen Fällen
sda
den letzten Buchstaben weg ).Eine genauere, aber normalerweise weniger leicht zu lesende Antwort finden Sie in der Kernel-Dokumentation . Bestimmen Sie zunächst, ob es sich bei dem Gerät um ein Block- oder ein Zeichengerät handelt , sowie dessen Haupt- und Nebennummer. Beispielsweise
so
sda
ist ein block device (b
) mit major: minor = 8: 0. Sehen Sie jetzt nachdevices.txt
: 8 Block sind SCSI-Plattengeräte, die heutzutage die meisten Platten sind (die meisten IDE- und SATA-Platten werden auch über die SCSI-Schnittstelle angezeigt, obwohl dies von den Kernel-Kompilierungsoptionen abhängt). Block Device 8: 1 (/dev/sda1
) ist die erste Partition von/dev/sda
.Möglicherweise gibt es einige ungerade Geräte, die nicht dokumentiert sind. Sie können auf Ihrem System beispielsweise nachsehen, ob
/sys/dev/block/8:0
dies ein symbolischer Link zu einem Verzeichnis ist, in/sys
dem verschiedene Informationen zum Gerät verfügbar sind . Sie können weiteren Links folgen und werden (in diesem Fall)/sys/dev/block/8:0/device/driver
in ein Verzeichnis geleitet, das dem Treiber entspricht. Eine weitere Informationsquelle ist/proc/devices
, die angibt, welcher Treiber die wichtigsten Gerätenummern angibt.Die meisten Linux-Systeme verwenden udev , um
/dev
basierend auf den verfügbaren Treibern und der verfügbaren Hardware Daten zu erfassen. Sie können die Regeln durchsuchen, um Gerätedateien zu erstellen, normalerweise in/lib/udev/rules.d
und/etc/udev/rules.d
(die genauen Speicherorte hängen von der Verteilung ab).Einige der Dateien sind keine Geräte.
lsof /dev/NAME
(als root) teilt Ihnen mit, für welchen Prozess sie verwendet werden, und gibt Ihnen somit einen Hinweis darauf, wofür sie bestimmt sind. Schauen Sie sich für die Verzeichnisse die Dateien in ihnen an.Diese Antwort ist spezifisch für Linux, aber andere Unices folgen den gleichen Grundsätzen. Überprüfen Sie die Manpages (in Abschnitt 4 bei den meisten Varianten, aber einige verwenden Abschnitt 7) oder eine andere System- oder Kerneldokumentation. Die relevante Information ist das Block- / Zeichenbit und die Major: Minor-Zahlen.
quelle