字符设备和块设备有什么主要区别?

Linux 中的三大类驱动:字符设备驱动、块设备驱动和网络设备驱动。

一、字符设备
字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。

比如我们最常见的点灯、按键、串口、IIC、SPI,LCD等等都是字符设备,这些设备的驱动就叫做字符设备驱动。 

二、块设备
系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。

比如 SD 卡、EMMC、NAND Flash、Nor Flash、SPI Flash、机械硬盘、固态硬盘等。

三、字符设备与块设备的区别
1.最小访问大小:字符设备只能以字节为最小单位访问,而块设备以块为单位访问,例如512字节,1024字节等;

2.支持随机访问:块设备可以随机访问,但是字符设备不可以;

3.有无缓冲:字符设备通常是无缓冲的,即读取或写入的数据会直接传输到设备或从设备中获取,而不会进行额外的缓存操作。块设备使用缓冲区来暂时存放数据,等到条件成熟以后在一次性将缓冲区中的数据写入块设备中。

块设备引入缓冲去的目的:为了提高块设备寿命,大家如果仔细观察的话就会发现有些硬盘或者 NAND Flash就会标明擦除次数(flash 的特性,写之前要先擦除),比如擦除 100000 次等。因此,为了提高块设备寿命而引入了缓冲区,数据先写入到缓冲区中,等满足一定条件后再一次性写入到真正的物理存储设备中,这样就减少了对块设备的擦除次数,提高了块设备寿命。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/qq_41709234/article/details/131004041

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值