我正在阅读“
Linux设备驱动程序,第3版”,并发现了一些我无法理解的东西.
@H_403_2@在第3.2章中,作者说:
@H_403_2@Traditionally,the major number identifies the driver associated with the device.@H_403_2@然后我尝试了“ls -l / dev”来看一看,我发现有些不寻常:
The minor number is used by the kernel to determine exactly which device is being referred to.
brw-rw---- 1 root disk 1,1 2011-08-23 23:52 ram1 brw-rw---- 1 root disk 1,2 2011-08-23 23:52 ram2 brw-rw---- 1 root disk 1,3 2011-08-23 23:52 ram3 brw-rw---- 1 root disk 1,4 2011-08-23 23:52 ram4 brw-rw---- 1 root disk 1,5 2011-08-23 23:52 ram5 ... crw-r----- 1 root kmem 1,1 2011-08-23 23:52 mem crw-r----- 1 root kmem 1,4 2011-08-23 23:52 port crw-rw-rw- 1 root root 1,3 2011-08-23 23:52 null crw-rw-rw- 1 root root 1,5 2011-08-23 23:52 zero@H_403_2@这些设备(ram1-ram5)都有一个克隆,具有相同的主要次要,但名称和类型不同.我认为作者说“主要数字表示设备类,次要数字表示设备索引.因此Major-Minor标识了一个独特的设备.” @H_403_2@现在我很困惑.为什么两个设备可以共享同一个主要未成年人?设备号到底是什么? @H_403_2@如果我错了,请纠正我..提前谢谢.
解决方法
mem,port,null和zero是字符设备(由列表开头的c证明). ramN设备是块设备(因此b).块设备的主要/次要编号与字符设备无关,反之亦然.