文件系统,软硬链接

磁盘和磁带

  1. 磁盘和磁带的工作原理基本相同
  2. 对于磁盘,其有多个磁片,数据是存放在磁片中的一个同心圆的扇区(一般取512字节为一个单位)
  3. 当我们学习文件系统的时候,用2D的视角分析磁盘
  4. 我们可以把磁片按同心圆切割,最后连接起来的就成为磁带那种2D的线。
  5. 以连续的2D视角,方便学习。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hsoGylhk-1666880736668)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027193438911-1666870479903-1.png)]

文件系统

  1. 直接管理一个磁盘的代价很高,如果将磁盘进行分区(也就是C盘,D盘等),只要管理好一个区,其它区就可以管理好,同时因为分块的原因,区块间的耦合性非常低,维护起来也很容易。
  2. 文件系统就是OS为了管理磁盘每个分区,为每个分区内置的一种管理系统。
  3. 理解文件系统是,要学会用2D的视角分析内存,采用一种虚拟映射思想,毕竟磁盘的数据定位需要很多操作协同。
  4. 以linux下的 文件EXT系统介绍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gu85111u-1666880736678)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027204928976-1666874970293-1.png)]

Data Block和Block Bitmap

当文件写入内容时,OS会遍历 block bitmap,找到第一个为0的二进制位,使用这个编号对于的内存块。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mwOhalix-1666880736684)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027205012558.png)]

inode Table 和inode Bitmap

  1. linux下,OS并不是通过文件名识别一个文件的,而是通过一个编号来标识一个文件的,也就是inode。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gu5HUXjz-1666880736687)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027210412304.png)]

  2. inode的内存块中存放的时文件属性,和data block中的编号数组,可以看成是一种映射数组

  3. 当创建一个新的文件时,OS会遍历inode bitmap,找第一个为0的二进制位,其对应的编号就是新文件的ionde。

  4. 当删除一个文件时,inode bitmap对应二进制位变为0,block bitmap对应二进制位也变为0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UJRUgsQA-1666880736689)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027205434366-1666875275378-3.png)]

Super block

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

Group Descriptor Table:

块组描述符,描述数据块的使用情况,inode块的使用情况等资源信息

目录

  1. 目录也是一种文件,也拥有它独立的inode
  2. 目录存放的数据是:其子文件的inode和子文件名的映射关系

对文件的指令

对文件的指令本质都是对特定inode对应文件的访问与操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NYBP8vtt-1666880736692)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027213127555-1666877489276-5.png)]

touch

创建文件时,使用inode bitmap中第一个二进制位为0对应编号作为新文件的inode

cat

根据文件名与inode的映射关系,打印对应inode的data block中的数据

rm

将inode bitmap 中对应二进制位赋值为0,同时对block bitmap也继续同样的删除操作

cp

以指定文件为模板,建立新的inode,同时将这些新文件的文件名和inode放在指定的目录下

mv

将目录下的一对inode和文件名放到另外一个目录下。

回收站

回收站的本质是将一个目录下的inode与文件名移到另外一个目录下

软硬链接

软链接

  1. 软连接就像window下的快捷方式。通过window的快捷方式,即使软件的执行文件的路径不在当前路径下,也可以完成对软件的执行

  2. 软链接是新建一个文件,存放链接对象的地址。

ln -s 目标文件名 软链接的新文件名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v9Xa2hYo-1666880736694)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027215526937.png)]

硬链接

  1. 硬链接是链接对象的别名,不生成新的文件
  2. 硬链接是一种引用计数
ln -s 目标文件名 硬链接文件名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tr48gR54-1666880736695)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027215914644.png)]

删除链接

unlink +链接名

软硬链接的区别

  1. 软链接是有自己独立的inode,会创建新的文件
  2. 硬链接是链接对象的inode的一种新的映射关系—也就是别名,不会创建文件。

硬链接数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qqmle9Ux-1666880736698)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027220953848.png)]

硬链接的使用

为什么一个新建的目录它的硬链接数为2?

.就是指向当前目录,这也就是为什么一个新建的目录为什么链接数为2

如何再当前目录里面下新建一个目录,当前目录的硬链接数会变为2是因为 新建目录里面有个‘’…’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vCMnLL5Z-1666880736700)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027222453624-1666880694550-10.png)]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值