当前位置:嗨网首页>书籍在线阅读

02-什么是udev

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

19.1 什么是udev

简单回顾一下,Linux系统的/dev目录中存放着被称为设备节点的特殊文件。我们在8.3.3节中曾经介绍过设备节点。可以将这些特殊文件看做是指向实际设备驱动程序的“指针”,而设备驱动程序控制和管理了应用程序对设备的访问。设备节点将设备名称和内核中的主次设备号关联起来。设备节点中还有一个属性表明了设备的类型,比如块设备或字符设备。

在不久之前,Linux系统的/dev目录中会包含数千个设备节点,它们通常是由脚本文件(比如MAKEDEV)静态创建的。如果你的家庭或工作电脑上运行着Linux,仍然可以在系统中找到MAKEDEV脚本。

因为没有办法自动检测出系统中实际存在的设备,Linux发行版的维护人员只能简单地运行MAKEDEV,结果是在/dev目录中创建了几乎所有可能会遇到的设备。不难理解这种穷举型的设备管理方式并不理想。

udev是最新和最优秀的设备管理子系统,它使用内核在发现设备时提供的信息动态创建/dev目录中的内容。它已经发展成为一个非常灵活和强大的方式,能够在系统检测到硬件设备时运用策略。注意,我并没有说在系统检测到硬件设备时“加载设备驱动程序”或“创建设备节点”。实际上,udev会默认执行这些操作,但你也可以自定义系统在发现某个特定设备时所执行的操作。udev的默认行为是使用内核提供的设备名称创建一个同名的设备节点。

在Linux系统启动完毕之后,设备可能会以多种方式突然出现在系统中。明显的例子有将USB设备插入USB端口或打开笔记本电脑上的无线网络开关。另外,在带电情况下将硬盘驱动器插入到一个有容错功能的机架中也算是个例子。