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

字符设备和块设备的区别

时间:2023-09-24 21:11:06浏览次数:39  
标签:字符 区别 单位 通常 以块 数据 设备

字符设备

  • 字符以每个字符为单位进行读写操作设备。它们是一种逐字符流式设备,字符都是独立的。

  • 例如,键盘、USB、串口设备等通常被视为字符设备,因为它们接受和发送单个字符或字节的数据。

  • 字符通常不支持随机访问,设备只能按顺序访问数据。因此,无法像文件系统那样以块为单位读取或写入数据。

  • 字符的数据传输通常是非缓冲设备的,数据直接传递到应用程序,不涉及数据缓存。

块设备

  • 块以块为单位进行读写操作设备。块通常具有固定的大小,如磁盘块的大小。

  • 例如,硬盘驱动器、SSD硬盘(SSD)、USB驱动器等通常被视为块设备,因为它们支持按块读写数据。

  • 块设备支持随机访问,可以以块但闻读取或写入数据。这使得块设备非常适合用于文件系统,因为文件系统通常以块为单位管理数据。

  • 块的数据传输通常涉及数据缓冲设备,操作系统会在内存中维护设备的数据缓冲,以提高性能。

总结

  • 字符设备以字符为单位进行操作,块设备以块为单位进行操作。
  • 字符设备适用于流式数据、块设备适用于随机访问数据。
  • 字符设备通常不涉及数据服务器,块设备通常不涉及数据服务器。
    在Linux和其他类Unix系统中,字符设备和块设备都以设备文件的形式存在于'/dev'目录下,并由相应的设备驱动程序控制。应用程序可以通过打开设备文件并使用标准的I/O操作来与这些设备进行交互。

标签:字符,区别,单位,通常,以块,数据,设备
From: https://www.cnblogs.com/doubleconquer/p/17726667.html

相关文章

  • Cookie和Session的区别
    在工作中,我们经常会遇到Cookie和Session这两个概念。对于它们的区别,也是面试中被问到的高频题目。因此,在本文中将简要介绍一下Cookie和Session之间的区别。 存储位置:Cookie存储在客户端(浏览器),而Session存储在服务器端。 安全性:cookie不是很安全,别人可以分析存放在本地的cook......
  • Linux是什么?它与Windows有什么区别?
    前言本文将讲解Linux是什么、它的应用领域、未来、优缺点以及它与Windows的区别。一、Linux是什么?Linux是一种自由的、开放源码的类Unix操作系统。目前存在着许多不同的Linux系统,但它们都使用了Linux内核。Linux可安装在各种计算机设备中,从手机、平板电脑、路由器和视频游戏控制台,......
  • golang 对字符串进行base64编解码、md5 编码
    内容来自对chagpt的咨询一、对字符串进行base64编解码base64编码要在Go语言中对字符串进行base64编码,你可以使用标准库中的encoding/base64包。以下是一个简单的示例:packagemainimport( "encoding/base64" "fmt")funcmain(){ data:="Hello,World!" enc......
  • crash —— 将flags转换成可读的字符
    将page的flags转换为可读字符串crash>kmem-g01fffe00000a001cFLAGS:1fffe00000a001cPAGE-FLAGBITVALUEPG_referenced20000004PG_uptodate30000008PG_dirty40000010PG_reclaim170020000PG_unevictable19......
  • sqlserver判断字符串是否是数字
    sql2005有个函数ISNUMERIC(expression)函数:当expression为数字时,返回1,否则返回0。这只是一个菜鸟级的解决办法,大多数情况比较奏效。eg:selectISNUMERIC('123')--结果为1但是,该函数有个缺点!eg:复制代码 SELECT  ,ISNUMERIC('-')as'-'  --1 ,ISNUMERIC('+')as'+'  -......
  • python字符串的运用
    字符串str字符串[切片位置,按几个几个来切]center(填补个数,符号)两边填补Count(计算符号,区域)计算数字endweith(判断的东西)判断结尾Startweith(同上)判断开头Find(同上)字符查找isdigit是不是整数isdecimal是不是小数"连接符".join("l")拼接字......
  • crash —— 如何查看PCI设备拓扑?
    在linux系统上用lspci可以查看PCI设备信息,crash的dev命令也提供了这个功能。crash>dev-pROOTBUSBUSNAMEffff893eaeb430000000:00PCIDEVDO:BU:SL.FNCLASSPCI_IDTYPEffff88deaf8130000000:00:00.006008086:2020ROOT_PORTffff......
  • 栈和堆的区别、FreeRTOS 中的任务栈
    栈和堆的区别、FreeRTOS中的任务栈01 堆和栈的概念堆功能堆是一块用于动态分配内存的区域,用于存储程序运行时动态创建的对象。堆的大小可以在程序运行时动态调整。特点堆的分配和释放是由程序员手动控制的。堆的分配和释放顺序的任意的,不需要遵循先进先出的原则......
  • 微信小程序 catch:tap bind:tap 的区别
    这二个都是点击事件,一个是阻止冒泡:catch:tap,bind:tap会向上冒泡。一般场景: 一个列表:1、点击行,会弹出相关详情信息,2、点击行中的按钮会执行相关的操作。 点按钮会出来二个窗口,按钮向上冒泡了,二个事件都被执行,所以会执行二次。......
  • 字符串转16进制,16进制转Base64 哈哈哈 uf65/rn+
    测试:哈哈哈uf65/rn+场景描述:对接java接口,字符串转16进制再转base64;遇到转换不一样问题;后来定位对方编码格式不对; privatevoidTest(){stringstr="哈哈哈";str=GetHexByString(str,Encoding.GetEncoding("GB18030"));//Encodi......