从0开始linux(23)——文件(4)磁盘定址方式

欢迎来到博主的专栏:从0开始Linux
博主ID:代码小豪

文章目录

    • CHS寻址模式
    • LBA寻址

前面我们介绍了文件管理系统,我们说,当我们使用系统调用open时,操作系统会将磁盘当中的文件加载到内存当中,创建一个struct file结构,通过struct file实现对文件的管理,比如被打开的文件会被创建文件描述符(fd),有文件缓冲区等等,这些操作都是由文件系统实现的,而针对于管理内存当中的文件的文件系统,我们称其为内存级文件管理系统。

被打开的文件,会被加载到内存中,而未打开的文件都是在磁盘当中,它们都有各自的路径,以便我们找到对应的文件,那么我们有没想过一件事情,未打开的文件的路径是谁维护的?为什么内存级文件管理系统可以在磁盘当中轻松的找到文件?这是因为不仅仅要管理内存当中被加载的文件,也要管理好磁盘当中的文件,而执行这些操作的,就是磁盘级文件管理系统。

CHS寻址模式

CHS寻址模式是根据机械硬盘的机械结构的特性建立的,因此我们要先了解机械磁盘的保存数据的原理。

首先我们的计算机只能读取二进制,在我们的内存或者cpu当中,二进制的表现形式为高低电平,即高电平为1,低电平为0。而磁盘则是通过磁性来表现二进制。
在这里插入图片描述
磁性分为正负极,也是一种二进制的体现,比如正极为1,负极为0。
在这里插入图片描述
这是我们机械磁盘的内部结构,其中红圈画中的部分,就是机械磁盘用来保存数据的盘面,通常称之为磁面,我们可以将这个磁面视为N个小磁铁的集合,每个小磁铁都有其正负的磁场,通过这些磁场的磁性,用于记录二进制数据。
在这里插入图片描述

磁盘的运作原理如下:主轴旋转带动磁盘转动,而磁头的主要作用是定位,以及读写数据的作用。这个工作原理有点像是留声机,唱片负责记录声音的数据,而唱针则是负责读写这些声音的数据,如果磁盘造成了损坏,那么磁盘上的数据也会造成对应的丢失问题。

磁头是可以移动的,如我们图中黑色笔迹所示,由于磁盘会转动,相应的磁头也会与磁盘进行相对运动,其运动轨迹是一个圆。而磁头该可以移动,因此会在磁盘上留下多个圆轨迹。我们将这些轨迹称为磁道,而磁道上又有着磁盘数据。
在这里插入图片描述

我们的磁头可以移动,每次移动就相当于来到了不同的磁道,而不同的磁道又有着不同的数据,因此如果我们想要在磁盘当中找到我们想要的数据,首先要让磁头定位到正确的磁道。
在这里插入图片描述
而一个磁道可以保存非常多的数据,为了精准找到我们想要的数据,我们还要继续将磁道划分下去,根据规定,我们将磁道上512B的数据,称为一个扇区,即扇区是磁盘的基本单位。不同的磁道,其磁道上的扇区的数量不一定相等,但是扇区的大小一定是512B。
在这里插入图片描述
综上所述,一个磁面可以划分N个磁道,而每个磁道都有其对应数量的扇区,每个扇区的大小是512B,因此一个磁面可容纳的数据为:

磁面大小=磁道×磁道的扇区总数×512B

一个磁盘,可以有多个磁片,而每个磁片,都有正反两磁面,而正面能保存数据,反面也能,因此对应的,每张磁片都有正、反两面磁头。因此一个磁盘的大小为:磁面个数×磁面大小,扩展开来即

磁盘大小=磁面个数×磁道×磁道的扇区总数×512B

在这里插入图片描述

关于机械磁盘的机械结构,我们已经简单的了解完了,但是CHS到底是什么?我们还没有搞清楚,首先,我们要知道,CHS其实是一个逻辑结构,其中C代表柱面(Cylinder),H代表磁头(Heads),S代表扇区(sector)。扇区和磁头我们都清楚是什么样的,那么柱面是什么呢?

在前面剖析机械硬盘的结构时,我们知道磁道是磁头在磁面上旋转一周的运动轨迹,但是磁面不止一个,这也说明了所有磁片中半径相同的同心磁道也不止一个,我们将在与主轴相同半径的磁道的集合,我们称其为柱面。
在这里插入图片描述
柱面是一个逻辑上的概念,即将每个磁面上,相同半径的同心磁道,在逻辑上构成柱面。所以通过柱面,我们可以在逻辑上将机械磁盘看成是一个由柱面构成的硬件设备,有点像这样:

在这里插入图片描述
OK,根据这种方式组成的磁盘结构,其构成是这样的:
(1)每个磁盘,有多个柱面
(2)每个柱面,多个磁头(磁道)
(3)每个磁头(磁道),有多个扇区

