當我第一次開始使用 Ubuntu 時,我思考我的 CD 驅動器是透過/dev/cdrom0
和/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
我只是好奇這代表什麼。TLDP 在這裡沒有太大幫助;它仍然列為sd
“SCSI 驅動器”,我認為現在它更常用的意思是“串行驅動器”。
“sr”代表什麼?為什麼/dev/cdrom
還存在?
答案1
LinuxSCSIDISK支援模組=標準差_mod
LinuxSCSI時間猿支援模組=英石
Linux SCSI CDrom 支援模組 = sr_mod
LinuxSCSIG通用支援模組 =新加坡
所以,最有可能的是,這代表SCSI光碟r奧姆
我注意到這並沒有完全解決這個問題。
如您所見,/dev/cdrom
只是到/dev/sr0
實際設備的符號連結。
字元裝置的命名取決於初始化它的模組:SCSI
CD-ROM 由模組處理sr_mod
,並且它們以模組本身命名 ( srX
)。
如果您的 CD-ROM 驅動器恰好是一個IDE
驅動器,則實際設備的名稱將是/dev/hdX
。
因此,由於可以透過多個介面將 CD-ROM 磁碟機連接到系統,因此/dev/cdrom
用於始終指向第一個 CD-ROM 裝置(SCSI
或IDE
其他),很可能為磁碟機提供唯一的通用介面需要在系統中使用。
CDROM 設備名稱不是由統一的 CDROM 層維護的,而是由每個單獨的協定堆疊維護的。對於SCSI 子系統,裝置名稱由sr 驅動程式維護,而IDE 子系統使用其中央「ide」驅動程式(即不是由ide-cd 驅動程式)來維護設備名稱。 USB 和 IEEE1394 CD 設備名稱由各自的堆疊維護。這可以部分解釋為什麼 /dev/cdrom 通常是指向對應子系統裝置名稱的符號連結。
答案2
閱讀這,該字母r
似乎源自於 ROM。但沒有給出進一步的來源。