字符设备驱动
块设备驱动
网络设备驱动
驱动的开发基本上是遵循Linux提供的框架实现的,使用框架开发的主要目的是为了向上为应用层提供统一的用户接口,这样就可以实现将硬件透明的展示在开发人员的面前,实现不同设备同样接口,屏蔽实现,高内聚、低耦合。Linux内核的实现是面向对象思想的,所以我们可以将它看做这个框架就是一个父类,我们实现的代码不过是继承这个“框架父类”并实现从父类继承而来的方法,父类当中的属性主要有cdev,方法是file_operations,但由于Linux内核是用C语言开发的,所以实现方法上与面向对象语言不太一样,但是只要熟悉了这种开发的流程,本质是不难的,下面以字符设备驱动为例介绍一些开发的流程。