mymach 发表于 2012-12-03 11:12

《深入Linux设备驱动程序内核机制》一书中关于字符设备设备号分配的一个疑问

在手动分配设备号的时候,是按照哈希表来挂接链表
这样只有和255取余的设备号都可以申请到,书中例子是申请的设备号为257和2,都会挂接在chrdev数组的索引2上

但在自动分配设备号是只是判断chrdev数组是否还有空闲的位置,这样岂不是最大只能够分配255个设备号,不会出现257这样的设备号了吧?



mymach 发表于 2012-12-04 08:15

顶起,我是新手,没有人帮忙回答一下吗

done_and_todo 发表于 2012-12-19 09:39

在linux 2.6.0 以前, 设备编号限制在255个主编号和255个次编号。而对于linux 2.6.0内核,用dev_t表示设备编号,dev_t 是32位的量,12位用作主编号,20位用作次编号。

255个设备号是人们认为这么宽的范围足够了,但这假设是错的。以后dev_t 的大小应该还可能会变。但不同类型的设备可以共用相同的设备号。
页: [1]
查看完整版本: 《深入Linux设备驱动程序内核机制》一书中关于字符设备设备号分配的一个疑问