【lesson41】理解文件系统(2)

文章目录

  • 理解文件系统

理解文件系统

我们之前学过,一个文件可以有多个datablock块,但是如果这个文件太大了怎么办?datablock中,不是所有的datablock只能存文件数据,也可以存其它块的块号
在这里插入图片描述
inode Vs 文件名
找到文件的流程:知道inode编号->分区特定的块组->inode table块->属性和内容

那么我们怎么知道inode编号呢?
Linux中,inode属性里,没文件名的说法

预备知识:
1.一个目录下,可以保存很多文件,但是这些文件没有重复的文件名

2.目录时文件吗?
是->有自己的inode和datablock块。
而datablock块中存:文件和inode编号的映射关系。他们互为key值。
进入目录:必须有x权限
创建文件:必须有w权限
显示文件名与属性:必须有r权限
这些都是因为目录有自己的datablock块,所以要对datablock进行r\w,必须要有对应的r\w权限
inode编号是依托与目录结构

三个问题:
1.创建文件,系统做了什么
a.首先我们肯定是在目录下创建文件的。
b.其次OS根据文件系统,找到目录所对应的分区。
c.然后找到块组中的inode Bitemap找到第一个为0的比特位,将0置1后返回该比特位的位置下标的大小就是inode号。
d.再根据inode号找到inode table对该文件的信息进行初始化
e.之后再用Block Bitmap,找到对应空闲的block块号
f.再用block块号,找到空闲的block块,然后写入文件和inode的映射关系
在这里插入图片描述

2.删除文件,系统做了什么
a.根据文件名,找到inode
b.根据inode,将对应的inode Bitmap置为0
c.再将根据data block块号的BlockBitmap置为0
d.删除文件名和inode的映射关系
这样就删除了,不用清空数据,之后覆盖即可。
所以我们就可以理解文件恢复,就是根据之前的inode编号,找到对应的inode table然后恢复数据data block块。
恢复数据的前提:inode编号,没有被再次使用,inode table和data block内容没有被覆盖。

3.查看文件系统做了什么
a.根据文件名,找到inode
b.根据inode找到对应的datablock table
c.然后再显示datablock table的内容即可

软硬链接:
软:

ln -s testLink1.txt soft.link

硬:

ln testLink2.txt hard.link

创建软硬链接的过程
在这里插入图片描述
我们再根据信息看一下软硬链接的区别
在这里插入图片描述
我们看到软硬链接的本质区别:软链接有自己的inode,硬链接没有
软链接有自己独立的inode—>所以软链接是一个独立的文件
硬链接没有独立的inode---->所以硬链接不是一个独立的文件

软链接相当于Windows下的快捷键。

软链接特性:软链接的文件内容,是指向文件对应的路径
在这里插入图片描述
硬链接:
创建硬链接不是真正创建文件----->那么创建硬链接做了什么?---->就是在指定目录下,建立了文件名和指定的inode映射联系,仅此而已

属性中有个数字就是硬链接数
在这里插入图片描述
我们看一下如果删掉testLink2.txt会怎么样
在这里插入图片描述
发现硬链接数变成1.
用图帮助理解
在这里插入图片描述
当我们删除一个文件的时候,并不是立即将该文件inode删除,而是将这个文件的引用计数count–。
当引用计数count=0的时候,这个文件和文件inode才应该被删除。
引用计数count=0,表示没有文件和他关联了---->没有用户关系这个文件了!

测试以上思路,创建多个硬链接
在这里插入图片描述
我们发现确实如此

语法删除软硬链接
软链接

unlink + 文件名

在这里插入图片描述
硬链接

unlink + 文件名

在这里插入图片描述
我们创建一个目录,发现目录的引用计数是2,为什么?

在这里插入图片描述
1.首先目录本身会建立和inode的映射关系
在这里插入图片描述

2.其次目录里面的 . 文件也会建立和inode的映射关系
在这里插入图片描述
我们在test目录下再建文件夹会发现引用计数变成3
在这里插入图片描述
这是因为d1中的 … 也和test的inode建立了映射关系
在这里插入图片描述

acm
下面解释一下文件的三个时间:

  1. Access 最后访问时间
  2. Modify 文件内容最后修改时间
  3. Change 属性最后修改时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/455620.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch:基本 CRUD 操作 - Python

