内核和驱动是什么关系?
内核和驱动是什么关系呢?指什么关系?呵呵~ humjb_1983 发表于 2014-04-10 13:48 static/image/common/back.gif
指什么关系?呵呵~
协作关系、衔接关系。数据流,控制流等等。 回复 3# palm008
这个问法好笼统.
据我读代码的理解,驱动的任务:
1)驱动利用内核文件系统层的接口,提供接口给用户层操控硬件.ioctl/dev/sysfs等
2)驱动提供硬件实际上的“操作窗口”给内核使用。比如说内核要关闭设备,文件系统层处理了.close操作,驱动层负责写入指定的值给设备的特定寄存器来关闭设备。
所以我的理解驱动层是硬件设备的一层抽象层,它也是内核的一个子系统,提供接口供内核其他子系统来操控硬件.
驱动通常就是一个内核模块~,不同模块功能不同,就不好描述这些关系了~~ 内核是在调度底层驱动的,,这么理解可以吗 回复 1# palm008
脑袋和手的关系吧
1.从功能角度来说的话,驱动在内核的下层。即:硬件,驱动,内核,应用(从下往上)。也就是说,驱动直接操作硬件,来给内核提供服务。内核不能直接操作硬件。
2.从代码结构的角度来看,驱动和内核实际上已经融为一体,驱动开发就是内核开发,内核开发很多时候也指驱动开发。还记得内核模块吗?为什么会提供内核模块这种形式,即module_init和module_exit这种形式。你看下驱动开发的书籍,驱动全部都是以内核模块这种形式来实现的。这就说明驱动开发实际就是内核开发,而内核模块这种形式,说白了本身也就是为了开发驱动才搞出来的。驱动已经成为内核的一部份了,内核源码的70%以上都是驱动的代码,剩下的代码说白了就是进程管理,内存管理,文件管理,这些部分所有系统都公用,所以只占到30%。而外设的发展是日新月异的,数量太多了。新的外设必须要有相应的驱动,所以内核部分的发展主要就是驱动的发展。 还是这个好理解回复 8# sting99999
页:
[1]