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;

linux26内核,Linux26内核对象机制研究.pdf相关推荐

  1. linux kernel and user space通信机制,Linux内核与用户空间通信机制研究.pdf

    ISSN 1009-3044 E-mail:info@CCCC.net.CR ComputerKnowledgeandTechnology电脑知识与技术 http://www.dnzs.net.cn ...

  2. 武汉大学计算机学院谢超,基于模块化的电子地图自适应设计机制研究.pdf

    第 3 5 卷 第 1 0 期 武 汉 大 学 学 报 信 息 科 学 版 V o l35 N o1 0 20 1 0 年 1 0 月 Ge o m a t i c s a n d In f o r ...

  3. 论文中文翻译——Double-Fetch情况如何演变为Double-Fetch漏洞:Linux内核中的双重获取研究

    本论文相关内容 论文下载地址--Web Of Science 论文中文翻译--How Double-Fetch Situations turn into Double-Fetch Vulnerabil ...

  4. 详解Linux2.6内核中基于platform机制的驱动模型

    原文地址:详解Linux2.6内核中基于platform机制的驱动模型 作者:nacichan [摘要]本文以Linux 2.6.25 内核为例,分析了基于platform总线的驱动模型.首先介绍了P ...

  5. 【Linux 内核】宏内核与微内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )

    文章目录 一.操作系统需要满足的要素 二.宏内核 三.微内核 四.Linux 内核动态加载机制 一.操作系统需要满足的要素 电脑上运行的 操作系统 , 是一个 软件 ; 设备管理 : 操作系统需要 为 ...

  6. Linux内核中的platform机制

    Linux内核中的platform机制 从Linux 2.6起引入了一套新的驱动管理和注册机制:platform_device和platform_driver.Linux中大部分的设备驱动,都可以使用 ...

  7. centos内核编译与其签名机制

    centos内核编译与其签名机制 linux内核3.7引入的签名机制,极大地方便了对内核模块的安全认证,同时也为操作系统厂家提供了IP保护的技术手段.不过,凡事有利也有弊.对刚刚接触具有签名机制的内核 ...

  8. linux 内核 工作队列,Linux内核新旧工作队列机制的剖析和比较

    摘要:在中断驱动的程序设计中,工作队列是一种强有力的工具.但是在Linux2.6.35及其以前的内核版本中,每创建一个工作队列就创建与CPU数目相同的内核线程,耗费大量的内核资源:工作只能严格串行的处 ...

  9. 内核常见锁的机制与实现分析1

    今天讨论下内核常见锁的机制与实现分析. 第一个问题内核何时会发生临界资源的竞争访问? 对于非抢占UP(uni processor)内核只有一种情况会发生竞争, 即高优先级异常/中断处理函数抢占内核线程 ...

最新文章

  1. jquery的常用API汇总
  2. 数据结构源码笔记(C语言):冒泡排序
  3. 基于 Quartz 开发企业级任务调度应用--转
  4. Ubuntu 16.04下Caffe-SSD的应用(六)——PASCAL VOC2007数据集介绍
  5. 696. Count Binary Substrings 计数二进制子串
  6. 使用eclipse开发javaweb登录功能
  7. APPKIT打造稳定、灵活、高效的运营配置平台
  8. 2020年抖音美妆直播报告
  9. IDEA中的将项目提交到远程git仓库
  10. 数据结构与算法学习笔记之 提高读取性能的链表(上)
  11. ps文字换行_零基础一周内熟悉使用PS基础工具【Photoshop教程二】
  12. 破解路由器密码并限制和***邻居电脑
  13. LOJ-10102(桥的判断)
  14. 报警c语言程序,PIC单片机警报声C程序
  15. 全国大学生信息安全竞赛writeup--暗号(reverse300)
  16. MC开服教程2:材质包法自定义唱片音乐
  17. c语言实现mysql通配符_Mysql的C语言接口简单实现电话本功能
  18. 八位共阴数码管的工作方式
  19. 归因分析_归因分析:如何衡量影响? (第2部分,共2部分)
  20. CSDN英雄会上会英雄

热门文章

  1. 为什么 SAP 电商云 Spartacus UI SSR 模式下的客户端应用,不会发起 product 请求
  2. SAP Commerce Cloud SmartEdit 学习笔记
  3. 什么是 SAP vocabulary-based annotations
  4. SAP Spartacus避免不能向下兼容的breaking changes
  5. Business Partner Relationship Category in CRM and C4C
  6. SAP Fiori 3的暗黑主题,酷炫无比
  7. BadI /ui2/catalog_provider_bd
  8. react native命令行全局安装
  9. Change Fiori launchpad logo
  10. Marketing Cloud Launchpad动态tile显示数字刷新的触发逻辑