【Linux基础IO】从零到一:文件管理系统深度探索

前言:在linux操作系统的广阔世界中,文件管理无疑是基石之一,它支撑着整个系统的稳定运行与高效运作。无论是日常办公、软件开发、服务器管理还是大数据处理,都离不开对文件系统的深入理解和熟练操作。因此,掌握linux基础io中的文件管理技能,对于每一个linux用户、系统管理员以及开发者而言,都是至关重要的

本文旨在为读者提供一个全面而深入的Linux基础IO中文件管理的学习指南。通过本文的学习,读者将能够掌握Linux文件系统的基本原理

让我们一同踏上这段学习之旅,探索Linux文件管理的奥秘吧!


?1. 文件管理系统管理被打开的文件在磁盘中管理没有被打开的文件

管理没有被打开的文件的核心操作是:快速定位文件


文件 = 属性 + 内容

文件存放在磁盘中,方便OS/用户对文件进行管理


?2. 磁盘

【Linux基础IO】从零到一:文件管理系统深度探索

盘面俯视图:

【Linux基础IO】从零到一:文件管理系统深度探索

扇区是磁盘中的最小存储单元 — 512字节(部分4KB)


基本构成

磁盘:硬盘中真正用来存储信息的部分,外观如圆盘,中间有孔供马达运转轴通过。硬盘的磁盘数量一般至少有一个,常见的尺寸有3.5英寸、2.5英寸等,不同尺寸的磁盘适用于不同的设备磁头:负责读写数据的部件,能够感应磁盘上的磁性变化,从而读取或写入数据。磁头的质量对硬盘性能有重要影响

【Linux基础IO】从零到一:文件管理系统深度探索

磁盘存储的逻辑抽象结构

【Linux基础IO】从零到一:文件管理系统深度探索
【Linux基础IO】从零到一:文件管理系统深度探索

注意:操作系统也可以按照扇区为单位进行存取,也可以基于文件系统按照块为单位进行数据 存取

【Linux基础IO】从零到一:文件管理系统深度探索

?3. 文件管理

【Linux基础IO】从零到一:文件管理系统深度探索

关于文件:

在Linux中文件的内容和属性是分开存储的在块组中文件信息分为文件基本信息和对应文件的管理信息inode在整个分区中具有唯一性,在Linux内核中,识别文件,和文件名无关,之和inode有关


?inode

那么到底什么是inode,我们通过linux操作系统来看一下,我们先创建几个文件和目录,然后输入指令 ls -li

【Linux基础IO】从零到一:文件管理系统深度探索

文件属性多了一串数字,而这些属性就是inode,保存文件属性也是通过inode保存的


inode的基本概念

定义:inode是文件系统中的一种数据结构,用于存储文件的元信息,如文件名、文件大小、文件权限、文件所有者等。这些元信息对于文件系统的管理和操作至关重要功能:inode的主要功能是作为文件的索引,通过它可以快速定位到文件的数据块,从而实现文件的快速访问和管理

【Linux基础IO】从零到一:文件管理系统深度探索

i节点表:存放文件属性 如 文件大小,所有者,最近修改时间等Block Group:ext2文件系统会根据分区的大小划分为数个Block Group。而每个Block Group都有着相同的结构组成。政府管理各区的例子GDT,Group Descriptor table:块组描述符,描述块组属性信息 块位图(Block Bitmap):Block Bitmap中记录着Data Block中哪个数据块已经被占用,哪个数据块没有被占用

比特位的位置表示block编号,来判断对用位置block是否被使用

inode位图(inode Bitmap):每个bit表示一个inode是否空闲可用

【Linux基础IO】从零到一:文件管理系统深度探索

数据区:存放文件内容

【Linux基础IO】从零到一:文件管理系统深度探索

超级块(Super Block):存放文件系统本身的结构信息。记录的信息主要有:bolck 和inode的总量,未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息,Super Block的信息被破坏,可以说整个文件系统结构就被破坏了

【Linux基础IO】从零到一:文件管理系统深度探索

创建一个新文件主要有一下4个操作:存储属性 内核先找到一个空闲的i节点(这里是263466)。内核把文件信息记录到其 存储数据 该文件需要存储在三个磁盘块,内核找到了三个空闲块:300,500,800。将内核缓冲区的第一块数据复制到300,下一块复制到500,以此类推记录分配情况 文件内容按顺序300,500,800存放。内核在inode上的磁盘分布区记录了上述块列表添加文件名到目录

新的文件名abc。linux如何在当前的目录中记录这个文件?内核将入口(263466,abc)添加到目录文件。文件名和inode之间的对应关系将文件名和文件的内容及属性连接起来


⭐如何理解目录 目录内部直接保存文件的文件名和映射关系修改文件的本质就是修改文件的映射关系在Linux中,文件名不属于文件属性

挂载:mount

磁盘空间管理:df

代码语言:JavaScript代码运行次数:0运行复制

df -h
【Linux基础IO】从零到一:文件管理系统深度探索

?4. 软链接与硬链接


软链接

【Linux基础IO】从零到一:文件管理系统深度探索

硬链接

inode内部有引用计数,表示有几个文件名映射关系

【Linux基础IO】从零到一:文件管理系统深度探索
【Linux基础IO】从零到一:文件管理系统深度探索

硬链接与软链接的区别

硬链接

软链接

存在形式

文件副本的形式存在,但不占用实际空间

以路径的形式存在

跨文件系统

不可以

可以

对目录的链接

不允许

可以

inode编号

与原文件共享相同的inode编号

有自己的inode编号,但数据块包含目标文件的路径名

删除操作

删除其中一个文件名,不会影响另一个文件名的访问

删除原文件或目录后,软链接变为悬空链接,无法访问目标

同步性

对硬链接或原文件的任何修改都会同时反映在另一个文件上

修改软链接、硬链接和源文件,访问三者都是同步变化的(但软链接指向的内容可能因原文件删除而失效)


acm

Access 最后访问时间Modify 文件内容最后修改时间Change 属性最后修改时间


?5. 总结

在探索Linux基础IO(输入输出)中的文件管理的旅程即将告一段落之际,我们不禁要感慨这一领域所蕴含的深厚底蕴与无限可能。文件管理,作为Linux操作系统的核心功能之一,不仅仅是简单地创建、删除、移动文件那么直接,它更是系统资源管理、数据安全、乃至高效编程的基石

希望每一位学习者保持好奇心和求知欲,继续深入探索Linux的广阔天地! 希望本文能够为你提供有益的参考和启示,让我们一起在编程的道路上不断前行! 谢谢大家支持本篇到这里就结束了,祝大家天天开心!

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享