Linux设备驱动基本概念总结

 

        博客开通好久了,苦于自己正在看书巩固基础知识阶段,一直觉得自己没有写一篇博客的必要,毕竟不知道写些什么,看过两遍Linux设备驱动程序,有些感触,准备在第三遍回看时总结自己实践的经验写一些看书的体会吧,这篇就作为我的第一篇博文了。主要对一些设备驱动方面的概念做个总结,有新的概念将会填充进来,有需要改进的将予以修正。

 

模块初始化函数:在模块被加载时调用,主要为以后调用模块函数预先做准备,完成相关结构及设备的初始化。使用宏module_init(init_fun)进行声明,告知内核。

模块退出函数:在模块被卸载前被调用,完成与上面初始化函数相反的工作,使用宏module_exit(exit_fun)进行声明,告知内核。

 

内核空间:Linux内核运行在处理器的最高级别时的运行模式,可以运行所有操作。模块化代码运行于内核空间,扩充内核功能。

用户空间:Linux内核运行在处理器的最低级别时的运行模式,操作受限。

进程上下文:当应用程序执行系统调用时,运行模式将由用户空间切换到内核空间,此时称内核运行于进程上下文。

中断上下文:当硬件设备被中断挂起时,进入中断服务程序,这时,内核处在一个与所有金城武关的,专门的中断上下文中。

 

内核符号表:包含全局内核项的表,模块在装入内核后,它所导出的符号也会加入内核符号表,该内核符号表用于解析模块中未定义的符号。

 

主设备号与次设备号:主设备号标示设备对应的驱动程序,一般一个主设备号对应一个驱动程序;次设备号由内核使用,用于确定设备文件所指的设备。

字符设备与块设备最主要的区别:能否随机访问。能,为块设备,不能为字符设备。



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值