【hello Linux】理解文件系统

news2024/10/7 0:21:01

目录

创建文件的过程:

删除文件的过程:

创建目录的过程:

查看inode编号:

硬链接

软链接



Linux🌷 

我们知道文件所有数据 = 文件内容 + 文件属性信息;

未打开的文件是被存放到磁盘/固态硬盘中的;

 在这里是以磁盘为例进行说明:

磁盘是以扇区为单位进行读写的;

确定磁盘具体写入位置要知道:盘面(磁头)、磁道、扇区;

我们试着可以将磁盘想象成线性的结构:

要确定磁盘位置:盘面、磁道、扇区;

线性结构:类似数组下标;

因此我们在这要进行地址转化,类似于虚拟地址和物理地址的转换;

磁盘太大,为了方便管理;

1. 分区:将磁盘划分为几个小的区域;

2. 格式化:如果进行格式化,相当于给分区中写入了文件系统(原来的数据不存在);

为了更加方便管理,我们将分区更细小化;

 

创建文件的过程:

一个文件与一个inode编号相对应,首先在inode位图中找到第一个为0的,将其修改为1,在block位图中找到第一个为0的,将其修改为1,在inode块中写入文件所有信息,并且记录对应block块的位置,此后便可以进行数据写入操作。

删除文件的过程:

删除文件很简单,将文件对应inode的位图位置修改为0即可。

我们可以使用debugfs进行文件的恢复功能。

如果想要恢复最好不要在进行操作,避免将该文件inode位图分配给其他文件。

创建目录的过程:

目录也是文件,创建目录也如上述创建文件过程一般,不过目录的数据块中存放的是:

文件名与inode编号的映射关系!

查看inode编号:

ls命令中加上-i选项则可以查看文件inode编号;上述红色框框起来的便是文件inode编号;

Linux中:

文件名在系统层面是没有意义的 ,是给用户使用的。

Linux中真正标识一个文件,是通过文件的inode编号识别的!

一个文件一个inode!

硬链接:

OS找磁盘上的文件并不是通过文件名,而是inode编号

其实在linux中可以让多个文件名对应于同一个inode。

这便是使用硬链接的方法。

ln 源文件名 目标文件名

hard  和 myfile.c  的链接状态完全相同,他们被称为指向文件的硬链接。
内核记录了这个连接数, inode 655831 的硬连接数为 2
硬链接的本质:
在文件所在的目录中添加:新文件名和inode编号的映射关系;
我们在删除文件时干了两件事情:
1. 在目录中将对应的记录删除(文件名和inode编号的映射关系);
2. 将硬连接数 -1 ,如果为 0 ,则将对应的磁盘释放。

软链接:

ln -s 要链接的文件名 链接之后的文件名

软链接的使用场景:

如果在当前目录下访问一个文件特别麻烦,我们便可以建立软链接;

相当于Windows中的快捷方式。

经过查看,我们发现软链接是有自己独立的inode的!因此软链接是一个文件,数据块里面存储

(指向文件的所在路径 + 文件名)。 

补充:

我们新创建了一个文件,发现该文件的硬链接数为1;

新创建了一个目录,发现该目录的硬链接数为2 ;

这是因为该目录中的 . 文件也表示该目录;

它们的 inode 编号是一样的。

在mydir的当前目录下创建了tmp目录,mydir的链接数变为了 3;

光数该文件的别名便可知道;

1. mydir

2. mydir目录下的 . 

3. mydir目录下的tmp目录下的 ..

总共三个!!!

坚持打卡!😃

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0201概述-网关Gateway-微服务架构

文章目录 1 前言2 项目引入3 术语4 工作原理5 配置示例5.1 简洁配置5.2 展开配置 6 Predicate7 GatewayFilter7.1 StripPrefix GatewayFilter7.2 RequestRateLimiter GatewayFilter① pom 依赖② 配置按照请求IP 的限流 6 Global Filters7 网关超时配置7.① 配置全局路由超时时…

用java 实现二叉树创建

二叉树是数据结构中的一个重要的概念,二叉树的概念最早由 Linus Torvalds在1958年提出。他给出了一个树形数据结构,可以用来存储二叉树。每个节点的左子树和右子树都是空,中间层是子树。在一个给定的空间中,每一个节点都有两个左右…

Adobe认证证书含金量

当今数字时代,Adobe软件已经成为了许多人工作和创造的必备工具。为了证明自己在使用Adobe软件方面的专业能力,许多人选择参加Adobe认证考试并获取Adobe认证证书。 那么,这些证书的含金量究竟如何呢? 首先,需要指出的…

C++:Article:链接器(二):符号决议

链接器 1. C源文件都有些什么1.1 . 目标文件里有什么 2. 符号表 Symbol table2.1. 符号表的位置2.2. 符号的决议2.3. 符号决议过程 3. 实例说明3.1. 意外出现3.2 总结排查 在上篇文章中,我们介绍了 链接器基本概念,我们知道所有的应用程序否是连接器将所…

基于Python长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析

植被是陆地生态系统中最重要的组分之一,也是对气候变化最敏感的组分,其在全球变化过程中起着重要作用,能够指示自然环境中的大气、水、土壤等成分的变化,其年际和季节性变化可以作为地球气候变化的重要指标。此外,由于…

Cesium基础教程

