linux中的inode文件编号和软硬链接

目录

inode编码

磁盘

 扇区

目录下的data block

inode 和 文件名的关系

软硬链接

硬链接

软连接


inode编码

一个文件,对应一个inode属性节点,inode编号,linux在磁盘上存储文件的时候,将内容和属性分开存储

ls -i可以查看文件的inode编号

磁盘

要了解inode编码,我们可以从磁盘下手,linux下df -h可以查看磁盘状态

磁盘由磁盘盘片,磁头、、、等一些设备组成,我们向磁盘磁盘写入数据,本质是改变磁盘上的正负性

为了我们能够很好的使用磁盘,我们会对磁盘进行分区,将磁盘一步步的细分,盘片-盘面-磁盘-扇区,我们对磁盘的管理本质上是对一个个小的扇区进行管理

图片来源互联网,侵删

 扇区

 boot block:启动块,用于扇区是否正常的

super block:文件系统的属性信息

group descreptor table:块组描述符,块组多大,已经使用了多少,有多少个inode,占用多少,剩多少,有多少block

block bitmap:假设有10000+个blocks,10000+个bit位,比特位和特定的block是一一对应的,其中bit位为1,代表该block被占用,否则标识可用

inode bitmap:假设有10000+个blocks,10000+个bit位,比特位和特定的inode是一一对应的,其中bitmap中比特位为1,代表该inode被占用,否则表示可用

inode table:inode是一个大小为128字节的空间,保存的是对应文件的属性,该块组内,所有文件的inode空间的集合,需要标识唯一性,每一个inode块,都要有一个inode编号!一般而言一个文件,一个inode,一个inode编号

data blocks:多个4kb(扇区*8)大小的集合,保存的都是特定文件的内容

(linux在存盘上存储文件的时候,内容和属性是分开存储的)

虽然磁盘的基本单位是扇区(512字节),但是操作系统(文件系统)进行IO操作的时候是4kb

,因为多次IO影响效率,操作系统还需要解耦合,来适应不同扇区大小的磁盘

假如文件很大,我们的data block会存储其他data bloc的编号,从而找到另一个文件

目录下的data block

我们发现我们目录默认拥有读写操作,为什么呢?

在linux下,我们的目录也是一个文件,所以目录也拥有data block数据块,那么它的数据块存放的是什么呢?存的就是目录里面存放的文件的inode和文件名让他们相互产生映射关系(操作系统是不认识文件名的,只认识inode编号)

inode 和 文件名的关系

找到文件:inode编号 -> 分区特定的bg -> inode -> 属性 -> 内容

1、一个目录下,没有重复的文件名

2、目录是文件,有自己的inode,有自己的data block,存放的是文件名和inode编号的映射关系,互为key值

目录创建文件要w权限,应该我们创建文件,要在data block中存放文件名和inode

显示文件名和属性需要r属性,应该我们需要从data block中读取属性

软硬链接

硬链接

我们可以用ln命令来创建软硬链接

ln 想要建立链接的文件 生成的链接文件(ln默认是硬链接)

首先我们创建一个可执行程序test,并启动它,打印出hello world

 

然后我们建立一个硬链接,生成一个out的硬链接文件

使用ls -li查看文件的信息,第一列的编号为inode编号,红色部分是硬链接数,由于我们创建了一个硬链接,所以硬连接数变成了2,而他们的inode编号一样,说明他们属于同一个文件

 假如我们删除test文件,out文件还可以运行,inode编号也没有发生变化,硬链接数降为1,说明硬链接相当于给文件取别名,不会影响文件,只有当硬链接数降为0文件才会真正删除

 

软连接

ln -s 想要建立链接的文件 生成的链接文件(-s是建立软连接)

我们通过ln -s test out在当前路径创建一个软连接,通过ls -li发现软连接的inode编号不和链接文件相同

当我们使用out文件的时候,可以使用,但是当我们删除test建立链接的文件后再使用out文件,就会失败

 

软连接在创建快捷方式中经常被使用

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一起慢慢变强

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

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

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

打赏作者

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

抵扣说明:

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

余额充值