【Linux】文件系统与inode

news2024/11/15 12:14:41

 一、文件系统

理解文件系统前首先我们要来先了解一下磁盘结构。

接下来我们看看以水平、垂直角度来看看磁盘结构,并将其区域进行划分。

磁盘的垂直分布 (此图最上面的一面和最下面的一面无磁头,则不存储数据):

 

  • 磁头数:磁头就是在盘片上进行读/写的设备,有几个磁头就表示该磁盘有几个记录面用于存储数据。
  • 柱面数:因为磁盘是垂直叠加盘片的,磁盘上的磁道可以看作垂直的圆柱,磁道即半径逐渐缩小的圆,柱面数表示该磁盘一个盘片上有几圈磁道。
  • 扇区数:扇区则是将一个盘片进行等比例切分成扇形区域,表示每一条磁道上的扇区数。

所以当我们想读取到一块扇区中的数据,我们的步骤是

  • 先寻找在哪个面上(对应是哪一个磁头)
  • 在该面哪一圈磁道上
  • 位于该磁道的哪一块扇区中
  • 然后进行寻道、旋转、读取(传输)

以上是我们在磁盘上进行物理寻址的过程,但是对于操作系统而已,其内部还要进行逻辑寻址的过程。

操作系统将磁盘抽象为数组的形式:​​​​​​

此时系统对数据管理方式就会从物理管理方式转变为逻辑管理方式

  • 将数据存储到磁盘----> 将数据存储到该数组
  • 找到磁盘特定扇区的位置----> 找到数组特定的位置
  • 对磁盘的管理----> 对该数组的管理

 但是100GB的空间仍然不好管理,此时操作系统再进行划分。如下:

虽然磁盘的基本单位是扇区(512字节),但操作系统(文件系统)和磁盘进行IO的基本单位是:4KB(8*512byte),此4KB被称为block大小,所以磁盘被称为块设备。

为什么不用512字节为单位作为IO的基本单位呢?

1.因为512太小了,有可能会导致多次IO,进而导致效率的降低!

2.硬件与软件的IO访问大小不同,可以将硬件和软件(OS)之间的关系解耦合。比如磁盘的规格后序会不断变化,但是不影响系统的IO访问大小。

Super Block:文件系统的整体的属性信息,整个分区,有多少个快组,哪些快组已经存满,哪些数据块可以被写,inode的使用数量、未使用的数量。

Data blocks:多个4KB大小的集合,保存的都是特定文件的内容。

inode Table:inode 是一个一般大小为128字节的空间,用来保存对应文件的属性。

                该快组内,所有文件的inode空间的集合,需要标识唯一性,每一个inode块,都有一个inode编号

一般而言,一个文件,一个inode,有一个inode编号

Block Bitmap:假设该分组中有1w+个blocks,则有10000+个比特位,

比特位和特定的block是一一对应的,其中比特位为1,代表block被占用,反之表示可用。

Inode Bitmap:假设有1w+个inode节点,则有1w+个比特位,比特位和特定的inode是一一对应的,其后bitmap中比特位为1,代表该inode被占用,反之表示可用。

Group Descriptor Table:快组描述符,用来描述这个快组有多大、使用了多少个inode、使用了多少block

分区中有了这些描述信息,我们能让一个文件的信息可追溯,可管理!

此时将块组分割成为上面的内容,并且写入相关的管理数据,每一个块组都进行这样的操作,此时整个分区就被写入至了文件系统,这种行为就叫做格式化。

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

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

相关文章

LeetCode303.区域和检索 - 数组不可变

LeetCode刷题记录 文章目录📜题目描述💡解题思路⌨C代码📜题目描述 给定一个整数数组 nums,处理以下类型的多个查询: 计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中…

Windows nc命令下载使用与使用bash建立反弹shell

今天继续给大家介绍渗透测试相关知识,本文主要内容是Windows nc命令下载使用与使用bash建立反弹shell。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强…

磨金石教育摄影技能干货分享|王汉冰摄影作品欣赏—《沙狐之眼》

一、偏爱新疆风光的摄影师王汉冰 王汉冰是新疆人,身为摄影师的他对新疆的大好风光有着强烈的偏爱。 因此经常驾车游历,期望寻找到好的风景,将它记录下来,让世人都能感受到大美新疆的壮丽。 在今年七月,王汉冰来到巴音郭…

C语言 内存函数 自定义类型 结构体 枚举 联合

perror #include <stdio.h> #include <errno.h> #include <string.h>//strerror //perror与上相关 更加方便直接打印错误信息 上边需要先将错误码转换为错误信息 再用printf打印 // int main() {//打开文件失败的时候&#xff0c;会返回NULLFILE* pf fo…

同为(TOWE)IPS系列工业插头插座、连接器的选型及特点

所谓工业插头插座、连接器&#xff0c;即欧洲标准插头插座&#xff0c;主要用于实现电信号的传输和控制以及电子与电气设备之间的电源连接。它可以通过连接器插头与插座之间的插合和分离&#xff0c;使电路产生接通和断开&#xff0c;适用于对安全、寿命和性能具有高要求的应用…

5款OCR文字识别软件推荐_分享好用的OCR(图片转文字)工具

5款OCR文字识别软件推荐 不知道大家是不是不知道OCR单词识别这个词。 小编认为&#xff0c;经常处理各种办公文件的朋友&#xff0c;对OCR文字识别这个词肯定有一定的了解&#xff0c;因为在处理办公文件的时候&#xff0c;很有可能会遇到对OCR文字识别的需求。 而当我们遇到O…

