【Linux】十分钟理解软硬链接

1.磁盘的物理结构

  1. 盘片:一片两面,有一摞盘片。
  2. 磁头:一面一个磁头,一个磁头负责一面的读取(磁头是一起动的)。
  3. 马达:控制盘片的旋转和磁头的往复运动

2.磁盘的物理存储结构

  1. 扇区:磁盘中存储的基本单元,512字节 or 4KB字节。一般的磁盘,所有扇区都是512字节。
  2. 磁道:相同半径上的所有所有扇区构成一个磁道。
  3. CHS定位法:(1)利用磁头确定在哪个面(2)定位磁道(3)根据扇区编号在磁道上定位扇区
  4. 注意:每个扇区的大小是相等的(最新的可能不相等),每个磁道扇区数目相同。

但是CHS是硬件上定位地址的方法,软件需要使用其它定位方式,并和硬件做好解耦工作。

3.文件系统

  • 盘片是一个圆形,怎样将物理结构和数据结构结合起来呢?
    我们可以把盘片想象成磁带一样的结构,这样就能把他想象成线型结构。

  • 一个盘由很多块结构组成,为了方便管理,将块又划分成若干区结构(相当于Windows分盘),再将区分成组
    在这里插入图片描述

  • Linux ext2文件系统,上图为磁盘文件系统图(内核内存映像肯定有所不同),磁盘是典型的块设备,硬盘分区被划分为一个个的block。一个block的大小是由格式化的时候确定的,并且不可以更改。例如mke2fs的-b选项可以设定block大小为1024、2048或4096字节。而上图中启动块(Boot Block)的大小是确定的。

在这里插入图片描述

  • Block Group:ext2文件系统会根据分区的大小划分为数个Block Group。而每个Block Group都有着相
    同的结构组成。政府管理各区的例子
  • 超级块(Super Block):存放文件系统本身的结构信息。记录的信息主要有:bolck 和 inode的总量,
    未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的
    时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个
    文件系统结构就被破坏了
  • GDT,Group Descriptor Table:块组描述符,描述块组属性信息,有兴趣的同学可以在了解一下
  • 块位图(Block Bitmap):Block Bitmap中记录着Data Block中哪个数据块已经被占用,哪个数据块没
    有被占用
  • inode位图(inode Bitmap):每个bit表示一个inode是否空闲可用。
  • i节点表:存放文件属性 如 文件大小,所有者,最近修改时间等
  • 数据区:存放文件内容

在这里插入图片描述

创建新文件需要以下四个操作:

  1. 存储属性
    内核先找到一个空闲的i节点(这里是263466)。内核把文件信息记录到其中。
  2. 存储数据
    该文件需要存储在三个磁盘块,内核找到了三个空闲块:300,500,800。将内核缓冲区的第一块数据
    复制到300,下一块复制到500,以此类推。
  3. 记录分配情况
    文件内容按顺序300,500,800存放。内核在inode上的磁盘分布区记录了上述块列表。
  4. 添加文件名到目录
    新的文件名abc。linux如何在当前的目录中记录这个文件?内核将入口(263466,abc)添加到目录文
    件。文件名和inode之间的对应关系将文件名和文件的内容及属性连接起来。

4.硬链接

4.1

硬链接形成的文件和源文件的inode数字相同,因此可以看成是原文件的别名。
硬链接只是建立了新文件名和

在这里插入图片描述

有两个硬链接链接数就是3,删掉一个就变成二。硬链接数本质是引用计数。

我们在删除文件时干了两件事情:1.在目录中将对应的记录删除,2.将硬连接数-1,如果为0,则将对应
的磁盘释放。

4.2

当我们了解了硬链接,我们就可以解释之前学过的点和点点了
在这里插入图片描述
其实一个点就是当前目录的硬链接,目录也是文件,因此一个点的硬链接数为2
两个点事是上级目录的硬链接,上级目录只包含一个目录,因此就是自己的一个点加包含目录的两个点还有自己的目录名。

不允许用户给目录建立硬链接,防止产生环路路径。

5.软链接

软链接形成的文件和源文件的inode数字不同,因此是一个独立的文件,新文件中保存的是原文件的路径。

软链接有什么用呢?
——可以当做快捷方式

在这里插入图片描述
可以看到我们想要在test2中使用test3中的文件mytest,这时候只需要建立软链接就可以了。
同样是可以直接运行的。

6.三种时间

在这里插入图片描述

change——属性修改时间
modify——内容修改时间
改内容属性也会变化,modify和change可能一起改
access——查看的时间(不一定每次查看时间都更新,因为频率高)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

诺伯里-

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

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

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

打赏作者

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

抵扣说明:

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

余额充值