LIUNX文件系统

news2024/12/24 9:18:30

目录

1.磁盘的物理结构

2.CHS定位法

3.磁盘的逻辑存储

4.系统层面

inode.block[15]

创建文件的流程

查找文件的流程


了解文件系统,首先要了解磁盘是如何存储和读取数据的。

1.磁盘的物理结构

可以理解这个盘上有很多的小磁铁,通过旋转盘面和摆动磁头,就可以访问修改这个盘上的所有的磁铁。

每个盘面上都有一个磁头,一个盘的正反面都是可以存储数据的。

整个盘面又分为不同的磁道和扇区,每个扇区存储容量相同。

扇区:是磁盘io的进本单位,通常为512字节或者4KB。

扇区不一定是系统io的基本单位。

2.CHS定位法

想要定位一个文件

首先要看该文件在哪个磁道(cylinder)

然后选择磁头(head)

最后看在那个扇区(sector)

就定位到了文件所在位置,任何文件就是多个扇区承载的数据。

3.磁盘的逻辑存储

把磁盘上所有的磁道都拉直,连接在一起,看成一个数组,这样就把对磁盘的管理,转化成了对扇区数组的管理。

要把线性地址sector = 999999转化为CHS

1.sector/单盘的容量,确定想访问的文件在哪块盘。(H)

2.sector%单盘扇区的个数 = tmp。

3.tmp/磁道个数 确定在哪个磁道。

4.sector%磁道上扇区的个数 确定在那个扇区。

4.系统层面

操作系统觉得一次io512字节太小了

os系统io的基本单位是4kb

操作系统在对这些4Kb的数据进行分区管理

在对每个区进行分组管理

最后再对每个组进行管理,管理好一个组就管理好整个文件系统了。

 

inode:LINUX的磁盘文件都是内容+属性,inode就是存储文件的属性,inode在当前分区是唯一的。

文件名不是文件的属性。

struct inode
{
  类型;
  大小;
  权限;
  acm时间;
  inode编号;
  ....
  int block[15];
}

inodeTable:他是一张存储inode的表,根据inode的编号,就可以在inodeTable中找到对应的inode。

dataBlock:datablock里面是一个一个的4KB的数据块,每个数据块都有编号,就是存放文件内容的。

inodebitmap:inode编号对应的inode是否被使用。

blockBitmap:block编号对应的块是否被使用。

GroupDescriptorTable:描述分组的信息,GroupDescriptorTable被破坏整个分组就被破坏。

superBlock:描述整个组的文件系统的,bolck 和 inode的总量, 未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的 时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个 文件系统结构就被破坏了。

inode.block[15]

block[15]中存放的是该文件使用的block的编号

[0,11]直接存放的是block的编号。

[12,13]存放的是block编号的二级索引的编号,这些索引存储的是block的编号。

[14]存放的是block编号的三级索引同理。

创建文件的流程

1.去inodebitmap,找到一个未使用inode编号。

2.将创建文件信息填入,inodeTable中inode编号所对应的inode。

3.去blockBitmap,找到未使用的块编号。

4.填入inode中的block[15]

5.把创建文件的名字和inode编号映射起来,写到目录去。

查找文件的流程

1.根据文件名,拿到inode = 1005。

2.inode,根据inode编号,看是在哪个分组。

假设group0用的是1 - 1001 的4kb数据块,group1用的是1001 - 2001的数据块。

1005在第二个分组

用1005减去group1的起始地址,用这个结果去inodeBitmap寻找是否真的存在,如果真的存在。

再用1005减去group1的结果去inodeTable,找到inode,就找到文件的所有属性。

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

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

相关文章

LeetCode-热题100:114. 二叉树展开为链表

题目描述 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例…

内业减少80%人工操作,林地地形轻松测!

林业作为维护生态平衡和保护环境的关键领域,其科学管理和合理利用是当前林业工作的重中之重。林业调查旨在全面了解当前林业资源的状况,其中林地地形测量是林业调查的基础工作。通过对林地地形的准确测量,可获取森林的地理位置、面积、地貌、…

探索VR数字展厅,对企业未来展示新模式

在数字化浪潮的推动下,企业展示也在经历着一场革命,VR数字展厅正在以一种全新的方式重塑我们的生活和工作空间,不仅重塑了客户的观展体验,也为企业营销打开了新的渠道。 VR数字展厅作为实体展厅的数字化延伸,正以其沉浸…

C++笔记:引用

目录 概念: ​编辑 引用的特性: 引用中的权限问题: 引用与指针的区别: 引用的使用: 概念: 引用是给已存在变量取一个别名,编译器不会为引用变量开辟内存空间。 引用的符号:&…

物联网网络传输,STM32和ESP32

2024.4.17 今天主要是记录一下我这个STM32F407和esp8266组成的互联网板子的一些例程运行心得, 下面这个例程是STM32发AT指令给esp8266,使得esp8266作为tcp client连接到我的手机热点,然后我用电脑连接wifi,打开tcp server&#x…

