- 论坛徽章:
- 0
|
在 Solaris OS 中,主设备编号在您安装驱动程序时被选定,这样就不会与其他主设备编号冲突。内核使用主设备编号将 I/O 请求与正确地驱动程序代码关联起来。然后内核使用这种关联,在用户读写设备文件时,决定执行那个驱动程序。所有设备和它们的主设备编号都罗列在 /etc/name_to_major 文件中。
% grep 86 /etc/name_to_major
pci 86
次设备编号在驱动程序中分配。次设备编号必须将每个设备驱动程序映射到一个具体的设备实例。次设备编号通常指子设备。例如,磁盘驱动程序可以与具有多个磁盘驱动器的硬件控制器设备通信。次设备节点没有必要使用物理表示。
下面的例子展示了 md 设备的实例 0、1 和 2。数字 0、1 和 2 是次设备编号。
brw-r----- 1 root sys 85, 0 Nov 3 09:43 md@0:0,0,blk
crw-r----- 1 root sys 85, 0 Nov 3 09:43 md@0:0,0,raw
brw-r----- 1 root sys 85, 1 Nov 3 09:43 md@0:0,1,blk
crw-r----- 1 root sys 85, 1 Nov 3 09:43 md@0:0,1,raw
brw-r----- 1 root sys 85, 2 Nov 3 09:43 md@0:0,2,blk
crw-r----- 1 root sys 85, 2 Nov 3 09:43 md@0:0,2,raw
在 sd@0,0:h 名称中,h 代表次设备节点。当驱动程序接收到一个次设备节点 h 的请求时,驱动程序实际接收的是对应的次设备编号。sd 节点的驱动程序将这个次设备编号解释为磁盘的一个具体部分,例如挂载在 /export 的分区 7。 |
|