reading《Linux 2.6内核的精彩世界》
http://www-128.ibm.com/developerworks/cn/linux/kernel/
l-kernel26/index.html
1,模块子系统 - 设备驱动程序
在 Linux 2.6的开发历程中,模块子系统是另一有重大改进的部分。许多代码被重写,以提高稳定性,并使系统更加透明。除了这些明显的表层的变化之外,还有更多背后的内核如何看待以及使用模块的改变。
首先,Linux 2.6中内核驱动程序最显而易见的(虽然并没有太大作用)的变化是文件扩展名改变了。".ko"(kernel object,内核目标文件)取代了".o"(这是一目标文件的常见扩展名,通常在程序编译期间,链接生成可执行应用程序之前
完完全全实质性的改进在于消除存在于很多内核版本中的竞态的多方面工作。问题的关键在于,如果卸载发生在模块检查并确认没有其它的设备正在使用它之后,使用一个正在被卸载的模块来启动设备是有可能的。新的内核模块代码应使得这一条件更难被触发。
更加透明是新的模块子系统另一特性。在此之前,几乎所有的 Linux版本中,模块是足够智能的,它们可以通过扫描总线寻找它识别(recognized)的设备ID号,检测到它所能够支持的设备(比如PCI, ISA PnP以及PC卡)。Linux 2.6标准化了这种支持,使之对内
2,sys文件系统
最明显的用户可见的改变可能是新的sysfs文件系统的出现,它集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统(安装在/sys目录)是核心看到的设备树的一个直观反映。核
既然每个设备(或者说内核对象)在sysfs中都有唯一对应的目录结构,那么下一步可以把设备的属性(设备名,电源模式,中断处理等)信息输出到这个目录树中以供系统管理员读写。相应的,很多跟设备相关的/proc/sys的用法已经或者将要移到/sys目录下。
没有评论:
发表评论