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

news2024/10/4 18:19:42

一、字符设备
字符设备就是在对某设备进行操作时,该设备的读取以字节为单位进行。字符设备的操作是通过linux系统直接调用驱动程序完成的,在驱动程序的上一层并没用文件系统。因此字符设备的特点如下:
1、以字节流的方式进行读写、一个字节一个字节的读写设备(有先后顺序)。
2、未经过文件系统,读取速度快。
3、每个字符设备都在 /dev 目录下存在一个设备文件。
二、块设备
块设备对于数据的操作是依靠数据块的形式进行的,在操作块设备时除了操作字符设备接口之外,还有专门用于操作块设备的接口。这些专门用于块设备的接口使得在块设备上可以构建文件系统,而应用程序在操作块设备时也往往通过文件系统。块设备的一些特点:
1、块设备以数据块形式进行操作。
2、块设备的数据能够随机存取。
3、操作块设备往往通过文件系统,而不是直接与设备进行通讯。
块设备的 I/O 操作方式与字符设备存在较大的不同,引入了 request_queue、request、bio等一系列数据结构。在整个块设备的I/O操作中,贯穿与始终的就是”请求“,字符设备的I/O操作则是直接进行不绕弯,而块设备的I/O操作会排队和整合。

个人的一些理解:
块设备上的文件系统进行挂载的时候:

mount -t ext4 /mnt /dev/mmcblk0p2

上面的指令,将mmcblk0的第二个分区 挂载到了 /mnt 目录下 并指定文件系统格式为 ext4。
mount的过程中,就已经将mmcblk0的块设备驱动的一系列操作和 /mnt的ext4文件操作相绑定。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/190643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊上线优惠券推荐功能,如何选品成为重中之重?

随着全球数字经济的进一步发展以及中国数字化基础设施的完善,众多中国品牌选择出海掘金道路。虽然全球经济格局的不确定因素在增多,但是总体上各国消费潜力在逐步释放,我国外贸行业也在不断迭代优化,尤其是出口跨境电商行业&#…

Python 基础语法介绍(二)

文章目录一、概述二、函数1)函数定义2)函数调用3)函数传参1、形式参数和实际参数2、关键字参数3、参数默认值4、可变参数4)函数返回值1、语法结构2、多值返回5)变量作用域1、局部变量2、全局变量【1】在主程序中定义全…

金融风控12

社交网络分析与金融反欺诈 设备指纹 一般是基于某些设备信息,通过一些设备指纹算法将这些信息组合,通过特定hsah算法得到一个ID值,作为该设备唯一标识符 常见元素有: - sim卡信息 - wifi信息 - 硬盘信息 - 内存信息 - 屏幕…

【Qt】6.QTableWidget控件、其他控件、自定义控件封装、鼠标事件

目录 QTableWidget控件 代码 widget.cpp 结果 其他控件 stackWidget栈控件 下拉框 代码 widget.cpp 结果 自定义控件封装 代码 smallwidget.h smallwidget.cpp widget.cpp 结果 鼠标事件 代码 mylabel.h mylabel.cpp 结果 QTableWidget控件 设置列数setC…

oAuth2的入门

目录一、OAuth2流程演示示例第一步第二步二、流程2.1 资源所有者2.2 客户2.3 客户2.4 认证服务器2.5 客户2.6 资源服务器三、测试一、OAuth2流程演示示例 第一步 先到gitee下载oAuth2官方提供的代码,然后导入项目 https://gitee.com/lisenaq/oauth2-example.git第…

SpringMVC(十四):SpringMVC异常处理

文章目录 SpringMVC异常处理 一、异常简介 二、异常处理具体实现

Charles 的简单使用

1.下载并安装charles官方下载地址:https://www.charlesproxy.com/download/当前最新版本是4.6.3 选择合适的安装包进行下载(windows.msi、macos.dmg、linux.tar.gz)例windows.msi:执行msi文件,选择合适的下载地址&…

【机器学习】聚类算法(理论)

聚类算法(理论) 目录一、概论1、聚类算法的分类2、欧氏空间的引入二、K-Means算法1、算法思路2、算法总结三、DBSCAN算法1、相关概念2、算法思路3、算法总结四、实战部分...一、概论 聚类分析,即聚类(Clustering)&…

