易截截图软件、单文件、免安装、纯绿色、仅160KB

详细介绍 Linux 2.6 设备的驱动模型


linux 2.6 设备驱动模型
 
1.背景
 
随着设备拓扑结构越来越复杂,需要为内核建立一个统一的设备模型,对系统结构做一般性的抽象描述。
 
有了该抽象结构,可支持多种不同的任务:
 
a) 电源管理  完成电源管理工作需要对系统结构的理解,且有严格的顺序,如:一个USB宿主适配器,在处理完所有与其相连接的设备面前是不能关闭的;
 
b) 与用户空间通信  由/sysfs虚拟文件系统展示设备的属性
 
c) 热插拔设备
 
d) 对象生命周期
 
2.sysfs 虚拟文件系统
 
sysfs 是一个特殊的文件系统,类似于/proc。sysfs不仅象/proc一样允许用户空间访问内核的数据,而且它以更结构化的方式向用户提供内核数据信息。
 
sysfs的一个目的就是展示设备驱动模型中各组件的层次关系。其顶级目录包括:
 
a) block
 
b) device
 
c) bus
 
d) drivers
 
e) class
 
f) power
 
g) firmware
 
每个目录代表一个kobject对象,每个文件代表kobject的属性。
 
3. Kobject、Kset 和 subsystem
 
3.1 Kobject
Kobject 是组成设备模型的基本结构。类似于C++中的基类,它嵌入于更大的对象的对象中--所谓的容器--用来描述设备模型的组件。如bus, devices, drivers 都是典型的容器。
 
容器有了kobject之后,允许内核:
a) 保存对容器的引用计数
b) 保存容器之间的层次关系
c) 为每个容器的属性提供一个用户视图
 
struct kobject{
        char             * k_name;
        char               name[20];
        struct k_ref       kref;
        struct list_head   entry;
        struct kobject   * parent;
        struct kset      * kset;
        struct ktype     *


相关文档:

Linux平台下搭建Fortran并行编译环境(SLES10 )

SLES10 Linux(kernel-2.6.16.21-0.8)平台下搭建Fortran并行编译环境
一.Fortran编译器的安装
Linux安装盘一般都自带有Fortran编译器,在SuSe9.1以前均带有g77,在Suse9.2以后为gfortran。但是,相对来说,由于g77和gfortran的编译的程序运行效率不是很高,所以都会选择再安装专业的Fortran编译器。
主流的Fortran 90/ ......

写给Linux内核新手 关于Linux内核学习的误区

albcamus

http://bbs.chinaunix.net/viewthread.php?tid=626486


  先说句正经的:其实我没资格写这篇文章,因为自己也就一两个月以来才开始有所领悟的。因此,这里与其说是关于Linux内核学习的经验,不如说是自己
的教训吧,希望不要扔鸡蛋砸我^_^

   常常有人问:我想学习内核,需要什么基础吗?L ......

Linux多线程与信号

Linux下的线程是所谓的轻量级进程(LWP: light weight process),其与普通进程一样拥有一个庞大的task_struct结构体,一个进程中的多个线程共享内存空间,毕竟它们属于同一个进程,所以需要向外呈现一个统一的pid,因此各线程的pid存放的是进程号,又由于线程同样也是进程,因此其有自己的进程id号,Linux为了支持多线程, ......

Linux下的ELF文件格式简介

(1)概述
      Executable and linking format(ELF)文件是x86 Linux系统下的一种常用目标文件(object file)格式,ELF文件格式比较复杂,本文只是简要介绍它的结构。有三种主要类型:
(1)适于连接的可重定位文件(relocatable file),可与其它目标文件一起创建可执行文件和共享目标文件。
(2) ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号