标签:设计 设备节点 div obj 光盘 打印 地方 unix 文件
块设备可以以块为单位寻址,块大小随设备不同而不同;设备通常支持重定位操作,也就是对数据的随机访问。块设备的例子有外存,光盘等。
字符设备不可寻址,仅供数据的流式访问,就是一个个字符,或是一个个字节。字符设备的例子有键盘、鼠标、打印机等。
网络设备最常见的类型有时也以以太网设备来称呼,它提供了对网络的访问,这是通过一个物理适配器和一种特定的协议进行的。网络设备打破了Unix的“所有东西都是文件”的设计原则,它不是通过设备节点来访问,而是通过套接字API这样的特殊接口来访问。
int my_init(void)
的形式。static可有可无,一般情况下,初始化函数不会被外部函数直接调用,所以可以用static标记;int函数会返回一个int型数值(0或非0)。init函数的主要作用有注册资源、初始化硬件、分配数据结构等。void my_exit(void)
的形式。同样它也可以标记为static。这个方式会把你所编写的模块彻底放入linux内核,使之成为内核源代码树的一部分。不同功能的模块置于不同的位置,设备驱动程序存放于内核源码树根目录下/drivers的子目录下。
除了直接将模块添加到内核源码树这种一劳永逸的做法,还可以放在内核代码之外,把模块加载到在自己的源代码树目录下。这种方式是将模块源代码置于home目录下的某个地方,而前一种方式是直接将源代码存于/usr/src/linux下!
kobject、ktype、kset之间的关系:kobject引入了诸如引用计数、父子关系和对象名称等基本对象道具,并且是一个统一的方式提供这些功能,它与ktype对象关联,ktype有struct kobj_type结构体表示,在kobject中,ktype字段指向该对象。kobject又归入了称作kset的集和,kset集和由struct kset结构体表示。
sysfs为用户提供了kobject对象层次结构的试图。帮助用户能以一个简单文件系统的方式来观察系统中各种设备的拓扑结构。借助属性结构对象,kobject可以用导出文件的方式,将内核变量提供给用户读取写入。
Linux之所以支持很多体系结构是因为在arch目录下存在对不同体系结构所特有的代码目录。
2017-2018-1 20179209《Linux内核原理与分析》第十周作业
标签:设计 设备节点 div obj 光盘 打印 地方 unix 文件
原文地址:http://www.cnblogs.com/genius-sen/p/7954076.html