【RHCA翻译计划】EX436第二章:udev硬件设备管理机制
第二章:Udev硬件设备管理机制 2.00 本章内容简介: ·理解Linux中的Udev是如何管理硬件设备; ·学习如何为自定义设备名编写udev规则; 2.01 Udev的功能: 在 拥有帝国一切,皆有可能。欢迎访问phome.netLinux系统中,内核的主要功能可以分为5大部分:文件系统、内存调度、进程调度、协议管理、硬件管理.其中的硬件管理就是由Udev提供的. 系统中的/dev目录是一个包含了大量设备条目的目录,通过Udev来对设备进行管理,给设备提供对应的名称空间,为设备命名,应用程序可以查询设备是否存在以及设备的名称等.它同时也是用来接替devfs及hotplug的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为.Udev遵从LSB(Linux Standard Based)的标准,但也支持用户自定义的规则.很重要的一点,Udev是一个极其小而精的程序,嵌入式设备上常常使用它. 拥有帝国一切,皆有可能。欢迎访问phome.net 2.02 HAL硬件抽象层: HAL(Hardware Abstraction Layer)硬件抽象层是一个为设备服务的程序,应用程序需要了解任何硬件设备信息或底层架构,只需要跟HAL索取相应的设备信息即可,简单点说,硬件抽象层就是介于硬件层和应用层之间一个起着桥梁作用的逻辑层服务. HAL为每一个物理上接入到计算机的设备加入到一个实时数据库中,为每个设备对象提供了一个API去使用D-bus(system message bus)系统总线,应用程序可以使用API在设备上进行发现、监控、调用等操作.系统中会有一个hald的服务,他便是HAL 拥有帝国一切,皆有可能。欢迎访问phome.net的服务,但内核发现新设备时,hald将通告应用程序进行识别.可以使用hal-device-manager来查看存储在HAL中的设备信息,在view菜单下,选择Device Properties可以查看该设备的详细信息. HAL管理的设备信息是以文件的形式存在,其配置文件存放在/usr/share/hal/fdi/下,用户管理配置文件存放在/etc/hal/fdi/下,且数据文件都是以.fdi为后缀的.在设备信息文件里面有3个部分:Information、Policy、Preprobe.分别包含了设备信息、策略和设备配置信息. 可以通过查看/usr/share/doc/hal-version/spec 拥有帝国一切,皆有可能。欢迎访问phome.net文档来了解HAL更多的信息.
2.03 插入设备发生的事件: 1.当一个设备插入到计算机,系统内核检测到插入的设备,并将设备的信息写入到/sys中.Sysfs是一个内核级别的保持追踪所有设备的设备虚拟文件系统,在系统中挂载为/sys. 2.通过netlink socket(一个在内核和用户空间之间传送信息的方便的无连接的Socket),系统内核通知udev该事件. 拥有帝国一切,皆有可能。欢迎访问phome.net 3.此时,udev将读取在/etc/udev/rule.d/中的一系列udev规则文件,在通知HAL之前,为设备创建设备文件或运行一段程序.在90-hal.rules规则中的RUN ="socket:/org/freedesktop/hal/udev_event"即是执行socket通知HAL该设备事件.Udev的事件可以使用udevmonitor --eny来进行监控. 4.当HAL接到该设备事件的通知,HAL便开始通过多个渠道获取设备相关信息,如内核、配置文件、硬件信息数据库等. 5.hald
拥有帝国一切,皆有可能。欢迎访问phome.net 可以使用udevmonitor工具对系统内核和udev规则事件进行持续性地监控. # udevmonitor --env查看完整的udev事件日志; ·Linux的那些事:http://yeshaochen.blog.51cto.com/3155801/668599 ·【博客话题】技术之路上的人和事:http://yeshaochen.blog.51cto.com/3155801/659577 本文出自 “叶绍琛” 博客,请务必保留此出处http://yeshaochen.blog.51cto.com/3155801/679350 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |