linux驱动分为三类:
1.字符设备驱动
定义:字符设备驱动是以不定长度的字元来转送资料,字符设备是一个顺序的数据流设备,对这种设备的读写是按字符进行的,而且这些字符是连续地形成一个数据流;
组成:1、字符设备驱动的模块加载和卸载函数;
2、字符设备驱动的file_operation结构体的成员函数;
举例:鼠标,键盘,显示器;
2.块设备驱动
定义:块设备驱动是以固定大小长度来传送和转移资料,块设备能够随机,不需要按照顺序地访问固定大小的数据片;
举例:硬盘,U盘;
3.网络设备驱动
定义:网络设备是一个比较特殊的设备,他负责接受和发送帧数据,可能是物理帧,也可能是ip数据包,这些特性都由网络驱动决定,他并不存在于/dev下面。所以与一般设备不同。网络设备是一个net_device结构,并通过register_netdev注册到系统里,最后通过IFconfig -a的命令就能看到;
举例:蓝牙,WIFI,网卡等。