在我之前的文章 “Elasticsearch:关于在 Python 中使用 Elasticsearch 你需要知道的一切 - 8.x”,我详细讲述了如何建立 Elasticsearch 的客户端连接。我们也详述了如何对数据的写入及一些基本操作。在今天的文章中,我们针对数据的 CRUD (cre…

2024.2.5 vscode连不上虚拟机,始终waiting for server log

昨天还好好的,吃着火锅,做着毕设,突然就被vscode给劫了。 起初,哥们跟着网上教程有模有样地删除了安装包缓存,还删除了.vscode-server,发现没卵用,之前都是搜那个弹窗报错。 后来发现原来是vsco…

在Python中执行Linux Shell脚本详解

概要 随着 Python 的增长和普及,目前它已经成为自动化各种任务,包括执行 shell 脚本的主要工具。这篇文章将详细描述如何在 Python 中执行 shell 脚本,并提供丰富的示例帮助你理解和实践。 什么是Shell脚本? Shell脚本是一个由命令行解释器执行的文本文件。这些脚本包含控…

Python学习路线 - Python语言基础入门 - 面向对象

Python学习路线 - Python语言基础入门 - 面向对象 初识对象生活中数据的组织程序中数据的组织使用对象组织数据 成员方法类的定义和使用成员变量和成员方法成员方法的定义语法注意事项 类和对象现实世界的事物和类类和对象在程序中通过类来描述基于类创建对象 构造方法属性(成员…

大学网课线上考试答案查找? #其他#媒体#学习方法

在现代科技的帮助下,大学生们有幸能够利用各种日常学习工具来提升自己的学习效果。 1.千鸟搜题 这是一个公众号 支持文字和语音查题!!! 学习通,知到,mooc等等平台的网课题目答案都可以查询! 下方附上一些测试的试题及答案 1、下列往复泵中流量最均匀的是&#x…

智慧树答案怎么查找? #知识分享#学习方法#学习方法

大学开学,就意味着又回到了被线性代数、大学物理等测验题折磨的状态了……网站无法手动输入题干公式,初高中用过的搜题软件又都搜不到,想找个答案解析仿佛在大海捞针!不过不用怕,今天小林就把从大学攒到毕业工作都在使…

JAVA 秒杀10W/s高并发 热点商品 Redis 减库存方案

业务背景:抢茅台 ,一个商品id 可能 有 100W库存。这个id 根据redis hash后存储到一台机器上,一台redis 做递减减库存 ,能 抗住 10 W/s吗? 解决方案 :将库存同步到 多个Redis 分片库存算法。 在Lua中编写一…

阅读笔记——《RapidFuzz: Accelerating fuzzing via Generative Adversarial Networks》

【参考文献】Ye A, Wang L, Zhao L, et al. Rapidfuzz: Accelerating fuzzing via generative adversarial networks[J]. Neurocomputing, 2021, 460: 195-204.【注】本文仅为作者个人学习笔记,如有冒犯,请联系作者删除。 目录 摘要 一、介绍 二、相关…

【PDF加密】PDF文件如何设置打开密码

想要给PDF文件设置加密,打开密码是个很好的选择,每个PDF编辑器的设置方法都有些不同,不过都大同小异。今天我们给刚刚接触PDF文件的朋友再次分享pdf打开密码的设置方法。 打开pdf编辑器,我们点击工具栏中的【文件】功能&#xff…

消息中间件(消息队列)简介

MQ(message queue)消息队列,也叫消息中间件。消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。它是类似于数据库一样需要独立部…

如何利用边缘计算网关进行机床数据采集,以提高数据采集的效率和准确性-天拓四方

边缘计算网关集成了数据采集、处理和传输功能的嵌入式设备。它位于传感器和执行器组成的设备层与云计算平台之间,能够实时处理和响应本地设备的数据请求,减轻云平台的压力,提高数据处理的速度和效率。同时,边缘计算网关还可以将处…

零售行业供应商数据分发,怎样提高安全性和效率?

零售行业是我国经济发展的重要组成,零售行业包罗万象,如包括汽车零售、日化零售、快消品零售等,不同细分行业的运营模式各不相同,但大体来说,零售行业都具备最基础的供应商和零售商,供应商将商品或服务卖给…