news 2026/6/15 16:59:41

【操作系统】7.ETX文件系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【操作系统】7.ETX文件系统
  • 磁盘
  1. 扇区

512字节,存储的最基本单位

  1. 柱面

磁盘存储由几个磁片构成,多个扇区构成一个圆,多个圆构成一个柱面

  1. 磁头

读取数据,以扇区为单位

由于只有一个传动臂,带动多个磁头,多个磁头读取一个柱面

柱面->磁头->扇区就可以定位到一个扇区,CHS地址

但是一个扇区定位要三个数字,较大需要简化

  1. 逻辑结构

类似于磁带,将扇区可以从圆形拉成直线结构

此时,可以由一个数字,LBA地址,算出对应CHS地址

一个面可以看成一个数组,一个扇面可以看成二位数组,而二维数组可以拉成一维

因此,一维的存储是以柱面为最小单元的

缓存可以让数据同时写入磁盘,让数据连续,加快磁盘读取速度

  • 文件系统

由于扇区太小,效率太低,因此将8个扇区分成一个4kb的块

文件系统以块为单位

将此案存储分成30GB的组

  1. 组的构成
  1. data blocks:存储文件内容(占大部分)
  2. inode table:存储文件属性

linux中任何文件都要用一个结构体记录属性,大小固定,为128字节

但是不存储文件名字

一个数据块会保存在32个inode中,且每个inode都有自己的编号

因此可以用编号找到对应位置

在ll后面加上-i选项

  1. block bitmap和inode bitmap

分别用位存储data位置,inode位置每一个块是否存储信息

删数据时将两个清零即可,因此数据还能恢复

  1. GDT

存储data block等区域的开始结束位置

  1. super block

存一个大分区的信息

不是每一个组都有,就起到备份作用,损坏可以恢复

  1. 目录

Linux的目录也和文件一样属性存在inode table中,目录名字存在data blocks上,同时目录下的文件名字也存在这

因此,可以用目录做出文件的名字和inode的互相映射表

打开对应文件就需要他的目录的内容区做出inode,名字映射表,以用名字就可以打开对应文件

因此,目录打开需要上一句目录……最后就一直到了根目录

指令如ls code.c就会自动补全路径再打开

  1. 文件树

如果打开什么文件都要从根目录开始找,那么就要一直对磁盘进行IO操作,效率过低

因此,系统会将历史打开的文件保存在内存的一颗树里,节点为struct deny

同时,这个节点还存在链表,哈希中,可以通过其它形式快速找到,打开

find ~ -name test.c

第一次输入这个指令,在文件中找test文件会停一下才能出结果

但是第二次会快很多

用户提供文件名,进程提供路径,再合并去寻找

  1. 分区

在上面,可以用inode找到对应文件,但是inode不是跨分区的

挂在:分区一定要和对应目录相关联,就叫挂载在对应的分区中

可以通过要找的文件的目录匹配挂载的分区

  1. inode节点和数据的映射

在inode节点中,共有15个指针指向文件

前12个直接指向4kb大小的文件分区,共48K

第13个指向2级分区,可以指向1mb

第14个指向3级分区,指向256mb数据

第15个指向4级分区,指向64gb数据

同时,数据可以跨组存储,以存下大文件

  • 软硬链接
  1. 软链接

ln -s test.txt soft.txt

两个文件的inode值不一样,不是一个文件

可以看成快捷方式,快速查看对应文件

  1. 硬链接

ln test.txt hard.txt

Inode一样,为同一个文件

可以备份文件

中间的数字在链接后会变为2,相当于引用计数

一个路径数字显示为2

原因:在路径里有一个.文件,就是路径的硬链接,inode值一样

同理,在路径里再新建路径,计数又会+1,因为子目录有..文件,就是当前目录的硬链接

  1. 限制

用户不能给目录建立硬链接

因为怕形成环,遍历时形成死循环

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 11:29:24

基于 Java Web 的软件工程毕业设计选题指南:常见系统类型与实现思路解析

写在前面:这篇文章适合谁,看完能解决什么问题 这篇文章主要面向正在准备或已经开始毕业设计的计算机专业学生,尤其是软件工程方向的毕业生。如果你在 软件工程毕业设计 阶段遇到了选题拿不准、系统规模不好把控、不知道如何体现软件工程思想等…

作者头像 李华
网站建设 2026/6/14 21:31:30

awk NF变量用法详解:快速获取每行列数与操作字段技巧

在文本处理中,awk的NF是一个极为实用的内置变量,它代表当前记录(即行)的字段数量。理解并熟练运用NF,能让你在处理结构化或半结构化文本时,快速定位和操作数据,大幅提升工作效率。 awk NF是什么…

作者头像 李华
网站建设 2026/6/15 11:31:39

浏览器CSS兼容性问题解决与常见差异

在Web前端开发中,CSS样式浏览器兼容问题是一个无法回避的现实挑战。不同浏览器对CSS规范的支持程度存在差异,导致同一段样式代码在不同浏览器中呈现效果不一致。作为开发者,我们需要理解这些差异的根源,掌握有效的解决方法&#x…

作者头像 李华
网站建设 2026/6/15 12:38:30

【路径规划】基于快速扩展随机树算法实现自动驾驶汽车路径规划,考虑车辆动力学,避开静态障碍物附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 &#x1f34…

作者头像 李华
网站建设 2026/6/15 16:13:30

JMeter的基本使用与性能测试,完整入门篇保姆式教程

JMeter 完整入门保姆级教程(2025-2026 最新实用版) 这是一份尽量写得详细、步骤清晰、几乎零基础也能跟着做的 JMeter 入门教程。 第一部分:JMeter 到底是什么?能干什么? JMeter 的最核心定位是: 开源、…

作者头像 李华