我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux字符设备和块设备的区别

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux字符设备和块设备的区别

系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。注意,它们都是以安装文件系统的方式使用的——这也是块设备的一般访问方式。
  另一种基本的设备类型是字符设备。字符设备按照字符流的方式被有序访问,像串口和键盘就都属于字符设备。如果一个硬件设备是以字符流的方式被访问的话,那就应该将它归于字符设备;反过来,如果一个设备是随机(无序的)访问的,那么它就属于块设备。
     这两种类型的设备的根本区别在于它们是否可以被随机访问——换句话说就是,能否在访问设备时随意地从一个位置跳转到另一个位置。举个例子,键盘这种设备提供的就是一个数据流,当你敲入“fox” 这个字符串时,键盘驱动程序会按照和输入完全相同的顺序返回这个由三个字符组成的数据流。如果让键盘驱动程序打乱顺序来读字符串,或读取其他字符,都是没有意义的。所以键盘就是一种典型的字符设备,它提供的就是用户从键盘输入的字符流。对键盘进行读操作会得到一个字符流,首先是“f”,然后是“o”,最后是“x”,最终是文件的结束(EOF)。当没人敲键盘时,字符流就是空的。硬盘设备的情况就不大一样了。硬盘设备的驱动可能要求读取磁盘上任意块的内容,然后又转去读取别的块的内容,而被读取的块在磁盘上位置不一定要连续,所以说硬盘可以被随机访问,而不是以流的方式被访问,显然它是一个块设备。
  内核管理块设备要比管理字符设备细致得多,需要考虑的问题和完成的工作相比字符设备来说要复杂许多。这是因为字符设备仅仅需要控制一个位置—当前位置—而块设备访问的位置必须能够在介质的不同区间前后移动。所以事实上内核不必提供一个专门的子系统来管理字符设备,但是对块设备的管理却必须要有一个专门的提供服务的子系统。不仅仅是因为块设备的复杂性远远高于字符设备,更重要的原因是块设备对执行性能的要求很高;对硬盘每多一分利用都会对整个系统的性能带来提升,其效果要远远比键盘吞吐速度成倍的提高大得多。另外,我们将会看到,块设备的复杂性会为这种优化留下很大的施展空间。
  简单来讲,块设备可以随机存取,而字符设备不能随机存取,那裸设备又该如何解释呢?
  难道裸设备,如磁盘裸设备也不能随机读取吗?那在数据库中用裸设备建一个2g的数据文件,为了存取最后一个数据块,难道ORACLE还要把前面的所有数据块都读一遍,显然不符合事实,如果这样解释呢,操作系统不能随机读取,并不意味着数据库也不能随机读取。
  块设备通过系统缓存进行读取,不是直接和物理磁盘读取。字符设备可以直接物理磁盘读取,不经过系统缓存。(如键盘,直接相应中断)

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux字符设备和块设备的区别

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux字符设备和块设备的区别

系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。注意,它们都是以安装文件系统的方式使用的——
2022-06-03

linux字符设备是什么

今天小编给大家分享一下linux字符设备是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。linux字符设备有:1、鼠标,
2023-06-30

linux下有哪些字符设备

这篇文章主要介绍“linux下有哪些字符设备”,在日常操作中,相信很多人在linux下有哪些字符设备问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下有哪些字符设备”的疑惑有所帮助!接下来,请跟着小编
2023-03-09

Linux字符设备架构有哪些

本篇内容主要讲解“Linux字符设备架构有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux字符设备架构有哪些”吧!一、Linux设备分类Linux系统为了管理方便,将设备分成三种基本
2023-06-15

Linux内核设备驱动之字符设备驱动笔记整理

(1)字符设备驱动介绍 字符设备是指那些按字节流访问的设备,针对字符设备的驱动称为字符设备驱动。 此类驱动适合于大多数简单的硬件设备。比如并
2022-06-04

云服务器包括哪些功能设备和功能设备的区别

云服务器是一种基于云计算技术的虚拟服务器,它可以提供多种功能设备和服务。以下是云服务器包括的一些常见功能设备和它们的区别:CPU:中央处理器是云服务器的核心组件,它负责处理计算任务。不同的云服务器提供不同的CPU型号和核心数,这会影响到服务器的计算能力和性能。内存:内存是云服务器的另一个重要组件,它用于存储正在运行的程序和数据。内存的大小也会影响到服务器的性能和响应速度。存储:云服务器提
2023-10-26

