广告
返回顶部
首页 > 资讯 > 操作系统 >Linux字符设备和块设备的区别
  • 224
分享到

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

Linux 2022-06-03 14:06:44 224人浏览 泡泡鱼
摘要

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

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

--结束END--

本文标题: Linux字符设备和块设备的区别

本文链接: https://www.lsjlt.com/news/11349.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Linux字符设备和块设备的区别
    系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。注意,它们都是以安装...
    99+
    2022-06-03
    Linux
  • linux字符设备是什么
    今天小编给大家分享一下linux字符设备是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。linux字符设备有:1、鼠标,...
    99+
    2023-06-30
  • linux字符设备包括哪些
    linux中字符设备包括:1.键盘;2.串口;3.调制解调器;linux中字符设备是指以字节流形式访问的设备,其可以提供连续的数据流,应用程序可以按顺序读取,且不支持随机存取,初始化字符设备时,设备驱动程序需要登记,且字符设备向量表中增加一...
    99+
    2022-10-21
  • linux下有哪些字符设备
    这篇文章主要介绍“linux下有哪些字符设备”,在日常操作中,相信很多人在linux下有哪些字符设备问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下有哪些字符设备”...
    99+
    2023-03-09
    linux
  • Linux字符设备架构有哪些
    本篇内容主要讲解“Linux字符设备架构有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux字符设备架构有哪些”吧!一、Linux设备分类Linux系统为了管理方便,将设备分成三种基本...
    99+
    2023-06-15
  • Linux内核设备驱动之字符设备驱动笔记整理
    (1)字符设备驱动介绍 字符设备是指那些按字节流访问的设备,针对字符设备的驱动称为字符设备驱动。 此类驱动适合于大多数简单的硬件设备。比如并口打印机,我们通过在/dev下建立一个设备文件(如/dev/printe...
    99+
    2022-06-04
    linux字符设备驱动 linux内核设备驱动
  • linux字符设备放在哪个目录中
    今天小编给大家分享一下linux字符设备放在哪个目录中的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2023-04-13
    linux
  • Linux内核设备驱动之高级字符设备驱动笔记整理
    (1)ioctl 除了读取和写入设备外,大部分驱动程序还需要另外一种能力,即通过设备驱动程序执行各种类型的硬件控制。比如弹出介质,改变波特率等等。这些操作通过ioctl方法支持,该方法实现了同名的系统调用。 在用...
    99+
    2022-06-04
    linux高级字符设备驱动 linux内核设备驱动
  • 云服务器包括哪些功能设备和功能设备的区别
    云服务器是一种基于云计算技术的虚拟服务器,它可以提供多种功能设备和服务。以下是云服务器包括的一些常见功能设备和它们的区别: CPU:中央处理器是云服务器的核心组件,它负责处理计算任务。不同的云服务器提供不同的CPU型号和核心数,这会影响...
    99+
    2023-10-26
    功能 设备 区别
  • 云服务器包括哪些功能设备和功能设备的区别和联系
    云服务器是一种虚拟化服务,旨在提供高可用性、高性能、高可扩展性、高性能计算和存储服务。以下是云服务器的几个功能设备和主要的功能设备之间的区别和联系: 功能设备:包括存储系统、网络系统、服务器软件等。这些设备是用来存储数据、管理资源、提供负...
    99+
    2023-10-27
    功能 设备 区别
  • linux块设备读写的示例分析
    这篇文章主要为大家展示了“linux块设备读写的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux块设备读写的示例分析”这篇文章吧。 用户态程序通过open()打开指定的块设备,通...
    99+
    2023-06-12
  • 云服务器包括哪些功能设备和功能设备的区别与联系
    云服务器是一种虚拟化软件,允许企业将计算资源(如服务器、存储、网络等)从一处迁移到另一处,使其更加灵活、便捷地为客户提供服务。因此,云服务器通常包括以下功能和设备: 服务器:用于存储和处理客户的数据,通常采用高端机型或服务器集群来实现。...
    99+
    2023-10-27
    功能 设备 区别
  • Linux中如何配置键盘的设备模块
    这篇文章主要介绍Linux中如何配置键盘的设备模块,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!配置键盘1. 配置键盘的设备模块对于我们常见的键盘一般有三种类型,其一为老式的五针键盘,其二为ps/2键盘,其三是usb...
    99+
    2023-06-16
  • Linux操作系统中的块设备是什么
    这篇文章主要介绍了Linux操作系统中的块设备是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux操作系统中的块设备是什么文章都会有所收获,下面我们一起来看看吧。在Windows操作系统下磁盘设备似乎...
    99+
    2023-06-16
  • VOIP设备中常见的3种传真的区别
    T30的传真信号通过IP网络有两种模式 VBD模式:MG不对T30传真信号做任何处理直接打包在RTP协议中,以RTP流的方式发送(这种方式传真信号是同语音流,所以需要将语音编码方式协商成G711无损编码方式,以减小对传真信号的损害) T38...
    99+
    2023-01-31
    区别 传真 常见
  • 怎么提高Linux下块设备IO的整体性能
    这篇文章将为大家详细讲解有关怎么提高Linux下块设备IO的整体性能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。IO调度发生在Linux内核的IO调度层。这个层次是针对Linux的整体IO层次体系来说的...
    99+
    2023-06-16
  • 在Linux系统里识别USB设备名字的4种方法是怎样的
    这篇文章将为大家详细讲解有关在Linux系统里识别USB设备名字的4种方法是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。对于初学者来说,在 Linux 系统里你必须掌握的技术之一就是...
    99+
    2023-06-16
  • 云服务器包括哪些功能设备和功能区别
    云服务器(Cloud Storage)是一种基于互联网的服务器,它可以让多个用户共享一个服务器硬件资源。与传统的单独的服务器相比,云服务器具有很多优点,包括: 节省空间和成本。云服务器可以在同一台服务器上同时支持多个应用程序,减少了单独...
    99+
    2023-10-26
    功能 区别 服务器
  • 如何使用Linux的lsblk命令列出块设备信息
    这篇文章将为大家详细讲解有关如何使用Linux的lsblk命令列出块设备信息,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。ksblk简介:lsblk命令用于列出所有可用块设备的信息,而且还能...
    99+
    2023-06-28
  • 如何显示Linux系统的内置模块和设备驱动列表
    这篇文章主要讲解了“如何显示Linux系统的内置模块和设备驱动列表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何显示Linux系统的内置模块和设备驱动列表”吧!提问:我想要知道Linux...
    99+
    2023-06-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作