Linux:驱动之字符设备工作原理(未完)

  • 驱动之字符设备工作原理

目前尚不是最终版本,还望有心人自己学习的时候,把自己整合的知识点相关的答案也好问题也好,或者实践过程中的一些操作截图,再或者其他的一些想要分享材料发给笔者邮箱:[email protected],我们一起完善这篇博客!笔者写这篇博客的时候已经工作第四个年头了,目前是在整理之前有过的学习资料,仅作为笔记,供同志们参考!短时间内可能不会去全部完善。

 

  • 系统整体工作原理

应用层->API->设备驱动->硬件?

API:open、read、write、close等?

驱动源码中提供真正的open、read、write、close等函数实体?

 

  • file_operations结构体

元素主要是函数指针,用来挂接实体函数地址?

每个设备驱动都需要一个该结构体类型的变量?

设备驱动向内核注册时提供该结构体类型的变量?

 

  • 注册字符设备驱动

为何要注册驱动?

谁去负责注册?

向谁注册?

注册函数从哪里来?

注册前怎样?注册后怎样?注册产生什么结果?

 

  • register_chrdev详解

(#include <linux/fs.h>)?

作用?驱动向内核注册自己的file_operations?

参数?

inline和static?

 

  • 内核如何管理字符设备驱动

内核中有一个数组用来存储注册的字符设备驱动?

register_chrdev内部将我们要注册的驱动的信息(主要是 )存储在数组中相应的位置?

cat /proc/devices查看内核中已经注册过的字符设备驱动(和块设备驱动)?

好好理解主设备号(major)的概念?

/proc文件系统的作用?

将来深入学习驱动时可以去跟register_chrdev到内部看,验证我们上面讲的原理?
 

猜你喜欢

转载自blog.csdn.net/uestc_ganlin/article/details/82663298