返回顶部
首页 > 资讯 > 操作系统 >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://lsjlt.com/news/11349.html(转载时请注明来源链接)

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

猜你喜欢
  • Linux字符设备和块设备的区别
    系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。注意,它们都是以安装...
    99+
    2022-06-03
    Linux
  • linux字符设备是什么
    今天小编给大家分享一下linux字符设备是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。linux字符设备有:1、鼠标,...
    99+
    2023-06-30
  • linux字符设备包括哪些
    linux中字符设备包括:1.键盘;2.串口;3.调制解调器;linux中字符设备是指以字节流形式访问的设备,其可以提供连续的数据流,应用程序可以按顺序读取,且不支持随机存取,初始化字符设备时,设备驱动程序需要登记,且字符设备向量表中增加一...
    99+
    2024-04-02
  • linux下有哪些字符设备
    这篇文章主要介绍“linux下有哪些字符设备”,在日常操作中,相信很多人在linux下有哪些字符设备问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下有哪些字符设备”...
    99+
    2023-03-09
    linux
  • Linux字符设备架构有哪些
    本篇内容主要讲解“Linux字符设备架构有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux字符设备架构有哪些”吧!一、Linux设备分类Linux系统为了管理方便,将设备分成三种基本...
    99+
    2023-06-15
  • linux块设备是什么
    这篇文章主要介绍“linux块设备是什么”,在日常操作中,相信很多人在linux块设备是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux块设备是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-17
  • Linux内核设备驱动之字符设备驱动笔记整理
    (1)字符设备驱动介绍 字符设备是指那些按字节流访问的设备,针对字符设备的驱动称为字符设备驱动。 此类驱动适合于大多数简单的硬件设备。比如并口打印机,我们通过在/dev下建立一个设备文件(如/dev/printe...
    99+
    2022-06-04
    linux字符设备驱动 linux内核设备驱动
  • linux中块设备有哪些
    linux中块设备包括:1.硬盘;2.软盘;3.CD-ROM驱动器;4.闪存;linux中块设备是指以数据块形式被访问的设备,可以像文件一样被访问,其数据读写只能以块的倍数进行,块设备中应用程序可以随机访问设备数据,且程序可自行确定读取数据...
    99+
    2024-04-02
  • linux usb属于块设备吗
    这篇文章主要介绍“linux usb属于块设备吗”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux usb属于块设备吗”文章能帮助大家解决问题。 ...
    99+
    2023-04-13
    linux usb
  • 云服务器包括哪些功能设备和功能设备的区别
    云服务器是一种基于云计算技术的虚拟服务器,它可以提供多种功能设备和服务。以下是云服务器包括的一些常见功能设备和它们的区别: CPU:中央处理器是云服务器的核心组件,它负责处理计算任务。不同的云服务器提供不同的CPU型号和核心数,这会影响...
    99+
    2023-10-26
    功能 设备 区别
  • Linux内核设备驱动之高级字符设备驱动笔记整理
    (1)ioctl 除了读取和写入设备外,大部分驱动程序还需要另外一种能力,即通过设备驱动程序执行各种类型的硬件控制。比如弹出介质,改变波特率等等。这些操作通过ioctl方法支持,该方法实现了同名的系统调用。 在用...
    99+
    2022-06-04
    linux高级字符设备驱动 linux内核设备驱动
  • linux字符设备放在哪个目录中
    今天小编给大家分享一下linux字符设备放在哪个目录中的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2023-04-13
    linux
  • 云服务器包括哪些功能设备和功能设备的区别和联系
    云服务器是一种虚拟化服务,旨在提供高可用性、高性能、高可扩展性、高性能计算和存储服务。以下是云服务器的几个功能设备和主要的功能设备之间的区别和联系: 功能设备:包括存储系统、网络系统、服务器软件等。这些设备是用来存储数据、管理资源、提供负...
    99+
    2023-10-27
    功能 设备 区别
  • linux块设备读写的示例分析
    这篇文章主要为大家展示了“linux块设备读写的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux块设备读写的示例分析”这篇文章吧。 用户态程序通过open()打开指定的块设备,通...
    99+
    2023-06-12
  • 云服务器包括哪些功能设备和功能设备的区别与联系
    云服务器是一种虚拟化软件,允许企业将计算资源(如服务器、存储、网络等)从一处迁移到另一处,使其更加灵活、便捷地为客户提供服务。因此,云服务器通常包括以下功能和设备: 服务器:用于存储和处理客户的数据,通常采用高端机型或服务器集群来实现。...
    99+
    2023-10-27
    功能 设备 区别
  • Linux 块设备驱动代码编写
    按照ldd的说法,linux的设备驱动包括了char,block,net三种设备。char设备是比较简单的,只要分配了major、minor号,就可以进行读写处理了。相对而言,block和net要稍微复杂些。net设备姑...
    99+
    2022-06-04
    Linux 块设备驱动 linux 块设备
  • linux如何查看块设备信息
    这篇文章主要介绍“linux如何查看块设备信息”,在日常操作中,相信很多人在linux如何查看块设备信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux如何查看块设备...
    99+
    2023-02-10
    linux
  • Linux下如何识别USB设备
    这篇文章将为大家详细讲解有关Linux下如何识别USB设备,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如果在系统中插入一个设备,尤其是在桌面环境下,比如 USB 设备,它会自动挂载到一个指定目录,一般是...
    99+
    2023-06-27
  • Linux通过设备号找到设备的方法
    关于linux中的设备文件,设备文件用来为操作系统和用户提供它们代表的设备接口。所有的Linux设备文件均位于/dev目录下,是根(/)文件系统的一个组成部分,因为这些设备文件在操作系统启动过程中必须可以使用。应用程序可...
    99+
    2022-06-04
    linux 设备号 linux 设备
  • Linux系统中PCI设备和USB设备有哪些命令
    本篇内容介绍了“Linux系统中PCI设备和USB设备有哪些命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!lspciNAMElspci ...
    99+
    2023-06-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作