n0p*_*0pe 32 filesystems devices
(不是理解 /dev 及其子目录和文件的副本)
我正在浏览我的文件系统,这是我第一次花一点时间来分析我的/dev目录。我对其中的设备文件数量感到惊讶,并且无法理解所有这些:
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
Run Code Online (Sandbox Code Playgroud)
我知道sd*的是我的磁盘和文件系统,但什么是loopx,fd0uxxxx,sgx,vcsxxx和所有其他的单个文件。它们中的大多数是根据ls.
我知道完全回答这个问题需要大量信息,所以除非有人可以提供一个链接,其中包含不同设备文件dev及其用途的详细信息,否则我建议我们做一个 CW 答案。
Gil*_*il' 50
其中一些有手册页(在第 4 节中;省略最后一个数字,在少数情况下,例如sda最后一个字母)。
要获得更明确但通常不太容易阅读的答案,请查看内核文档。首先判断设备是块设备还是字符设备,以及它的主次号。例如
$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Jul 12 15:54 /dev/sda
Run Code Online (Sandbox Code Playgroud)
所以sda是块设备(b)与主要:次要= 8:0。现在查一下devices.txt:8 块是 SCSI 磁盘设备,这是当今大多数磁盘(大多数 IDE 和 SATA 磁盘也是通过 SCSI 接口看到的,尽管这取决于内核编译选项)。块设备 8:1 ( /dev/sda1) 是 的第一个分区/dev/sda。
可能有一些奇怪的设备没有记录在案。您可以查看您的系统,例如/sys/dev/block/8:0:这是一个指向目录下的符号链接,该目录/sys提供有关设备的各种信息。您可以点击更多链接,特别是(在这种情况下)将/sys/dev/block/8:0/device/driver您带到与驱动程序对应的目录。另一个信息来源是/proc/devices,它指示哪个驱动程序声明每个主要设备号。
大多数 Linux 系统使用udev/dev根据可用的驱动程序和硬件进行填充。您可以浏览规则以创建设备文件,通常位于/lib/udev/rules.d和/etc/udev/rules.d(确切位置取决于分发)。
一些文件不是设备。lsof /dev/NAME(以 root 身份)会告诉您什么进程正在使用它们,从而提示您它们的用途。对于目录,查看其中的文件。
此答案特定于 Linux,但其他 unice 遵循相同的原则。检查手册页(大多数变体在第 4 节,但有少数使用第 7 节)或其他系统或内核文档。相关信息是块/字符位和主要:次要编号。