驱动开发
设备驱动程序是内核空间的一部分,是连接最终用户/程序员和硬件的是接口。Linux通过设备驱动程序为应用程序提供了统一抽象的接口,从而隐藏了大量不同设备之间的区别和细节。在Linux中对硬件设备的操作和通常的文件一样,利用标准的文件操作可以对设备上进行打开、关闭、读取或者写入操作。系统中的每个设备由“设备特殊文件”来代表,通过/dev目录下的文件可用来访问驱动程序。
操作系统中的驱动的任务
- 具有一般驱动的操作功能:初始化设备,读写设备;
- 将设备的数据分配给应用;例如:网卡驱动,控制台驱;
- 将用户数据分配给设备;例如:读写硬盘上的文件;
设备、驱动和操作系统三者之间的关系
- 驱动是提供操作系统访问硬件的接口;
- 设备可以通过产生中断通知操作系统有数据到来或者发送;
- 驱动是操作系统内核和硬件之间的一个中间接口和媒介;
- 内核通过驱动来最终控制硬件;
- 操作系统中的驱动和设备的关系是一一对应的;
- 应用和驱动是一对多关系;
- 更多驱动开发的案例和技术,coming soon...