Major and Minor Numbers
内核通过major号来识别设备,下面的命令列出的是系统上所连接的设备及其major number,第一列就是设备的major number.
$ cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
5 /dev/tty
5 /dev/console
5 /dev/ptmx
7 vcs
10 misc
13 input
14 sound
116 alsa
128 ptm
136 pts
180 usb
195 nvidia
226 drm
254 devfs
Block devices:
3 ide0
22 ide1
$ls -l /dev
……
crw------- 1 root root 119, 0 Apr 24 11:34 vmnet0
crw------- 1 root root 119, 1 Apr 24 11:34 vmnet1
crw------- 1 root root 119, 2 Apr 24 11:34 vmnet2
crw------- 1 root root 119, 3 Apr 24 11:34 vmnet3
crw------- 1 root root 119, 4 Apr 24 11:34 vmnet4
crw------- 1 root root 119, 5 Apr 24 11:34 vmnet5
crw------- 1 root root 119, 6 Apr 24 11:34 vmnet6
crw------- 1 root root 119, 7 Apr 24 11:34 vmnet7
crw------- 1 root root 119, 8 Apr 24 11:34 vmnet8
……
可以看到他们的major number 是119,但他们的minor number不同。分别是0~8.
内核只关心major number,而minor number 是由设备驱动来区别的。
内核内部,类型dev_t存储着设备号,且定义了一组宏来维护它。
MKDEV(int major,int minor);//return dev_t
MAJOR( dev_t dev);
MINOR (dev_t dev);
比如,我们用mknod建立一个新的设备文件
#mknod /dev/newchr c 50 0
建立/dev/newchr设备文件,类型是c(char,字符型),major number 是50,minor number 是0.mknod的用法可以用man来查看。
摘自IT者安全网() 原文:
阅读(387) | 评论(0) | 转发(0) |