【问题标题】:Is there any significance to Linux device major numbers besides being essentially an index into a table?除了本质上是表的索引之外,Linux 设备主要编号还有什么意义吗?
【发布时间】:2014-09-07 04:02:45
【问题描述】:

对设备主编号的重要性感到困惑。有人可以帮我确认一下吗?:

Linux 设备主编号只是一些内核列表的索引,如数据结构(~一个数组),除此之外没有任何实际意义。本质上,一些实现某些接口集(驱动程序)的对象位于该偏移量处。按照约定,某些主要数字指向具有某些角色的此类对象,但它是唯一的约定。例如,我一直认为主要数字以某种方式与特定的硬件地址/总线相关联,但事实并非如此——它们只是索引......

【问题讨论】:

  • 这个问题似乎跑题了,因为它是关于版本控制策略的。
  • 这个问题与版本控制策略无关。我什至不知道那是什么。请帮助我了解我是如何设法提出有关版本控制策略的问题的。
  • 你问为什么 linux 会做某事——这类问题不在此处讨论。
  • 我问的是 Linux 是如何工作的,而不是为什么。我不在乎为什么。
  • @KeithThompson 啊谢谢。你那令人困惑的权利。我的意思是设备主设备号。

标签: linux linux-device-driver


【解决方案1】:

对于主要设备号,您基本上是正确的:它们索引到内核的设备驱动程序表中,以识别处理设备的驱动程序例程。不过,次要设备号可以区分使用该驱动程序的唯一设备,因为系统上可能存在多个使用单个驱动程序的设备。

您也是正确的,一些主要数字是静态(硬编码)分配给某些常见设备,例如您的硬盘或某些 TTY 设备(出于遗留原因),但大多数是动态分配的。现在,添加到 Linux 内核的新驱动程序预计会动态请求设备号。

进一步阅读:

https://www.kernel.org/doc/Documentation/devices.txt - 显示哪些类型的设备硬编码到哪些主要号码
http://www.linux-tutorial.info/modules.php?name=MContent&pageid=94 - 主要/次要号码的更详细说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    相关资源
    最近更新 更多