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

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

相关推荐
IT_陈寒15 小时前
Python 3.12新特性解析:10个让你代码效率提升30%的实用技巧
前端·人工智能·后端
q***494516 小时前
SpringBoot Maven 项目 pom 中的 plugin 插件用法整理
spring boot·后端·maven
稚辉君.MCA_P8_Java16 小时前
Gemini永久会员 Java HotSpot 虚拟机(JVM)的优点
java·jvm·后端
Victor35616 小时前
Redis(146)Redis的Cluster的高可用性如何?
后端
Victor35616 小时前
Redis(147)Redis的Cluster的容错性如何?
后端
爱吃烤鸡翅的酸菜鱼17 小时前
Spring Boot 实现 WebSocket 实时通信:从原理到生产级实战
java·开发语言·spring boot·后端·websocket·spring
uzong1 天前
Mermaid: AI 时代画图的魔法工具
后端·架构
q***69771 天前
Spring Boot与MyBatis
spring boot·后端·mybatis
IUGEI1 天前
synchronized的工作机制是怎样的?深入解析synchronized底层原理
java·开发语言·后端·c#
间彧1 天前
GraalVM Native Image:跨平台能力与编译模式深度解析
后端