js继承的6种方式

// 1 原型链继承function Per() {this.name "key";}Per.prototype new Person(); // 主要var per1 new Per();console.log(per1.age);// instanceof 判断元素是否在其他元素的原型链上// per1继承了Person的属性,返回trueconsole.log(Per1 instanceof …

java常用类:BigInteger类和BigDecimal类

java常用类型: Ineteger等包装类 String类,StringBuffer类和StringBuilder类 Math类及常用方法 System类及常用方法 Arrays类及常用方法 BigInteger类和BigDecimal类及常用方法 日期类Date类,Calender类和LocalDateTime类 文章目录引言BigInteger (大整数)常用方法B…

二分算法学习

🌼 扎着马尾的姑娘,笑容温柔很善良自在的少年 - 要不要买菜 - 单曲 - 网易云音乐 前言 本来打算做蓝桥杯2022C++A组省赛F题青蛙过河的,看到标签显示"二分",第一时间竟然想不到二分是什么,所以来学习下 目录…

传闻将与马云合作,涨了7倍的正大企业国际,还能跟风吗?

1月30日周一,港股正大企业国际逆势大涨68.35%,1月31日正大企业国际继续飙升,最高点涨超275%,收盘时涨幅达251.88%,成为2023年第一只翻倍的股票。今日早盘继续近40个点,还在持续发酵中。 消息面上&#xff…

Python+Go实践(电商架构一)

文章目录简介架构分析接口管理peeweeCURDGin获取请求参数protobuf验证表单中间件静态文件优雅退出小结简介 电商系统:后台管理前端商城 架构分析 传统的单体架构,以Django为例;之前写过flask开发微视频网站就是这样的架构 痛点分析及演进 …

Oracle数据库安装配置和卸载

Oracle数据库是一种网络上的数据库, 它在网络上支持多用户, 支持服务器/客户机等部署(或配置) 服务器与客户机是软件概念, 它们与计算机硬件不存在一一对应的关系. 即: 同一台计算机既可以充当服务器又可以充当客户机, 或者, 一台计算机只充当服务器或只充当充当客户机. Orac…

JAVA 老掉牙的面试问题 线程交替打印问题,分析实操一下

前言 新的一年了,首先是祝大家新年新气象,工作顺利,生活美满 。 万物复苏的一年, 大家都蠢蠢欲动! 金三银四快来了, 机会多不多? ‘’满大街机会‘’ 好了不啰嗦,最近有比较多的小伙…

开关电源-TL431与光耦组成的电压反馈电路-TL431工作过程分析

开关电源:TL431与光耦组成的电压反馈电路 #开关电源#开关电源最基本的要求是输入电压变化时,输出电压保持恒定,而与此相关的测试如电压调整率、负载调整率等也是衡量开关电源性能的重要指标,实现输出电压恒定的方式是反馈&#x…

【Catalyst 9000上EEM的部署方法和示例,你看明白了吗?】

新的一年 新的征程 新的课程开班 等你来学! EEM(Embedded Event Manager)作为一个自动化的脚本部署在设备上,可以根据指定的trigger来自动完成提前布置的任务,如信息的收集或特定的操作。一个完整的EEM需要包含Na…

Python学习-----起步2(变量与转义符)

目录 前言 Python变量/常量使用规则 基本数据变量类型 整形(int) 浮点型(float) 字符串类型(str) 布尔类型(bool) 转义符 习题 前言 在我们学习C语言时,我们学了很…

对象之间的拷贝

这里写目录标题Lambda 的 builderidea 自动生成插件 GenerateAllSetterMapStructDozer在开发的时候经常会有业务代码之间有很多的 JavaBean 之间的相互转化,比如 PO/DTO/VO/QueryParam 之间的转换问题,本文总结一下各种转换方法Lambda 的 builder 使用构…

有幸得到Alibaba内部Gradle实战笔记,趁机狂补

虽然一直在接触 Gradle,但对 Gradle 始终都有一些陌生感,表现在日常的开发中就是不敢随便改 build.gradle 文件,一旦 sync 出错,只会复制错误找谷歌,可是解决方案也不一定能够完美解决自己的问题。还有就是不熟悉 Grad…