一、概述 Cesium是国外一个基于javascript的地图引擎,支持3D、2D、2.5D形式的展示,可以自行绘制图形、高亮区域,并提供良好的触摸支持,并支持大多数的浏览器和移动端。 Cesium 是一个跨平台、跨浏览器的展示三维地球和地图的 ja…

【PWN刷题__ret2text】[CISCN 2019华北]PWN1

ret2text~ 前言 依旧是简单的ret2text 一、checksec查看 No canary found 没有开启栈溢出保护 二、IDA反汇编 双击进入func() 发现后门函数system("cat/flag");根据语义,函数提供了修改v1,判断v2是否等于11.28125,如…

【倒计时4天】金融服务用户体验专场沙龙开启预约

易观:数智化浪潮下,金融业务用户运营从线下向全渠道延伸。用户体验已成为⾦融机构打造差异化的重要抓手。此外,随着⽤户体验的全⾯数字化和精细化,⽤户体验贯穿于整个客户旅程中,做好用户体验管理,体现差异…

okio篇 1.Buffer

总览: Okio的两个基本概念:Source和Sink。Source对标基础io库中的InputStream,负责读数据。Sink对标OutputStream,负责写数据。 Source和Sink的内部实现,都是一个Buffer。Buffer从字面意思理解就是一个缓冲区,跟Buff…

『pyqt5 从0基础开始项目实战』12. 实现多线程循环检测数据的开始和停止(保姆级图文)

目录 最终效果导包和框架代码 main.py避免重复执行开始与停止事件表格更新事件 scheduler.py初始化开始线程停止线程在线程列表中删除线程TaskThread新建线程StopThread停止线程完整代码main.pythreads.pyscheduler.py 总结 欢迎关注 『pyqt5 从0基础开始项目实战』 专栏&#…

C. Anadi and Domino(思维 + 枚举)

Problem - C - Codeforces 阿纳迪有一副多米诺骨牌。每张多米诺骨牌都有两个部分,每个部分都包含一些小点。对于每一个a和b,如1≤a≤b≤6,1≤a≤b≤6,正好有一块多米诺骨牌的一半是a点,另一半是b点。这组多米诺骨牌正好…

手动实现 Tomcat 底层机制+ 自己设Servlet

目录 手动实现 Tomcat 底层机制 自己设Servlet 完成小案例 运行效果 此项目用maven至于怎么配置在下一篇文章 创建cal.html CalServlet.java web.xml WebUtils 问题: Tomcat 整体架构分析 测试分析: 抓包情况 手动实现 Tomcat 底层机制 自己设计 Serv…

十个高质量工具网站推荐,AI自动抠图换背景,任意背景自动融合

AI 背景更换是一种利用生成式人工智能创建新图像背景的软件工具。与传统方法需要移除原有的背景并更换新的不同,AI背景生成器使用先进的算法生成与前景完美融合的全新背景。这项技术彻底改变了图像编辑的方式,为设计提供了更多的创造自由和灵活性。 特点…

数据结构--B树、B+树

数据结构--B树、B树 1. 什么是B树2.建立B树的要求3.什么是B树4.Mysql里面为什么使用B树作为索引结构? 1. 什么是B树 B树是一种数据结构,用于在硬盘或其他非易失性存储介质上快速存储和访问大量数据。它是一种平衡树,其每个节点可以存储多个键…

zabbix SNMP traps 监控案例

目标 根据H3C网络设备 发送 SNMP trap 信息进行网络端口的告警。 具体过程 继上次配置的trap 方式进行监控一个案例。 其中log数据中的内容是: 20230330.163810 ZBXTRAP 192.168.21.148 UDP: [192.168.21.148]:52289->[172.18.18.2]:1162 DISMAN-EVENT-MIB::…

Keil5软件安装方法(兼容stm32与c51方法)

目录 一、下载软件包 二、安装软件 1、安装C51v960a.exe (1)右键以管理员权限运行程序 (2)开始安装软件 (3)勾选协议 (4)选择安装路径 (5)填写名字与邮箱 &#xff0…

我国元宇宙行业分析:政策、技术、资金助推行业探索多元化应用场景

1.元宇宙行业概述、特征及产业链图解 元宇宙是人类运用数字技术构建的,由现实世界映射或超越现实世界,可与现实世界交互的虚拟世界,具备新型社会体系的数字生活空间,主要具有沉浸式体验、开放性、虚拟身份、不断演化、知识互动、…

c/c++:指针,指针定义和使用,指针大小4字节,野指针,空指针*p=NULL

c/c:指针,指针定义和使用,指针大小4字节,野指针,空指针*pNULL 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c的话, 我所知道的周边的会c的同学&#xf…

VMware开机自启虚拟机系统

一、前提 wmware开机自启,安装完毕wmware不用管,默认该软件以及相关服务就是开机自启准备waware虚拟机(一般都linux,我用centos7,你随意) 二、脚本 脚本命令如下,等待30秒(给服务自启…

NXP公司K20+PF8100实现硬件窗口看门狗

Kinetis K20 72 MHz MCU系列为中等性能的Kinetis产品组合提供了可扩展的入门级产品,具有差异化的集成,配备高精度模拟集成和灵活的低功耗功能。其相关资源可在NXP的官网获得。 PF81/PF82为PMIC系列专为高性能处理应用而设计,如娱乐中控、车载…