因此磁盘的容量=磁头数(磁道数)×扇区数×柱面数×512B

根据这种概念,我们可以用下图,画出一个磁盘的所有空间分布:
在这里插入图片描述
现在我们将文件保存在磁盘当中,一个文件最少会占用一个扇面或者多个扇面。因此所谓的再磁盘当中找到文件,实际上是在磁盘当中找到文件对应的扇区。

因此如果我们要在磁盘当中定位某个文件,先找到文件所在的柱体,再找到文件所在磁头,最后找到文件所在的扇面,这样我们相当于是在磁盘当中,找到了文件。这种通过柱体,磁头,扇面寻找文件所在磁盘的方式,我们就称为CHS寻址模式。

LBA寻址

但是我们的磁盘并非都是机械硬盘,比如我们现在的家用pc更多使用的是固态硬盘,固态硬盘的结构与机械硬盘完全不同。其采用是电子存储芯片,而非磁片。
在这里插入图片描述
因此使用CHS模式来描述磁盘结构并不通用,因此我们有没有更通用的磁盘结构呢?我们回顾一下CHS的结构,其实用C/C++的角度来看,我们会将这种结构称为三维数组,而三维数组是可以展开成一维数组的。展开后的结构如下:

在这里插入图片描述
但是一个扇区才512B,对于我们现在一个硬盘动不动512GB,1TB的情况来看,扇区实在是太小了,拆分的太细其实也是不方便管理的,因此我们设计用块来代替扇区作为基础单位,通常一个块会是1KB,2KB,4KB的大小,比如linux系统就以4KB大小作为一个块的大小,因此在linux系统当中,其磁盘结构则是这样:
在这里插入图片描述
通过这种转换方式,我们的磁盘结构就从CHS形式的三维数组,变成了以块为单位的一维数组。

这种以块为单位,划分磁盘空间的定址方式,我们将其称为LBA定址,LBA的全称为:Logical Block Address(逻辑区块地址),即在逻辑上将磁盘空间划分成一个个的块。

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

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

相关文章

wireshark工具使用

复制数据 1.右键展开整帧数据 2.复制“所有可见项目” mark标记数据 标记: 跳转: 保存成文件: 文件–>导出特定分组—>Marked packets only

固定宽度--文字多少不一样--需要文字充满整个宽度

