linux——文件系统与inode

linux文件系统-优快云博客



前言

在Linux操作系统的世界里,文件系统是极为关键的组成部分,而inode则是其中一个核心概念。

在linux中一切皆文件。


一、文件系统与inode是什么?

Linux文件系统负责对存储设备上的数据进行组织、管理和存储,它提供了一种有序的方式来存储和访问文件、目录等各类数据资源。不同的Linux文件系统(如ext4、xfs等)有着各自的特点和优势,但都遵循着一些基本的原理来确保数据的有效管理。

inode,即索引节点,它在文件系统中扮演着举足轻重的角色。可以说,每个文件和目录在Linux文件系统中都对应着一个唯一的inode。inode中存储了关于文件或目录的诸多重要信息,比如文件的权限、所有者、大小、时间戳,以及最为关键的——指向文件实际数据存储位置的指针。通过inode,Linux系统能够快速准确地定位和操作文件,即便文件在存储设备上的物理位置可能发生了改变。

理解Linux文件系统与inode的相关知识,对于深入掌握Linux系统的运作机制、进行有效的系统管理、数据存储与恢复等操作都有着至关重要的意义。后续将进一步详细探讨它们的具体内容和实际应用。

二、文件系统

 

linux文件系统-优快云博客

在整个block group中最大的data block

1.Group Descriptor Gable(GDT)

描述的是整个block group中存储了多少,用了多少等基本信息。

block bitmap和inode bitmap是用来记录哪些块用了,和inode的映射,而不是记录用了多少。

2、Super Block

包含了文件系统的基本属性,记录文件系统的大小,权限,整个分区有多少个组。每个组的大小,每个组的inode数量,每个组的block数量,每个组的起始inode,文件系统的类型与名称等信息。

super Block不一定会在每一个分区中都有。

理由:如果整个文件系统的基本信息崩了,那么就会使的整个分区都会崩掉,因为个数多了,操作系统无法区分每一个分区的边境。

总结:每一个分区再被使用之前,都必须提前先将部分文件系统的属性信息提前设置进对应的分区中,方便我们后续使用这个分区或者分组

这就是先描述后组织

3、linux下增删查改对象文件语言及理解

linux系统中,一个文件,一个inode。每一个inode都有自己的inode编号(inode的位置,是以分区位单位,不能跨分区)

inode表示文件的所有属性,文件名,并不属于inode内的属性。

获取文件inode 

指令:ls -li

最前面的编号就是inode编号。

新建一个文件。系统会做什么?

1、要有路径,来确认在那个分区中。

2、分配inode,然后将对应的inode bitmap置1

3、将对应的文件属性在inode table中修改一下

4、如果有内容确认写入文件大小分配块

5、将对应的块号填入bolcks中

删除一个文件。系统会做什么?

1、找到文件的目录,确认分区

2、在对应的分区中找到inode编号

3、将inode bitmap置为零就可以了。

4、将block bitmap置零

修改一个文件。系统会做什么?

1、找到inode

2、找到inode就可以找到文件属性,将inode Table修改了,改内容在Data  block中修改就可以了。

查找一个文件。系统会做什么?

查找我们拿到一个文件路径,有了路径我们就可以找到分区,在在分区中找到文件inode。

如何拿到inode?

我们使用者从来没有关系过inode,用文件名。

4、如何理解“目录”

目录也是文件。是文件就有自己的inode,所以目录也有属性。

文件=内容+属性

那么内容是什么?

存放的是该目录下的文件命名和文件和inode的映射关系。

总结:打开文件的时候,找到文件的inode编号,然后去inode bitmap中去找编号存在嘛,存在再去inode table当中去找属性,看有什么权限是否可以访问。然后到block bitmap中找块编号,然后操作。

三、软硬链接

软链接的建立

命令: ln -s 软链接名  修改名

执行ls -li   这是查看inode指令

我们发现两个文件不是同一个inode,所以两个文件不是同一个文件。

硬链接

命令:ln 文件名 后文件名

我们发现硬链接和文件的inode是相同的。

也就是指向的同一个文件。所以文件所对文件名就不在同一个inode里面,如果一样如果一样他们的inode编号相同。

如何理解软硬链接

问题1:软链接是一个独立的文件嘛?

软链接是独立的,有独立的inode和代码块。软链接里面存放的是目标文件的路径和文件名,当我们向文件当中写入的时候,我们打印软链接文件也是向文件写入的内容。

软链接等价于快捷方式。

问题2:如何理解硬链接?

因为文件txt和硬链接的inode是相同的,所以他们的属性是相同的。

所谓的建立硬链接,本质其实是在特殊的目录的数据块中新增文件名和指向的文件的inode编号的映射。

硬链接等于对文件名重命名和拷贝。

任意一个文件,无论是目录还是普通文件,都有inode

每个inode内部,都有一个叫做引用计数器。(记录有多少个文件指向我)

删除链接指令

unlink 目标文件名

为什么要有软硬链接

我们现在知道软链接像快捷指令,当我们有的可执行文件在文件夹中藏得比较深的时候,我们我们像要将它在桌面建立一个快捷指令,那么我们就可以在桌面上建立一个软链接,软链接所指向的内容是可执行文件的目录。

例如:

我们发现打开的都是同一个目录

硬链接应用场景

所以这一个点就是dir这个目录的一个硬链接

这个数字2就代表当前有两个文件指向dir这个文件夹。 

通常用来路径定位

 但是不允许对目录建立硬链接,因为在查找的时候拿到inode会构成环路。

 


总结

硬链接:

• 概念:是文件的一个或多个文件名,通过索引节点(inode)来指向同一个物理文件内容。

• 特点:多个硬链接指向同一文件,删除其中一个硬链接不影响文件本身及其他硬链接;硬链接不能跨文件系统创建;硬链接和源文件具有相同的inode号。

软链接:

• 概念:也叫符号链接,是一种特殊类型的文件,它里面存放的是另一个文件的路径名,通过这个路径名来指向目标文件。

• 特点:软链接可跨文件系统创建;删除源文件后,软链接将失效(显示找不到文件);软链接文件的inode号与源文件不同,它有自己独立的inode。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱吃喵的鲤鱼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值