当前位置: 首页 > news >正文

【操作系统】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. 限制

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

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

http://www.jsqmd.com/news/325524/

相关文章:

  • Tomcat使用教程(超详细)
  • 从0到1!AI智能体入门实战,用扣子Coze搭办公助手,程序员半小时搞定自动化摸鱼神器
  • 三次元测量仪好用的品牌有哪些,卓新检测口碑出众
  • JMeter的基本使用与性能测试,完整入门篇保姆式教程
  • Python趣味算法:三色球问题:Python暴力枚举法的完美实践 - 指南
  • 谷歌seo搜索引擎优化外包给谁比较好?避坑指南与实战建议
  • py每日spider案例之影视链接获取(美ju)
  • json的几种标准格式
  • 2026年研究院转让公司排行,性价比高的有哪些
  • 中企优帮的管理水平如何选择,这些要点要掌握
  • 导师推荐!专科生必用10款AI论文工具测评
  • httpx库异步爬虫实战对比aiohttp
  • asyncio+queue实现生产者消费者爬虫模型
  • 基于ssm的考研复习平台w0ws1848(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,架构界面在最后面。
  • 如何用Python搭建一个网站
  • 2026年技巧:用抖音训练测试AI模型
  • 互联网大厂Java面试实录:核心技术栈与业务场景深度解析
  • 抽奖系统推荐!年会必备神器!老司机专用神器!
  • Java中随机数生成_java 随机数,零基础入门到精通,收藏这篇就够了
  • 开源工具如何让测试报告美感飙升200%:专业解析与实战指南
  • 深入解析:iOS开发:关于日志框架
  • 2026年当下头部门窗采购有哪些,平移断桥提升窗/侧压平移推拉窗/推拉窗/门窗/安全门窗/窗纱一体铝门窗,门窗采购排行
  • 软件测试公众号爆款内容解析:专业洞察与AI应用
  • Docker核心问题汇总(含原理、操作、网络全解析)
  • adobe acrobat软件可以-另存为-缩小大小-可以将23MB文件转成1MB,太牛逼了
  • [嵌入式系统-171]:直流电机通过PWM信号控制转速和连续运转;步进电机通过脉冲信号实现开环控制,每接收一个脉冲转动一个固定步距角;伺服电机则通过PWM脉宽指令结合内部反馈实现闭环控制,精确控制
  • 2026效率革命:AI会议纪要转测试需求的实战指南
  • Java SE 面向对象
  • 推荐专业的研究院转让公司,全国范围内哪家比较靠谱?
  • Python开发平台怎么选?核心功能与场景匹配指南