当前位置: 首页 > news >正文

轻松理解操作系统 - Linux 文件系统的心脏是什么?

在前面两期,我们分别了解了 Linux 文件系统的重要组成部分:inode 和 数据块。

那 inode表 和 数据块 的信息总要有个“管理者”来进行总体的管理和提供找到它们的入口吧,这时候“超级块”就扮演了这个“管理者”的角色。

一、文件系统的“管家” - 超级块

1、位置

位于文件系统的开头,是文件系统的第一个块。

2、包含的信息

包含了文件系统的各种重要信息,如文件系统的大小、每个块的大小、inode表的大小、文件系统的布局等。

可能包含:

文件系统的名称、创建时间、最近修改时间等元数据信息,以及文件系统的挂载状态、读写状态、错误状态等状态信息。

二、除了提供信息外它还有什么作用呢

1、识别与管理文件系统:

操作系统通过读取超级块来识别文件系统的类型、结构和状态,从而正确地读取和写入数据。

2、提供文件系统操作接口:

超级块中包含了与文件系统操作相关的函数指针(,这些函数指针指向了实现文件系统各种操作的函数。

3、维护文件系统的一致:

超级块包含了文件系统的一些状态信息,如挂载状态、读写状态等。

这些信息对于操作系统来说非常关键,它们可以帮助操作系统及时发现和处理文件系统的问题,如磁盘损坏、文件系统损坏等。

通过维护这些信息的一致性,操作系统可以确保文件系统的稳定性和可靠性。

三、这么关键的块不拍损坏吗?

它当然是怕损坏的,因此它采取了一些安全措施

1、冗余机制

将多个超级块内容保存到硬盘中的不同区域,当其中一个超级块出现问题时,操作系统会自动采用另外一个超级块。

2、定期刷盘

操作系统在启动后,会将超级块的内容复制到内存中,并在运行过程中周期性地使用内存中的最新内容来更新硬盘上的超级块。

用于确保超级块数据的一致性和可靠性。

3、数据校验

某些文件系统可能会采用一些算法对超级块数据进行校验和计算,并将校验和存储在超级块中。

在系统启动或运行过程中,重新计算超级块数据的校验和,并与存储的校验和进行比较,以验证超级块数据的完整。

四、它与 inode表、数据块之间的关系是什么

1、inode表

超级块中包含了 inode 表的大小和位置信息,这使得操作系统能够找到并访问inode 表。

超级块通过管理 inode 表,间接地管理了文件系统的所有文件和目录的元数据。

2、数据块

inode 中包含了指向文件数据块的指针,这些指针指向了实际存储文件数据的数据块。

对于大文件,数据块中也会保存指向其他储存该文件的数据块的指针。

五、讲了这么多,都是存储在硬盘上的文件系统结构啊,读取和写入性能怎么办?

超级块本身会被读取到内存中来加快读写速度

Linux 文件系统中还有一些其他的数据结构是存在于内存之中的,例如目录项、打开文件表等等


六、既然硬盘中存在的主要结构已经聊完了,那下期就来聊聊下用于加快文件系统读写性能的内存数据结构


http://www.mrgr.cn/news/64289.html

相关文章:

  • BES2600WM---HiLink RM56 EVK
  • UE5相机系统初探(一)
  • C语言---程序设计练习题目及学习方法2
  • TOEIC 词汇专题:旅游计划篇
  • uniapp下载文件的方案,包括H5,App方案解决办法
  • 代理IPv6知识分享课堂二
  • 分享一下面试中常用的10 个面试点全解析,面试成功的秘诀
  • go语言回调函数的使用
  • 抓包sslpinning绕过
  • 代码随想录第十八天
  • C语言之写一个修改数组内容的函数
  • 优化外贸管理 解锁全球业务流畅双效
  • 原子操作(atomic operation)
  • Kotlin协程suspend的理解
  • 【JavaEE初阶】网络原理(4)
  • Linux云计算 |【第五阶段】CLOUD-DAY10
  • 国产操作系统卖疯了!最营收7.84亿,最低1.5亿
  • 每日OJ题_牛客_排序子序列_模拟_C++_Java
  • 2022美亚杯复现(部分)
  • 【系统架构设计师】2024年上半年真题论文: 论模型驱动架构设计方法及其应用(包括解题思路和素材)
  • 034_Structural_Transient_In_Matlab结构动力学问题求解
  • 学习GCC
  • 速通一些常见的神经网络
  • 高德地图如何标注店铺名称和位置信息?
  • vue中的nextTick() - 2024最新版前端秋招面试短期突击面试题【100道】
  • 用Python语言,利用 tk包,实现选择2个目录,进行COPY功能