【Linux】文件系统

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家

点击跳转到网站

一、前言知识

1、系统中是不是所有文件都被打开了呐?大部分文件都是没有被打开的,这些文件是被保存在磁盘(或者SSD等等),OS也需要管理磁盘文件。

2、磁盘的物理存储

3、Liunx中磁盘文件的特性:文件 = 内容+属性;其中内容和属性是分开存储的,然后内容大小是可变的,可能很大可能很小,而属性是固定大小的(即创建的结构体大小是固定的),每个文件的属性的类别都是一样,只不过是类别的内容不一样,这些属性由一个结构体管理:

其中ionde编号在分区中是唯一的,用来区分是哪个inode结构体。

4、文件名不属于文件属性,即文件名不在结构体inode中。

5、指令查看inode内容:

系统中标识一个文件用的不直接是文件名,而是inode编号。

二、文件系统的磁盘布局结构

用于管理分区的存储组织方式,核心是按 块组(Block Group) 划分存储,每个块组重复关键元数据,保障可靠性与效率

1、 inode Table(inode 表)

存储inode 结构体:记录文件 / 目录的元数据(权限、所有者、大小、数据块位置等),每个文件 / 目录对应一个 inode。

2、 inode Bitmap(inode 位图)

用每一个位(bit)标记块组内 inode 的使用状态:0 空闲、1 已占用。

管理文件 / 目录的元数据载体(inode)。

3、Data blocks(数据块)

实际存储文件内容、目录结构的区域。大小由文件系统格式化时指定(如 4KB),大文件会占用多个数据块。

4. Block Bitmap(块位图)

用每一个位(bit)标记块组内数据块(Data blocks)的使用状态:0 表示空闲,1 表示已占用。快速查询、分配、回收数据块。

5、分析

6、Group Descriptor Table(组描述符表)

描述当前块组的属性:块位图位置、inode 位图位置、inode 表起始位置等,让文件系统快速定位块组内资源。

7、Boot Block(引导块、启动块 )

Boot Block(引导块)是磁盘分区起始位置的特殊区域,独立于文件系统类型,存储引导加载程序关键片段(如 VBR、EBR ),承担系统启动 "接力" 任务,在开机时衔接硬件启动信号与内核加载流程,为系统启动做基础铺垫,定位内核、传递参数、初始化环境,是系统从硬件通电到操作系统正常运行的关键启动基石,若损坏会致系统无法启动,与文件系统后续元数据管理分区协同,先保障启动再支持用户数据存储访问 。

8、Super Block(超级块)

存储文件系统的全局信息:总块数、inode 总数、块大小、最近挂载时间等。是文件系统 "身份证",每个块组都有备份(通常块组 0 的超级块最关键)。

三、文件名

相关推荐
ajassi200032 分钟前
开源 C++ QT Widget 开发(十五)多媒体--音频播放
linux·c++·qt·开源
JosieBook2 小时前
【远程运维】Linux 远程连接 Windows 好用的软件:MobaXterm 实战指南
linux·运维·windows
文档搬运工2 小时前
Linux MInt启动速度的优化
linux
Broken Arrows2 小时前
Linux学习——管理网络安全(二十一)
linux·学习·web安全
Light603 小时前
领码方案|Linux 下 PLT → PDF 转换服务超级完整版:异步、权限、进度
linux·pdf·可观测性·异步队列·plt转pdf·权限治理·进度查询
鳄鱼杆3 小时前
服务器 | Docker应用开发与部署的实践以及阿里云镜像加速配置
服务器·阿里云·docker
羚羊角uou3 小时前
【Linux】命名管道
linux·运维·服务器
IT 小阿姨(数据库)4 小时前
PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法
linux·运维·数据库·sql·postgresql·centos
THMAIL4 小时前
量化股票从贫穷到财务自由之路 - 零基础搭建Python量化环境:Anaconda、Jupyter实战指南
linux·人工智能·python·深度学习·机器学习·金融
曾经的三心草4 小时前
Python2-工具安装使用-anaconda-jupyter-PyCharm-Matplotlib
android·java·服务器