对设备主编号的重要性感到困惑。有人可以帮我确认一下吗?:
Linux 设备主编号只是一些内核列表的索引,如数据结构(~数组),除此之外没有任何实际意义。本质上,一些实现了一组接口(interface)(驱动程序)的对象位于该偏移量处。按照惯例,某些主要数字指向具有某些角色的此类对象,但它是唯一的约定。例如,我一直假设主要数字以某种方式与特定的硬件地址/总线相关联,但事实并非如此 - 它们只是索引......
最佳答案
对于主要设备编号,您基本上是正确的:它们索引到内核的设备驱动程序表中以识别用于处理设备的驱动程序例程。不过,次要设备编号将使用该驱动程序的唯一设备彼此区分开来,因为系统上可能存在多个使用单个驱动程序的设备。
您也正确地指出,一些主要编号是静态(硬编码)分配给某些常见设备的,例如您的硬盘或某些 TTY 设备(出于遗留原因),但大多数是动态分配的。添加到 Linux 内核的新驱动程序现在需要动态请求设备号。
进一步阅读:
https://www.kernel.org/doc/Documentation/devices.txt - 显示哪些类型的设备被硬编码到哪些主要数字
http://www.linux-tutorial.info/modules.php?name=MContent&pageid=94 - 对主要/次要数字的更详细解释。
关于linux - 除了本质上是表的索引之外,Linux 设备主编号还有什么意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25655937/