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

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

相关推荐
章豪Mrrey nical16 小时前
前后端分离工作详解Detailed Explanation of Frontend-Backend Separation Work
后端·前端框架·状态模式
派大鑫wink17 小时前
【JAVA学习日志】SpringBoot 参数配置:从基础到实战,解锁灵活配置新姿势
java·spring boot·后端
程序员爱钓鱼17 小时前
Node.js 编程实战:文件读写操作
前端·后端·node.js
xUxIAOrUIII17 小时前
【Spring Boot】控制器Controller方法
java·spring boot·后端
Dolphin_Home17 小时前
从理论到实战:图结构在仓库关联业务中的落地(小白→中级,附完整代码)
java·spring boot·后端·spring cloud·database·广度优先·图搜索算法
zfj32117 小时前
go为什么设计成源码依赖,而不是二进制依赖
开发语言·后端·golang
weixin_4624462318 小时前
使用 Go 实现 SSE 流式推送 + 打字机效果(模拟 Coze Chat)
开发语言·后端·golang
JIngJaneIL18 小时前
基于springboot + vue古城景区管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
小信啊啊18 小时前
Go语言切片slice
开发语言·后端·golang
Victor35620 小时前
Netty(20)如何实现基于Netty的WebSocket服务器?
后端