Linux 设备驱动分类

1.字符设备驱动

字符设备驱动是以不定长度的字元来传送资料,字符设备是一个顺序的数据流设备,对这种设备的读写是按字符进行的,而且这些字符是连续地形成一个数据流。

字符设备驱动的关键数据结构有cdev(用来描述一个字符设备)和file_operations结构体的操作

struct cdev {

          struct kobject kobj;
    
          struct module *owner;                     //所属的模块
    
          struct file_operation *ops              //文件操作结构体
    
          struct list_head list;
    
          dev_t dev;
   		  unsigned int count;
    }
字符设备驱动:鼠标,键盘,显示器

2.块设备驱动

​块设备驱动是以固定大小长度来传送和转移资料的,块设备能够随机,不需要按照顺序地访问固定大小的数据片。

我们从他们的定义就可以明白,字符设备驱动是按照数据流的方式做数据传输的,并且这个数据流是有一定顺序的,譬如说键盘这种字符设备驱动,输入yes这样的字串的时候,就会按照Y->E->S这样的顺序的数据流传输,块设备驱动是可以随机访问固定大小的数据段(和字符设备驱动的数据流差异点),并且被读的块可以不一定是连续的,这里的连续的是指被映射的虚拟地址,譬如说硬盘就是一个块设备。

块设备驱动:硬盘,U盘

3.网络设备驱动

​ 网络设备是一个比较特殊的设备,它负责接收和发送帧数据,可能是物理帧,也可能是ip数据包,这些特性都有网络驱动决定。它并不存在于/dev下面,所以与一般的设备不同。网络设备是一个net_device结构,并通过register_netdev注册到系统里,最后通过IFconfig -a的命令就能看到。

网络设备驱动:蓝牙,wifi,网卡等
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值