固定宽度–文字多少不一样–需要文字充满整个宽度 1.场景–登陆页面 这样显示显然不太行 那我们想要是这种情况吗–用户名和密码都充满真个宽度的div 2.代码实现—其中一个重要属性最为关键 text-align-last: justify css <style>.user{width:60px;background-colo…

艾体宝产品丨加速开发!Redis Copilot智能助手上线

我们最近发布了 Redis Copilot&#xff0c;旨在帮助开发者更加高效地使用 Redis 构建应用。提升应用性能&#xff0c;简化构建过程是我们不懈的追求。Redis Copilot 正是为此而生的人工智能助手&#xff0c;助力开发者迅速掌握 Redis 的使用技巧。现在您可以在 Redis Insight 中…

4种鼓励创业创新的方法

随着市场趋于饱和&#xff0c;许多企业&#xff0c;尤其是初创企业&#xff0c;很难在竞争中保持领先地位。技术为企业彻底改变其营销和管理策略铺平了道路。另一个经过实践检验的成功渗透特定市场的方法是在办公室内部激发创新&#xff0c;从员工到品牌皆如此。 那么究竟如何…

Spark的yarn集群环境搭建

一.为什么要搭建yarn集群 为什么要将Spark的程序运行在YARN上&#xff0c;不运行在自带的 Standalone集群上&#xff1f; 1、统一化资源管理 Standalone是Spark专用的资源管理集群&#xff0c;只能用于运行 Spark程序 YARN是功能的分布式资源管理平台&#xff0c;可以运行各种分…

【react使用AES对称加密的实现】

react使用AES对称加密的实现 前言使用CryptoJS库密钥存放加密方法解密方法结语 前言 项目中要求敏感信息怕被抓包泄密必须进行加密传输处理&#xff0c;普通的md5加密虽然能解决传输问题&#xff0c;但是项目中有权限的用户是需要查看数据进行查询的&#xff0c;所以就不能直接…

登录功能设计(php+mysql)

一 登录功能 1. 创建一个登录页面&#xff08;login.php&#xff09;&#xff0c;包含一个表单&#xff0c;用户输入用户名和密码。 2. 在表单的提交事件中&#xff0c;使用PHP代码处理用户输入的用户名和密码。 3. 首先&#xff0c;连接MySQL数据库。然后&a…

ReactPress 是什么?

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎Star。 ReactPress 是什么&#xff1f; ReactPress 是使用React开发的开源发布平台&#xff0c;用户可以在支持React和MySQL数据库的服务器上架设属于自己的博客、网站。也可以把 ReactP…

ai外呼机器人的作用有哪些?

ai外呼机器人具有极高的工作效率。日拨打成千上万通不是问题&#xff0c;同时&#xff0c;机器人还可以快速筛选潜在客户&#xff0c;将更多精力集中在有价值的客户身上&#xff0c;进一步提升营销效果。183-3601-7550 ai外呼机器人的作用&#xff1a; 1、搭建系统&#xff0c…

福禄克DTX,DSX系列内置标准以及生成的测试报告如何解读?

今日,接到一些朋友的询问?虽然使用了很长一段时间的FLUKE DSX-5000或者DSX-8000,但是对于测试标准和测试生成的报告一知半解,借此咱们一块屡屡清楚。 1,经常有的朋友拿到设备后,第一时间就问,咱们福禄克内置的标准的多少?我线的参数(被测的铜缆)达到多少db,才能算过…

我与Linux的爱恋:磁盘的存储管理

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;Linux的学习 文章目录 磁盘的存储管理 磁盘的存储管理 在我们日常生活中&#xff0c;我们要打开很多文件(要打开这个文件需要先找到这个文件->要在磁盘中先找到->通过文件路径文件…

git原理与上传

言&#xff1a; git是一个软件&#xff0c;gitee/github是一个网站&#xff0c;这里有什么联系吗&#xff1f;我们身为一个程序员不可能不知道github&#xff0c;但是毕竟这是外国的网站&#xff0c;我们不翻墙的情况下&#xff0c;是无法访问的(或者就是太慢了&#xff0c;或…

Python基础学习_01

目录 1、注释 2、数字和数学计算 3、变量 4、字符串 5、打印 6、本节总结 1、注释 • 什么是注释&#xff1f; 1&#xff09;注释就是用自然语言向代码阅读者说明代码的功能和意义 • 注释 1&#xff09;单行注释使用 # 为开头&#xff1b;并且不能换行…

操作系统学习笔记-3.2虚拟内存

文章目录 虚拟内存请求分页管理方式页面置换算法最佳置换算法工作原理OPT 算法的示例最佳置换算法的优点和缺点 先进先出置换算法最近最久未使用时钟置换算法时钟置换算法的工作原理&#xff1a;算法的步骤&#xff1a; 改进型时钟置换算法改进型时钟置换算法的特点&#xff1a…

vue3 封装aixos

1. Vue3 封装 aixos 并且 使用 aixos 请求数据 npm install axios # 或者 yarn add axios 2. Vue3 封装 aixos 并且 使用 aixos 请求数据 封装 axios可以帮助我们更好地管理 HTTP 请求&#xff0c;例如添加统一的基础URL、请求头、拦截器等功能。 下面是封装 axios的一个示…

量子计算机能解决哪些问题?

经典与量子难度对比 在深入示例之前&#xff0c;我们首先讨论一下如何研究和分类各种问题的难度。有些问题可以在经典计算机上轻松解决&#xff0c;我们不需要量子计算机来解决它们。另一方面&#xff0c;有些问题非常困难&#xff0c;需要量子计算机来解决。一个著名的例子是寻…

中电金信:院长寄语|关于源启AI+行动的思考

中国电子首席科学家 中电金信研究院院长 况文川 自2022年8月19日发布以来&#xff0c;源启已经走上了她第三年的征途。今天&#xff0c;源启已经成为公司战略的支点&#xff0c;中电金信正致力于用“源启底座”“源启咨询”“源启应用重构”三位一体的方式来赋能千行百业数智化…

海康私有化视频平台EasyCVR视频分析设备平台流媒体协议RTMP、HTTP-FLV、HLS的简单对比

在当今的数字化世界中&#xff0c;视频流协议的选择对于确保流畅、高效的视频传输至关重要。随着互联网技术的快速发展&#xff0c;直播和视频点播服务已经成为人们日常生活中不可或缺的一部分。无论是安防监控、在线教育、远程会议还是娱乐直播&#xff0c;用户对于视频流的实…

详解使用python读写csv,以及将csv数据写入数据库

csv文件 csv介绍 CSV&#xff0c;也即Comma-Separated Values&#xff0c;是一种用于存储表格数据的纯文本文件格式&#xff0c;其中每一行代表一条记录&#xff0c;记录中的各个字段由逗号分隔。 姓名,年龄,性别 张三,25,男 李四,28,男 王五,22,男 六六,29,女 子柒,28,女 对…

OpenMVS OpenMVG 笔记

OpenMVS & OpenMVG 笔记 OpenMVS 和 OpenMVG 都是计算机视觉中用于三维重建的开源库。两者都可以实现从图像集合中计算出相机位姿和三维点云&#xff0c;但它们的重点略有不同。 OpenMVG 主要关注于从输入图像集合中提取稠密的特征匹配&#xff0c;通过这些匹配计算相机的…