Linux26内核对象机制研究.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux26内核对象机制研究.pdf

第二篇 嵌入式操作系统技术 第二篇嵌入式操作系统技术 4l Linux2.6内核对象机制研究 康涌泉 桑楠 邹楚雄 电子科技大学计算机科学与工程学院,成都,610054 摘要本文对Linux26内核设备驱动管理中内柱对象机制进行了分析,重点以块设备驱动程序的体系 结构为例,描述了各层次的关系和设备驱动程序的框架。从而为设备驱动程序的开发提供一个参考模型。 关键词设备驱动程序,设备模型,内核对象机制.Kobject 引 言 此庞大的一个组织,使得设备驱动程序管理的拓扑结构相当复杂。在I,inux2.5之前版本的内桉中,投有一个数 据结构来描述系统是如何组织在一起的;L,nu盖2.5开发的一个明确H标就是为内核创建一个统一的没备模型。 在新的内核体系中,需要一个描述系统更为复杂的拓扑结构及支撑特性的抽象数据结构。本文重点分析了 机制各层次数据结构的关系.为进一步柑f究嵌入式1.inux环境下没备驱动程序的丌发和应用提供丁支持。 2 内核设备模型的任务 在Linux2.6内核巾,设备模型为世备驱动程序管理,描述设备抽象数据结构之问关系等提供了一个有效 的手段,其主要任务包括: (1)电源管理和系统关机 该模型保汪系统硬什设备按照一定顺序改变状态。比如连接到USB适配器卜的设备在断开之前,不能关 闭该适配器。 (2)与用户空间通信 虚拟文件系统sys{s是与设备模型紧密联系的,系统由它来表示没备结构并提供给用户空间,根据它提供 的系统信息束操纵、管理相应设备,从而为系统控制提供便利。 (3)热插拔设备管理 计算机用户对计算机设备的灵活性需求越来越苛刻,外罔设备随时可能会捕^或拔出。Lmux26内核通 过设备模型来管理内核的热插拔机制,处理、世备插人或拔山时内核与用户空问的通信。 (4)设备类管理 系统通常并不关心设备是如何连接的,却需要知道H前系统中哪种设备町用。设备模型提供r一种为、垃 备分类的机制,使得在用户空削就能发现该设备是舌可用。 (5)对象生命周期处理 前面提到的热插拔、sysfs等机制使得在内棱巾创建或操纵对象变得复杂r。殴备模型的实现就是为系统 提供一套机制米处理对象的生命期、对象彼此关系及其在用户空间的表不等。 3 内核对象机制数据结构 内核对象机制巾有3个主要的数据结构:r系统(Sub 象集台(KernelObjectSet,在代码突现中J1jKset表不)肃l内核对象(Kernel Object,在代码实现中用Kobject表示)。它们之间的关系立¨图1所示。 Subsystem处于最上层,它足内核对象机制最上层的数据结构,用于描 述一类设备子系统。所有届于某类的殴备,将通过代表设备的数据结构 ksct.1ist链中。内桉启动后. 中的Koblject成员挂接到其所属类的subsys Kset之间的关系 42 中国西部嵌入式系统与单片机技术论坛2005学术年套论文集 mmllll 着初始化的进行,系统还会创建更多的子系统,用于实现不同部件的登记注册,如字符设备子系统(cdev— subsys)。 对象可能会出现在不同的对象集合中。 Kobject是内核对象机制中最基本的数据结构,存最初的设计构思中,仅仅是想将其作为一个引用计数器, 象与设备模型提供纽带。用面向对象的方法,Kobjects可以被看作是顶层,其他类都由该抽象类派生的。 4 Kobject详细说明 一个字符设备结构的描述: struetcdev{ struct kobjectkobj; struct module*OWll(.|r;

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档