Linux设备驱动程序学习笔记(一)

时间:2021-11-15 23:37:23

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相关知识和经验的欠缺。但相比于去年(去年看了前几章就放弃了)有很大的进步了。不管什么方面的技术,入门是需要一些时间的。如果有相关的好一点的入门视频或者有老师指点,会事半功倍的。