ubuntu16.04运行YOLOV5并部署

运行环境 环境&#xff1a;ubuntu 16.04 CUDA: 10.2 执行模型推理 1. 下载yoloV5 repo git clone https://github.com/ultralytics/yolov52. 用conda新建python环境 conda create -n yolo python3.83. 安装需求包 pip install -r requirements.txt 4. (requremets中包含…

@Configuration如何保证@Bean单例语义?

1. 前言 Spring允许通过Bean注解方法来向容器中注册Bean&#xff0c;如下所示&#xff1a; Bean public Object bean() {return new Object(); }默认情况下&#xff0c;bean应该是单例的&#xff0c;但是如果我们手动去调用Bean方法&#xff0c;bean会被实例化多次&#xff0…

iServer使用影像服务(二)——影像服务发布为wmts和wms服务的加载

前言 自从SuperMap iServer10.2.0版本开始新增影像服务模块&#xff0c;并支持大规模影像&#xff08;栅格&#xff09;数据快速发布为影像服务&#xff0c;之后推出的版本中都陆陆续续对影像服务模块扩充了新功能、增强了新特性&#xff1b;如在SuperMap iServer10.2.1版本中…

JAVA注解使用

JAVA注解使用简介概念说明自定义注解注解格式元注解注解本质属性注解生成文档案例生成的源代码生成Doc简单的自定义反射演示注解定义调用类定义测试通过注解实现配置类定义枚举类定义注解配置类使用注解测试自动生成数据库生成演示数据库注解定义使用注解创建数据表使用注解创建…

[Java安全]—fastjson漏洞利用

前言 文章会参考很多其他文章的内容&#xff0c;记个笔记。 FASTJSON fastjson 组件是 阿里巴巴开发的序列化与 反序列化组件。 fastjson 组件 在反序列化不可信数据时会导致远程代码执行。 POJO POJO是 Plain OrdinaryJava Object 的缩写 &#xff0c;但是它通指没有使用 …

ZGC 垃圾收集器详解(过程演示)

理论部分就不细讲了&#xff0c;具体可以看《 jvm 虚拟机原理》&#xff0c;下面直接画图来演示 ZGC 垃圾回收过程。 第一步 初始状态&#xff0c;视图由 mark0 切换为 Remapped &#xff0c;其中&#xff0c;大方块是 region&#xff0c;小方块是对象&#xff0c;小方块上面数…

Win11的几个实用技巧系列之不能玩植物大战僵尸、如何彻底删除360所有文件

目录 Win11不能玩植物大战僵尸怎么办?Win11玩不了植物大战僵尸的解决方法 Win11玩不了植物大战僵尸的解决方法 win11如何彻底删除360所有文件?win11彻底删除360所有文件方法分享 win11如何卸载360&#xff1a; Win11不能玩植物大战僵尸怎么办?Win11玩不了植物大战僵尸的解…

记一次H3CIE实验考试

一、前言 直接上图 IE机试在12月19号考的&#xff0c;为避免成为小羊人&#xff0c;没去北京/杭州这2个固定地点&#xff0c;就在本省的协办单位考的。但是&#xff0c;还是中招了&#xff0c;5个同学一起去考的&#xff0c;全阳了。 华三机试一共有三套图&#xff0c;ACD&am…

1343:【例4-2】牛的旅行

1343&#xff1a;【例4-2】牛的旅行 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 农民John的农场里有很多牧区。有的路径连接一些特定的牧区。一片所有连通的牧区称为一个牧场。但是就目前而言&#xff0c;你能看到至少有两个牧区不连通。现在&#xff0c;John…

【特殊的一年,过去了】再见2022,你好2023

现在是2022年12月30日&#xff0c;提前的新年快乐&#xff01; 各位阳过了吗&#xff1f;&#xff08; tips:最近新学会的打招呼方式:) &#xff09; 我已经阳康啦&#xff0c;所以本文是带有奥密克戎抗体的&#xff0c;各位不用担心~ – 2022可算是快接近尾声啦&#xff01;…

虹科案例|Vuzix辅助和增强现实技术的全球领导者

当今企业的新现实 Vuzix 大多数科技业内人士都认为&#xff0c;未来将是免提时代。总有一天&#xff0c;智能手机、平板电脑、台式电脑和笔记本电脑将被更直观的设备所取代。 然而&#xff0c;对于未来免提的条件&#xff0c;各方意见并不一致。未来的免提设备是将数字信息覆盖…

IntelliJ IDEA 详细使用教程 – 主题,字体,类和方法注释设置

IDEA是Java开发者最喜爱的开发工具之一&#xff0c;高端大气&#xff0c;智能化&#xff0c;个性化&#xff0c;每个开发者都喜欢设置自己喜欢的主题&#xff0c;字体&#xff0c;打造一个属于自己的IDE&#xff0c;本次介绍在IDEA中&#xff0c;如何设置主题&#xff0c;字体等…

聊聊AQS

Java中 AQS 是 AbstractQueuedSynchronizer 类&#xff0c;AQS 依赖 FIFO 队列来提供一个框架&#xff0c;这个框架用于实现锁以及锁相关的同步器&#xff0c;比如信号量、事件等。 在 AQS 中&#xff0c;主要有两部分功能&#xff0c;一部分是操作 state 变量&#xff0c;第二…