上海晋名室外气瓶暂存柜海盐项目落地

上周海盐县人民医院武原分院的SAVEST室外气瓶暂存柜项目成功交付验收,此次项目主要用于医院气瓶等室外暂存安全。 用户单位在日常工作运营中涉及到氧气瓶、杜瓦罐等室外安全储存问题,用户在寻找解决方案的过程中搜索到上海晋名的室外气瓶暂存柜系列后挺感…

贪心问题:134. 加油站

https://leetcode.cn/problems/gas-station/ 贪心算法还没找到规律,记录一下该题的思路吧。。。 每个加油站的剩余量rest[i]为gas[i] - cost[i]。 首先如果总油量减去总消耗大于等于零那么一定可以跑完一圈,说明 各个站点的加油站 剩油量rest[i]相加一定…

【AI学习中常见专业英文缩写词的解释】

前言: 为了看着不无聊,文中插入了一些AI生成的狗图片 AI(Artificail Intelligence)人工智能: 让机器模拟和展示人类智能的技术。 GAI(Generative Artificail Intelligence)生成式人工智能: 利用复杂的算法、模型和规则,从大规…

19.leetcode---设计循环队列(Java版)

题目链接:https://leetcode.cn/problems/design-circular-queue/ 题解: 代码: 测试:

LeetCode 506.和为K的子数组

目录 题目描述 方法一 三重循环暴力 思路: 代码: 方法二 暴力一点点前缀和 思路: 代码: 方法三 前缀和哈希表 思路: 代码: 题目描述 给你一个整数数组 nums 和一个整数 k ,请你统计并…

超净实验室用耐强酸碱耐高温PFA酸缸进口透明聚四氟塑料方槽

PFA清洗槽是四氟清洗桶后的升级款,主要用于半导体光伏光电等行业,一体成型,无需担心漏液,表面光滑无毛刺。 别名PFA浸泡桶、PFA酸缸、PFA方槽等,可定制尺寸,可配套盖子,盖子有PFA/PTFE两种材质…

idea连接Docker数据库

我们在docker下创建了数据库,想要更方便的查看和操作该数据库,idea和DataGrip或者其他人家都可以。在数据库连接时需要填写数据库名字,主机,端口,数据库用户名和密码。 输入之后先不要点击OK和按Enter键,我…

HubSpot流量开发常见问题及解决方案

在HubSpot流量开发过程中,企业和营销团队可能会遇到一系列问题。本文旨在梳理这些常见问题,并提供相应的解决方案,帮助大家顺利推进HubSpot流量开发项目。 一、数据集成问题 问题:如何将外部数据源与HubSpot集成,实现…

SIDE:多维赋能,助力高效开发且获得收益

在当下数字化快速发展的时代,SIDE这款应用开发平台确实展现出了其前瞻性和实用性。昨天我们介绍了SIDE作为一款先进的应用开发平台,开启研发新的颠覆式的开发新纪元。除了开发体验外,SIDE还以其多维度的赋能手段,为开发者提供了高…

大语言模型微调技术

Adapter 参考资料:《Parameter-efficient transfer learning for nlp》 adpater首先将原始的d维特征映射到较小的维度m,应用非线性函数,然后再重新映射回d维。总的参数量(包含biases)为 2mddm, 当m远小于d…

业务数字原生驶入2.0时代:谁在成为新抓手?

对奥哲云枢All in One低代码平台的一个更为全面的认知恰是,其在成为AI时代企业内部的一个超级操作系统。 作者|皮爷 出品|产业家 过去的几年时间里,赵仕杰一直有个困扰他的问题。 作为首创热力的CIO,也是过去几年这家热力企业数字化转…

JavaSE进阶篇-面向对象程序设计

一、面向对象和面向过程的关系 1)面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做; 2)面向对象:强调了具备功能的对象,以类/对象为最小单位,考虑谁来做。 总结…

武汉星起航:挂牌资本市场,助力创业者与投资者共绘辉煌蓝图

2023年10月30日,对于武汉星起航电子商务有限公司而言,是一个值得铭记的日子。这一天,公司成功在上海股权托管交易中心挂牌展示,正式登录资本市场,开启了新的发展阶段。这一里程碑式的成就,不仅彰显了武汉星…

Mybatis中SqlSession接口中的selectList方法

1、SqlSession SqlSession是Mybatis持久层框架提供的接口,该接口中包含了大量的CRUD操作方法(既增删改查方法)。 2、selectList方法 selectList方法是用于查询的方法,该方法具有多态性,如图所示(打开myb…

掼蛋-用好逢人配

逢人配是掼蛋的特殊规则之一,是主牌中当前打的两张红桃牌,这两张可以充当百搭牌,与手中任意牌型(除大小王外)组成新的牌型。 那么逢人配应该怎么用呢? 一、配炸弹 首配4头炸和同花顺,可配6头&am…