【Linux】理解Linux下的文件系统(ext2、软 / 硬链接)

文件系统

一个简单的 Linux 指令

ls -l

  

依次是:模式、硬链接数、文件所有者、组、大小、最后修改时间、文件名

                                        

stat redirect.c

可见,我们使用 stat 命令会看见更多的文件相关信息,其中有几个信息我们需要详细了解;

inode

                 

Linux ext2文件系统,上图为一个磁盘文件系统图(内核内存映像会有所不同),磁盘是典型的块设备,硬盘区被划分为若干个block。一个block的大小是由格式化的时候确定的,并且不可以更改。

Block Group

ext2文件系统会根据分区的大小划分为数个 Block Group ,而每个Block Group都有着相同的结构组成;

Super Block(超级块)

存放文件系统本事的结构信息,主要有:block 和 inode 的总量,未使用的 block 和 inode的数量,一个 block 和 inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息;

Group Descriptor Table(GDT 块组描述符)

描述块组属性信息;

Block Bitmap(块位图)

记录着Data Block中哪个数据块已经被占用,哪个数据块没有被占用;

inode Bitmap(inode位图)

每个bit 表示一个inode 是否空闲可用;

inode Table(i节点表)

存放文件属性,如:文件大小、所有者、最近修改时间等;

Data blocks(内容区)

存放文件内容;

进行如下操作:

如图所示:

                    

创建一个新文件主要有以下4个操作:

1、存储属性

内核先找到一个空闲的 i 节点(图中263466),内核把文件信息记录到其中;

2、存储数据

该文件需要存储三个磁盘块,内核找到了三个空闲的块:300,500,800。将内核缓冲区的第一块数据复制300,下一块复制到500,以此类推;

3、记录分配情况

文件内容按照顺序300,500,800存放,内核在 inode 上的磁盘分布区记录了上述块列表;

4、添加文件名到目录

硬链接 / 软连接

软连接文件(.hard):是一个单独的文件,通过记录 源文件路径 进而访问到源文件

硬链接文件(.soft):跟源文件没有区别,通过相同的 inode 节点访问数据

                  

删除源文件:

  • 硬链接文件,连接数 -1 ,内容不变;
  • 软链接文件失效;

区别:软链接文件可以跨分区建立,硬链接不可以;软链接文件可以对目录文件创建,硬链接不可以;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_ClivenZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值