在linux下,一切皆檔案,裝置也不例外,為了管理這些裝置,系統為它們各自都編了號,而每個裝置號又分為主裝置號和次裝置號。主裝置號用來區分不同型別的裝置,而次裝置號用來區分同一型別內的多個裝置(及其裝置分割槽)。
乙個linux系統,當前所有註冊裝置的主裝置號可以通過/proc介面檢視:
[root@localhost lenky]# cat /proc/devices
character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttys
5 /dev/tty
5 /dev/console
5 /dev/ptmx
7 vcs
10 misc
13 input
14 sound
21 sg
29 fb
99 ppdev
116 alsa
128 ptm
136 pts
162 raw
180 usb
189 usb_device
202 cpu/msr
203 cpu/cpuid
251 hidraw
252 usbmon
253 bsg
254 rtc
block devices:
1 ramdisk
2 fd
259 blkext
7 loop
8 sd
9 md
11 sr
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
254 mdp
[root@localhost lenky]#
[root@localhost lenky]# ls -rl /dev/* | grep " 8,"
brw-rw----. 1 root disk 8, 0 jan 12 06:24 /dev/sda
brw-rw----. 1 root disk 8, 1 jan 12 06:24 /dev/sda1
brw-rw----. 1 root disk 8, 2 jan 12 06:24 /dev/sda2
brw-rw----. 1 root disk 8, 16 jan 12 06:25 /dev/sdb
brw-rw----. 1 root disk 8, 17 jan 12 06:25 /dev/sdb1
brw-rw----. 1 root disk 8, 32 jan 12 06:29 /dev/sdc
brw-rw----. 1 root disk 8, 33 jan 12 06:29 /dev/sdc1
brw-rw----. 1 root disk 8, 34 jan 12 06:29 /dev/sdc2
brw-rw----. 1 root disk 8, 35 jan 12 06:29 /dev/sdc3
[root@localhost lenky]#
上面的0,1,2,16,17等都是次裝置號,用於區分標記各個sd硬碟或分割槽。檢視系統所有的塊裝置:
[root@localhost lenky]# grep ^ /sys/class/block/*/dev
/sys/class/block/dm-0/dev:253:0
/sys/class/block/dm-1/dev:253:1
/sys/class/block/dm-2/dev:253:2
/sys/class/block/fd0/dev:2:0
/sys/class/block/loop0/dev:7:0
/sys/class/block/loop1/dev:7:1
/sys/class/block/loop2/dev:7:2
/sys/class/block/loop3/dev:7:3
/sys/class/block/loop4/dev:7:4
/sys/class/block/loop5/dev:7:5
/sys/class/block/loop6/dev:7:6
/sys/class/block/loop7/dev:7:7
/sys/class/block/ram0/dev:1:0
/sys/class/block/ram10/dev:1:10
/sys/class/block/ram11/dev:1:11
/sys/class/block/ram12/dev:1:12
/sys/class/block/ram13/dev:1:13
/sys/class/block/ram14/dev:1:14
/sys/class/block/ram15/dev:1:15
/sys/class/block/ram1/dev:1:1
/sys/class/block/ram2/dev:1:2
/sys/class/block/ram3/dev:1:3
/sys/class/block/ram4/dev:1:4
/sys/class/block/ram5/dev:1:5
/sys/class/block/ram6/dev:1:6
/sys/class/block/ram7/dev:1:7
/sys/class/block/ram8/dev:1:8
/sys/class/block/ram9/dev:1:9
/sys/class/block/sda1/dev:8:1
/sys/class/block/sda2/dev:8:2
/sys/class/block/sda/dev:8:0
/sys/class/block/sdb1/dev:8:17
/sys/class/block/sdb/dev:8:16
/sys/class/block/sdc1/dev:8:33
/sys/class/block/sdc2/dev:8:34
/sys/class/block/sdc3/dev:8:35
/sys/class/block/sdc/dev:8:32
/sys/class/block/sr0/dev:11:0
[root@localhost lenky]#
關於每個主裝置號:次裝置號對應裝置的功能在linux幫助文件裡可以找到:
我系統使用的dm磁碟如下:
[root@localhost lenky]# ls -l /dev/dm-*
brw-rw----. 1 root disk 253, 0 jan 12 06:24 /dev/dm-0
brw-rw----. 1 root disk 253, 1 jan 12 06:24 /dev/dm-1
brw-rw----. 1 root disk 253, 2 jan 12 06:24 /dev/dm-2
[root@localhost lenky]#
附加筆記:
[root@localhost lenky]# ls -rl /dev/* | grep " 8,"
brw-rw----. 1 root disk 8, 0 jan 12 06:24 /dev/sda
brw-rw----. 1 root disk 8, 1 jan 12 06:24 /dev/sda1
brw-rw----. 1 root disk 8, 2 jan 12 06:24 /dev/sda2
一般說的各個分割槽相加等於硬碟,有個隱含說明就是硬碟內各個分割槽的硬碟儲存空間容量相加等於硬碟的硬碟儲存空間容量。
乙個硬碟有乙個描述硬碟的資訊,而乙個分割槽有一描述分割槽的資訊,將硬碟內各個分割槽的描述分割槽的資訊拼接在一起也得不到關於硬碟的資訊,所以給硬碟配上乙個次裝置號是有必要不多餘的。
[root@localhost lenky]# ls -rl /dev/* | grep " 8,"
brw-rw----. 1 root disk 8, 0 jan 12 06:24 /dev/sda
brw-rw----. 1 root disk 8, 1 jan 12 06:24 /dev/sda1
brw-rw----. 1 root disk 8, 2 jan 12 06:24 /dev/sda2
brw-rw----. 1 root disk 8, 16 jan 12 06:25 /dev/sdb
brw-rw----. 1 root disk 8, 17 jan 12 06:25 /dev/sdb1
brw-rw----. 1 root disk 8, 32 jan 12 06:29 /dev/sdc
brw-rw----. 1 root disk 8, 33 jan 12 06:29 /dev/sdc1
brw-rw----. 1 root disk 8, 34 jan 12 06:29 /dev/sdc2
brw-rw----. 1 root disk 8, 35 jan 12 06:29 /dev/sdc3
我們看到/dev/sd*裝置名的裝置型別(即指的是ide硬碟),這裡有三個不同的ide硬碟,其主裝置號以及其分割槽的主裝置號都是8。 裝置與驅動的關係以及裝置號 裝置檔案
linux裝置分類 linux下的裝置通常分為三類,字元裝置,塊裝置和網路裝置。字元裝置 乙個字元裝置是一種位元組流裝置,對裝置的訪問只能按順序按位元組的訪問而不能隨機訪問,字元裝置沒有請求緩衝區,所有的訪問請求都是按順序執行的。linux下的大多裝置都是字元裝置。應用程式是通過字元裝置節點來訪問字...
linux中的裝置名稱和裝置號
看趙炯博士的 linux 0.11 源 注釋 已經兩三周了,從今天起開始將一些個人總結和感悟分小標題寫出來,聊作記憶以供後來檢視。在linux0.11原始碼的 linux boot bootsect.s中,有乙個標號定義root dev root dev 0x000 same type of flo...
字元裝置驅動 裝置號 裝置檔案
主裝置號用來標識與裝置檔案相連的驅動程式.用來反映裝置型別.次裝置號被驅動程式用來辨別操作的是哪乙個裝置.用來區分同型別的裝置.通過的是主裝置號.字元裝置檔案 本身沒有太多的內容,通過 字元裝置檔案 能找到 字元裝置驅動程式 字元裝置檔案 能將 應用程式 的需求傳遞給 字元裝置驅動程式.核心中如何描...