为什么我的 DVD 和蓝光驱动器被称为 /dev/srX?sr 代表什么?

Oli*_*Oli 7 devices

当我第一次开始使用 Ubuntu 时,我认为我的 CD 驱动器是通过/dev/cdrom0and/dev/cdrom1等映射的,但是今天看看,你可以看到它们现在通过sr前缀来实现:

$ ll /dev/{cdrom,sr*}
lrwxrwxrwx  1 root root      3 Feb 10 09:15 /dev/cdrom -> sr0
brw-rw----+ 1 root cdrom 11, 0 Feb 10 09:15 /dev/sr0
brw-rw----+ 1 root cdrom 11, 1 Mar 27 10:30 /dev/sr1
Run Code Online (Sandbox Code Playgroud)

我只是好奇这代表什么。TLDP 在这里不是很有帮助;它仍然sd列为“SCSI 驱动器”,我认为现在它更常表示“串行驱动器”。

“sr”是什么意思?为什么/dev/cdrom还存在?

kos*_*kos 9

Linux的小号CSI d ISK支撑模块= SD _mod

Linux S CSI T ape 支持模块 = st

Linux SCSI CDrom 支持模块 = sr_mod

Linux S CSI g通用支持模块 = sg

所以,很可能,这代表S CSI CD r om

来源


我注意到这并没有完全解决这个问题。

如您所见,/dev/cdrom只是指向 的符号链接/dev/sr0,它是实际设备。

字符设备的命名取决于初始化它的模块:SCSICD-ROM 由sr_mod模块处理,它们以模块本身命名 ( srX)。

如果您的 CD-ROM 驱动器碰巧是一个IDE驱动器,则实际设备的名称应该是/dev/hdX.

所以,因为有通过其CD-ROM驱动器可以连接到系统多个接口,/dev/cdrom用于总是指向第一个CD-ROM设备(SCSIIDE或其他),最有可能给驱动器的任何一个独特的通用接口需要在系统中使用。

CDROM 设备名称不是由统一的 CDROM 层维护,而是由每个单独的协议栈维护。在 SCSI 子系统的情况下,设备名称由 sr 驱动程序维护,而 IDE 子系统通过其中央“ide”驱动程序(即不是由 ide-cd 驱动程序)维护设备名称。USB 和 IEEE1394 cd 设备名称由它们各自的堆栈维护。这可以部分解释为什么 /dev/cdrom 通常是指向适当子系统设备名称的符号链接。

来源


Jos*_*Jos 1

读到这里,这封信r似乎源自 ROM。但没有给出进一步的来源。