linux字符设备放在哪个目录中

今天小编给大家分享一下linux字符设备放在哪个目录中的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
2023-04-13

云服务器包括哪些功能设备和功能设备的区别和联系

云服务器是一种虚拟化服务,旨在提供高可用性、高性能、高可扩展性、高性能计算和存储服务。以下是云服务器的几个功能设备和主要的功能设备之间的区别和联系:功能设备:包括存储系统、网络系统、服务器软件等。这些设备是用来存储数据、管理资源、提供负载均衡和保护等功能的。在云服务器中,这些功能由集群服务器或云服务器管理平台提供。功能设备之间的联系:云服务器通常是用来提供高性能计算和存储服务的。它们的工作原理是通过虚拟...
2023-10-27

Linux内核设备驱动之高级字符设备驱动笔记整理

(1)ioctl 除了读取和写入设备外,大部分驱动程序还需要另外一种能力,即通过设备驱动程序执行各种类型的硬件控制。比如弹出介质,改变波特率编程
2022-06-04

linux块设备读写的示例分析

这篇文章主要为大家展示了“linux块设备读写的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux块设备读写的示例分析”这篇文章吧。1、 用户态程序通过open()打开指定的块设备
2023-06-12

云服务器包括哪些功能设备和功能设备的区别与联系

云服务器是一种虚拟化软件,允许企业将计算资源(如服务器、存储、网络等)从一处迁移到另一处,使其更加灵活、便捷地为客户提供服务。因此,云服务器通常包括以下功能和设备:服务器:用于存储和处理客户的数据,通常采用高端机型或服务器集群来实现。存储:用于存储客户的数据,通常采用大容量存储阵列或存储设备来实现。负载均衡:用于将客户的数据通过多台云服务器连接起来,以提高数据的可靠性、性能和可靠性。安全性控制:用于保护客户数据...
2023-10-27

Linux中如何配置键盘的设备模块

这篇文章主要介绍Linux中如何配置键盘的设备模块,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!配置键盘1. 配置键盘的设备模块对于我们常见的键盘一般有三种类型,其一为老式的五针键盘,其二为ps/2键盘,其三是usb
2023-06-16

Linux操作系统中的块设备是什么

这篇文章主要介绍了Linux操作系统中的块设备是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux操作系统中的块设备是什么文章都会有所收获,下面我们一起来看看吧。在Windows操作系统下磁盘设备似乎
2023-06-16

VOIP设备中常见的3种传真的区别

T30的传真信号通过IP网络有两种模式VBD模式:MG不对T30传真信号做任何处理直接打包在RTP协议中,以RTP流的方式发送(这种方式传真信号是同语音流,所以需要将语音编码方式协商成G711无损编码方式,以减小对传真信号的损害)T38模式
2023-01-31

怎么提高Linux下块设备IO的整体性能

这篇文章将为大家详细讲解有关怎么提高Linux下块设备IO的整体性能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。IO调度发生在Linux内核的IO调度层。这个层次是针对Linux的整体IO层次体系来说的
2023-06-16

云服务器包括哪些功能设备和功能区别

云服务器(CloudStorage)是一种基于互联网的服务器,它可以让多个用户共享一个服务器硬件资源。与传统的单独的服务器相比,云服务器具有很多优点,包括:节省空间和成本。云服务器可以在同一台服务器上同时支持多个应用程序,减少了单独的服务器占用的空间。提高性能和可靠性。云服务器通过互联网提供负载均衡和容错处理,提高了应用程序的性能和可靠性。灵活扩展。云服务器可以轻松地进行伸缩和扩展,根据
2023-10-26

如何显示Linux系统的内置模块和设备驱动列表

这篇文章主要讲解了“如何显示Linux系统的内置模块和设备驱动列表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何显示Linux系统的内置模块和设备驱动列表”吧!提问:我想要知道Linux
2023-06-12

如何使用Linux的lsblk命令列出块设备信息

这篇文章将为大家详细讲解有关如何使用Linux的lsblk命令列出块设备信息,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。ksblk简介:lsblk命令用于列出所有可用块设备的信息,而且还能
2023-06-28

怎么解析Linux设备和驱动的相遇

本篇文章为大家展示了怎么解析Linux设备和驱动的相遇,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一个开发板这一节结合设备信息集合的详细讲解来认识一下设备和驱动是如何绑定的。所谓设备信息集合,就是
2023-06-15

编程热搜

目录