1.设备驱动程序扮演的角色:
设备程序是一个独立的“黑盒子”,使其某个特定硬件响应一个定义良好的内部编程接口,这些接口完全隐藏了设备的工作细节。用户的操作通过一组标准化的调用执行,而这些调用独立于特定的驱动程序。将这些调用映射到作用于实际硬件的设备特有操作上,则是设备驱动程序的任务。
2.驱动程序的作用:
驱动程序应该处理如何使用硬件可用的问题,而将怎样使用硬件的问题留给上层应用。(提供机制,而不是策略)
3.内核功能划分:
进程管理 内存管理 文件系统 设备控制 网络功能
4.设备的分类:
字符设备 块设备 网络接口
5.安全策略:
驱动程序编写者应当尽量避免在代码中实现安全策略。安全策略问题最好在系统管理员的控制之下,由内核的高层来实现。
6.内核栈:
内核具有非常小的栈,它可能只和一个4096字节大小的页一样。
7.模块相关:
make 编译模块
insmod 加载模块
rmmod 移除模块
dmesg 显示printk打印的数据
8.两个make教程:
1).http://blog.csdn.net/haoel/article/details/2886
2).http://www.gnu.org/software/make/manual/make.html
9.Linux设备驱动程序第三版实例:
https://github.com/alants56/ldd3-examples-3.x
10.一些感受:
学习了差不多有一周的时间了,总体感觉有些模糊。主要的原因是对于一些linux相关知识和经验的欠缺。但相比于去年(去年看了前几章就放弃了)有很大的进步了。不管什么方面的技术,入门是需要一些时间的。如果有相关的好一点的入门视频或者有老师指点,会事半功倍的。