深入理解文件系统和软硬链接

1.再谈文件系统

下面的这个图我觉得对于我们建立对于文件系统的整体的认识是非常重要的,从上到下是环环相扣的,分别是:

1)磁道,扇区,柱面之间的关系的理解

2)扇区作为数组里面的数据的时候,实际上这个就是 LBA 地址,就是通过下标找到对应的扇区

3)几个扇区可以组成一个块

4)不同的块我们可以拼接成为一个分区,也就是一个分区里面可以包含很多块

5)针对于分区里面,我们可以划分不同的组,每一个组内部的事情搞清楚了,那么进行迁移,这个分区以及其他的分区我们都搞清楚了;

下面我们了解一个组里面的具体的属性信息:

1)disk 就是磁盘,磁盘里面存在着不同的分区,比如我们的笔记本上面的 CD 实际上就是不同的分区,只有一块磁盘实际上

2)然后就是针对于一个分区里面有很多组,每一组里面有很多的属性

3)重点标注的 GDT 以及 inode,inode table,实际上 inode 代表的就是一个文件的相关的属性的即可,table 表示的是聚集的所有的文件的 inode;

4)两个位图我们需要注意

block 位图:记录我们的 block 里面的块占用的情况;

inode 位图:记录的是我们的文件 table 里面 inode 的空间是不是可用的;

我们想要删除文件,只需要把这个 inode 问题里面的指定数值进行修改即可,我们想要删除数据,只需要把这个 block 问题里面的指定数值进行修改即可,这样我们的系统就找不到了;

2.关于目录

磁盘上面的文件系统,只认识 inode,至于上面说的这个目录,实际上在 linux 里面也是被映射成为 inode,也就是说,目录也是存在对应的 inode 和数据的;

之所以我们使用文件名,而不是 inode,是因为我们使用的文件名和 inode 之间存在设映射关系,我们通过输入文件名字,系统会自动进行这个映射关系的解析,找到这个对应的 innode 属性信息,找到对应的文件;

文件名没有保存到这个 inode 里面,实际上这个文件的名字保存在这个文件的所属的目录的数据内容 block 里面的某一个块里面呢;

3.软链接和硬链接

下面的这个是相关的笔记,软链接和硬链接相关的:

1)软链接类似于我们的 windows 上面的快捷方式

2)硬链接实际上就是建立新的映射关系,因为硬链接和原来的文件的 inode 是一样的,不是独立的文件,主要的作用就是对于文件进行备份;

其次就是我们在 linuxlimiande.和..表示的是当前文件夹和上一个文件夹,实际上都是硬链接,我们可以通过这个判断出来这个文件夹下面的文件的数量根据这个打印出来的数据减去 2 即可;

相关推荐
绝无仅有32 分钟前
京东面试题解析:SSO、Token与Redis交互、Dubbo负载均衡等
后端·面试·github
懒惰蜗牛33 分钟前
Day44 | J.U.C中的LockSupport详解
java·开发语言·后端·java-ee
Mintopia41 分钟前
🧠 Next.js 还是 Nuxt.js?——当 JavaScript 碰上命运的分叉路
前端·后端·全栈
nexttake2 小时前
5.go-zero集成gorm 和 go-redis
开发语言·后端·golang
Victor3562 小时前
Redis(84)如何解决Redis的缓存击穿问题?
后端
Victor3562 小时前
Redis(85)Redis缓存与Memcached缓存有何区别?
后端
lang201509282 小时前
Spring Bean作用域全解析
java·后端·spring
IT_陈寒2 小时前
Vue3性能提升30%的秘密:5个90%开发者不知道的组合式API优化技巧
前端·人工智能·后端
程序员爱钓鱼7 小时前
Python编程实战 · 基础入门篇 | 元组(tuple)
后端·python·ipython
程序员爱钓鱼7 小时前
Python编程实战 · 基础入门篇 | 列表(list)
后端·python·ipython