news 2026/4/23 9:54:55

Linux:Ext系列⽂件系统(一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux:Ext系列⽂件系统(一)

我们学完了系统文件IO,但是没有对磁盘文件做一个了解,于是这个系列将解答一下磁盘存储相关知识

作为计算机系统里 “特殊” 的硬件 —— 机械磁盘是唯一带机械设备的外设,它不像 CPU、内存那样靠纯电子元件工作,却凭借 “大容量、低成本” 的优势,成为数据持久化存储的核心。今天我们就从硬件基础到地址寻址,一步步揭开磁盘的底层秘密

下面是磁盘的图片:

一、计算机里的 “大块头”:磁盘的硬件定位

在服务器、机柜乃至整个机房的硬件体系里,磁盘始终扮演着 “数据仓库” 的角色。我们先明确几个基础认知:

  • 磁盘的身份:属于计算机外设,不是核心运算部件,这意味着它的数据传输需要经过 I/O 总线,速度远慢于内存(内存是纳秒级,磁盘是毫秒级);
  • 机械属性:机械磁盘内部有高速旋转的盘片、可移动的磁头,是计算机中唯一的机械设备 —— 这也是它 “慢” 的根源,但同时让它能以极低的成本提供大容量存储(比如 1TB 机械盘价格仅为同容量固态硬盘的 1/3);
  • 题外话:机房里的磁盘与 “磁铁”机房里的磁盘通常以 RAID 阵列形式存在,确保数据可靠性;而磁盘的核心原理是 “磁记录”—— 盘片表面的磁性材料通过不同的磁化方向存储 0 和 1,拆开磁盘(非专业勿试!)能看到里面的永磁体,这就是 “磁铁” 的由来

下面是服务器,机柜,机房的相关图片:

二、磁盘的物理结构:三维空间里的 “数据格子”

要理解磁盘怎么存数据,得先拆穿它的 “物理真面目”。一块机械磁盘的核心部件包括:盘片(platter)、磁头(head)、传动臂、主轴电机,而数据存储的最小单元是扇区(sector)(512 字节,磁盘属于 “块设备”,读写必须按扇区为单位)

我们可以把磁盘想象成多层的 “甜甜圈”,每个 “甜甜圈” 的结构对应这些关键概念:

  1. 盘片:就是 “甜甜圈” 本身,一块磁盘通常有多个盘片,每个盘片有上下两个面(都能存数据)
  2. 磁头:每个盘面对应一个磁头,负责读写数据 —— 所有磁头固定在同一根传动臂上,共进退(这是关键细节,后面寻址会用到)
  3. 磁道(track):盘面上一圈圈的同心圆,从外圈到内圈编号(0 磁道、1 磁道……),靠近主轴的最内圈是磁头停靠区,不存数据
  4. 柱面(cylinder):所有盘面上相同编号的磁道合起来就是一个柱面(比如所有盘面的 0 磁道构成 0 柱面),柱面数量等于单个盘面的磁道数
  5. 扇区:每个磁道被切成若干扇形区域,就是扇区 —— 每个磁道的扇区数量相同,这是数据存储的最小单位

磁盘容量怎么算?

记住这个公式:磁盘容量 = 磁头数 × 柱面数(磁道数) × 每磁道扇区数 × 每扇区字节数(通常512)比如一块磁盘有 2 个磁头、1024 个柱面、63 个每磁道扇区,容量就是:2×1024×63×512 = 6442450944 字节 ≈ 6.4GB

三、从三维到一维:CHS 寻址与 LBA 的诞生

知道了物理结构,接下来的问题是:怎么找到某个具体的扇区?这就引出了两种寻址方式。

1. CHS 寻址:早期的 “三维定位”

CHS 是磁头(Head)、柱面(Cylinder)、扇区(Sector)的缩写,是早期磁盘的寻址方式 —— 就像在图书馆找书:先确定楼层(磁头)、再找书架(柱面)、最后定位某一层的书(扇区)

比如要找某个扇区,步骤是:① 传动臂带动磁头移动到目标柱面;② 磁头对准目标盘面;③ 盘片旋转,让目标扇区转到磁头下方

但 CHS 有个致命缺点:容量限制。早期系统用 8bit 存磁头数(最多 256 个)、10bit 存柱面数(最多 1024 个)、6bit 存扇区数(最多 63 个),算下来最大支持容量:256×1024×63×512B = 8064MB ≈ 8.4GB(按 1MB=1048576B 算)—— 这显然满足不了现代大容量磁盘的需求

2. LBA 寻址:把磁盘 “掰直” 成一维数组

既然 CHS 有局限,工程师们想到了一个办法:把磁盘的三维物理结构抽象成一维的线性地址 —— 这就是 LBA(Logical Block Address,逻辑块地址)

为什么能 “掰直”?

我们可以做个类比:

  • 把单个柱面展开:每个柱面包含多个磁道(对应磁头数),每个磁道有多个扇区,相当于一个二维数组;
  • 把整个磁盘的所有柱面按顺序排列:就变成了一个三维数组;
  • 而计算机最擅长处理一维数组,所以我们给每个扇区分配一个唯一的 “下标”(从 0 开始),这个下标就是 LBA 地址

LBA 与 CHS 的转换:磁盘自己搞定!

OS(操作系统)不需要关心复杂的 CHS,只需要给磁盘传一个 LBA 地址,磁盘的固件(硬件电路 + 伺服系统)会自动完成转换:

  • CHS 转 LBALBA = 柱面号C × (磁头数×每磁道扇区数) + 磁头号H × 每磁道扇区数 + 扇区号S - 1(扇区号从 1 开始,LBA 从 0 开始,所以要减 1)
  • LBA 转 CHS柱面号C = LBA // (磁头数×每磁道扇区数)磁头号H = (LBA % (磁头数×每磁道扇区数)) // 每磁道扇区数扇区号S = (LBA % 每磁道扇区数) + 1

举个例子:磁头数 2,每磁道扇区数 63,LBA=1000C = 1000 // (2×63) = 1000//126 = 7余数 = 1000 % 126 = 1000 - 7×126 = 1000-882=118H = 118 // 63 = 1S = 118 % 63 +1 = 55 +1=56即 LBA=1000 对应 CHS:C=7,H=1,S=56

四、总结:磁盘寻址的本质

对我们(以及 OS)来说,磁盘就是一个 “元素为扇区的一维数组”,数组下标是 LBA 地址 —— 我们不用关心磁头怎么移动、盘片怎么旋转,只需要告诉磁盘 “我要访问 LBA=XXX 的扇区”,剩下的底层转换全由磁盘固件完成

理解这些底层逻辑,不仅能搞懂 “磁盘为什么慢”(磁头移动、盘片旋转需要时间),也为后续学习文件系统(比如 EXT4、NTFS 怎么管理扇区)打下基础 —— 毕竟所有文件的内容和属性,最终都是存在一个个扇区里的

但是你想一下,一个扇区只有512字节,也就是0.5kb,也太小了,不适合管理,在如今这种动不动就要几十上百kb的文件下,显得力不从心,所以下篇博客我们将讲解一下块,分区,组~~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 13:05:23

中文语音合成新突破:EmotiVoice高自然度实测

中文语音合成新突破:EmotiVoice高自然度实测 在短视频、有声书和虚拟偶像内容爆发的今天,用户对语音合成的要求早已超越“能听就行”。我们不再满足于机械朗读式的TTS(文本转语音),而是期待声音中带有情绪起伏、个性特…

作者头像 李华
网站建设 2026/4/20 0:35:54

数据库管理革命:Beekeeper Studio如何用AI技术重塑查询体验

数据库管理革命:Beekeeper Studio如何用AI技术重塑查询体验 【免费下载链接】beekeeper-studio beekeeper-studio/beekeeper-studio: Beekeeper Studio 是一款开源的跨平台数据库客户端工具,支持多种数据库(如MySQL, PostgreSQL, SQLite等&am…

作者头像 李华
网站建设 2026/4/18 3:19:29

文献搜索:高效检索与精准筛选的实用指南

传统的文献搜索,是我们去适应机器的逻辑:拆解关键词、使用布尔运算符(AND, OR, NOT)。而新一代的AI学术工具,正在让机器来适应人类的思维:它们能理解模糊的问题,能联想相关的概念,甚…

作者头像 李华
网站建设 2026/4/16 14:18:41

常用文献查阅的网站推荐与使用指南

传统的文献搜索,是我们去适应机器的逻辑:拆解关键词、使用布尔运算符(AND, OR, NOT)。而新一代的AI学术工具,正在让机器来适应人类的思维:它们能理解模糊的问题,能联想相关的概念,甚…

作者头像 李华
网站建设 2026/4/18 1:49:13

英文文献在哪里找:全面实用的英文文献查找方法与途径汇总

传统的文献搜索,是我们去适应机器的逻辑:拆解关键词、使用布尔运算符(AND, OR, NOT)。而新一代的AI学术工具,正在让机器来适应人类的思维:它们能理解模糊的问题,能联想相关的概念,甚…

作者头像 李华
网站建设 2026/4/18 11:50:27

macOS iSCSI启动器终极指南:从零开始构建远程存储解决方案

macOS iSCSI启动器终极指南:从零开始构建远程存储解决方案 【免费下载链接】iSCSIInitiator iSCSI Initiator for macOS 项目地址: https://gitcode.com/gh_mirrors/is/iSCSIInitiator 想要在macOS上实现专业级的远程存储访问?macOS iSCSI启动器为…

作者头像 李华