首页 > 其他分享 >字符设备和块设备的区别

字符设备和块设备的区别

时间:2023-10-16 21:44:19浏览次数:28  
标签:字符 字节 区别 Flash 擦除 缓冲区 设备

一、字符设备

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

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

 

二、块设备

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

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

 

三、字符设备与块设备的区别

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

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

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

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

 

标签:字符,字节,区别,Flash,擦除,缓冲区,设备
From: https://www.cnblogs.com/god-of-death/p/17768456.html

相关文章

  • Java中 length 和 length()的区别
    在Java中,str.length针对的是数组,而str.length()针对的是针对的字符串数组(str.length) 的特点有:长度固定,类型固定。因此数组的长度就可以被视为是一种数组的属性字符串(str.length()) :string的内部机制是一个char数组,而char数组有自己的长度属性,所以string就没必要......
  • python - bleak的低功耗蓝牙设备连接
    1.接收蓝牙日志可以用手机拨号##5959##打开蓝牙调试然后使用对应的手机app先使用对应的蓝牙产品2.蓝牙日志分析将手机上的蓝牙日志文件(btsnoop_hci.log)拷贝到电脑上使用wireshark打开,主要是看发送和接收的数据,以下是某体重秤3.寻找设备importasynciofrombleakimp......
  • getc()、getchar()、getch() 和 getche() 的区别
    所有这些函数都从输入中读取一个字符并返回一个整数值。返回整数以容纳用于指示失败的特殊值。EOF值通常用于此目的。getc()    它从给定的输入流中读取单个字符,并在成功时返回相应的整数值(通常是读取字符的ASCII值)。失败时返回EOF。    语法:intgetc(FILE*stream);......
  • Linux中bash、sh、./命令的区别
    之前在centos7上面执行用pyinstaller打包的程序时发现用【bashxxx】无法运行。改用【./xxx】就可以运行。遂百度一波发现了自己之前理解的一个误区,特记录如下。Linux存在多种解释器,以下是常用的几种(下方为原文):bash:这是Bashshell的解释器。当你使用bashscript.sh运行......
  • 堆和栈的区别
    栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型参数等都在内存中堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小......
  • WebAPI和MVC的区别
    1.MVC主要用于建站,WebAPI主要用于构建http服务MVC是前端和后端不分离,WebApi是后端写的http服务提供前端,是前后端分离的写法;2.MVC可以返回JsonResult,前端可以直接使用;WebAPI要返回JSON数据,必须JSON.parse()转化为(Maticsoft.Json.dll)3. MVC直接继承system.mvc.cont......
  • 为何4G监控设备接入LiteCVR后,阴雨天气频繁出现播放卡顿现象?
    近年来,随着计算机、网络、图像处理以及传输技术的飞速发展,视频监控业务正在向其他领域加速渗透。LiteCVR视频融合平台基于云边端一体化架构,具有强大的数据接入、处理及分发能力,平台支持海量视频汇聚管理,可支持多协议、多类型的设备接入,属于性能稳定、高可靠、高可用的流媒体视频......
  • Oracle Cloud 更换MFA(2步验证)设备
    OracleCloud更换MFA(2步验证)设备1.起因发现越狱的ios设备,在移动数据模式下无法稳定获取IPV6地址,也不知道哪个插件影响的。所以想恢复系统重新越狱试一下,但手机安装了OracleCloud的2步验证程序,之前想更换,一直没找到在哪设置的2.更换过程中另外一个问题:找不到个人账号的设置......
  • PMP里定性风险分析和定量风险分析有什么区别?
     析辨定性风险分析定量风险分析概念定性风险分析是对已经识别出的每一个风险进行主管分析,判断各风险发生的可能性和后果,并通过综合考虑可能性和后果来确定各风险的严重性,对各风险进行初步排序。定性分析的结果要写入风险登记册,例如风险的可能性和后果、风险级别、风险排序......
  • update left join 在MySQL和SQL Server使用方式区别
    (1)MySQL使用UPDATEhayl_service_infot1leftjoinhayl_Old_infot2ont1.CERT_NO=t2.CERT_NOsett1.AAP0112=t2.ADDRESSwheret1.AAP0112=''(2)SQLServers使用UPDATEhayl_service_infosetAAP0112=t2.ADDRESSfromhayl_service_infot1leftjoin......