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

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 即可;

相关推荐
野犬寒鸦1 天前
从零起步学习并发编程 || 第一章:初步认识进程与线程
java·服务器·后端·学习
我爱娃哈哈1 天前
SpringBoot + Flowable + 自定义节点:可视化工作流引擎,支持请假、报销、审批全场景
java·spring boot·后端
李梨同学丶1 天前
0201好虫子周刊
后端
思想在飞肢体在追1 天前
Springboot项目配置Nacos
java·spring boot·后端·nacos
Loo国昌1 天前
【垂类模型数据工程】第四阶段:高性能 Embedding 实战:从双编码器架构到 InfoNCE 损失函数详解
人工智能·后端·深度学习·自然语言处理·架构·transformer·embedding
ONE_PUNCH_Ge1 天前
Go 语言泛型
开发语言·后端·golang
良许Linux1 天前
DSP的选型和应用
后端·stm32·单片机·程序员·嵌入式
不光头强1 天前
spring boot项目欢迎页设置方式
java·spring boot·后端
怪兽毕设1 天前
基于SpringBoot的选课调查系统
java·vue.js·spring boot·后端·node.js·选课调查系统
学IT的周星星1 天前
Spring Boot Web 开发实战:第二天,从零搭个“会卖萌”的小项目
spring boot·后端·tomcat