对于一个设备文件而言真正重要的标志是它的主次设备号(major and minor device numbers)。如果我们用ls
命令列出/dev下的一个设备:
frank@under:~$ ls -l /dev/console
crw------- 1 root root 5, 1 Nov 28 11:56 /dev/console
可以看到,这是一个字符设备,但是在普通文件显示大小的地方用“5,1”代替了。其中5就是这个设备文件的major number,而1就是它的minor number。当我们与这个设备交流的时候,内核通过设备的主设备号加载相应的驱动。加载驱动的时候次设备号会作为参数传入,它如何被解释取决于驱动本身。驱动对应的文档中通常会写出该驱动对于不同的次设备号如何反应。