- linux的内核源码编译后,会生成一个总的镜像。镜像加载到内存中运行他,就会启动内核。
- 驱动属于内核代码的一部分,对驱动修改要重编整个内核,麻烦
- 但驱动可以独立于内核镜像外,并能动态加载和卸载
- 字符设备驱动,他们按照字节流的方式来进行访问,如鼠标键盘等
- 学习一类驱动,就是学习它的核心数据结构和一组API,然后是由此组成的框架
- linux中,万物皆是文件,设备也被当成文件。
- 硬件准备好后会主动通知cpu,并非cpu主动轮询硬件状态,这种硬件上的异步,就是中断。
- 传统的硬件定时器,也是以中断方式工作的。
- 驱动会利用DMA操作来减轻cpu的负担
- 驱动开发中的设备和驱动分离的思想,是减轻Linux系统移植工作量的关键所在
- 学习驱动的目的,最终是为了能够为各种各样的设备写出驱动代码
- 应该要善于利用内核中已有的设施,用最快,最简单的方式来实现设备驱动
- 除了字符设备驱动,还要块设备驱动和网络设备驱动两大类。