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

【Linux:文件系统】

了解磁盘结构

  • 盘片可读可写
  • 一面盘面有一个磁头,一个盘片俩磁头
  • 磁盘本质是一个机械设备
  • 磁盘中的盘片高速旋转是为了定为扇区
  • 磁盘中的磁头 左右摆动定义磁道
  • 磁盘的读写单位:4kb /512字节

如何找到一个指定的扇区

  1. 找到指定的磁头(header)
  2. 找到指定的磁道(Cylinder)
  3. 找到指定的扇区(Sector)

在操作系统中,为了实现内核对磁盘的管理,对磁盘进行一个逻辑抽象的管理。把磁盘抽象的看作为一个数组。

 该数组叫做sector disk_arry[N]数组,文件=很多个secotr数组下标,操作系统可以通过扇区的下标转化为CHS地址,从而定位到指定的扇区

 操作系统与磁盘进行交互时(为了拷贝更多的数据),一次性读取磁盘的基本单位:4Kb  8*扇区理解为八个连续的扇区,在系统层次上叫做数据块。文件=很多数据块构成,操作系统在访问文件时都需要有CHS地址,每一个数据块都有一个编号,该编号称为LBA(逻辑区块地址)通过LBA转化为CHS地址,照样可以找到文件。操作系统在访问磁盘时,会把磁盘看作为一个线性结构(数组)由此得到了一个LBA blocks[N]数组


为了更好的管理内存,把数据块进行了分区管理,再把每一个区进行分组管理,层层往下细分管理来管理内存。文件=文件属性+文件内容,在Linux系统中,属性和内容是分开存储的

  • Data blocks:数据区,存放文件内容,Block group的大部分都是数据区,数据区中存放着很多个4KB大小的数据块,每一个数据块只存储文件的内容
  • Block Bitmap:记录着Data block中数据块的占用情况
  • inode实质就是一个文件描述符节点,里面存放着文件的访问权限,大小,文件创建的时间等等。
  • inode 编号是以分区为单位的,在同一个区中,每个文件的inode编号是唯一的,文件名是不包含在inode内部的,因为文件的属性是一个大小固定的集体,而文件名的大小并不是固定的

操纵系统层面如何查找文件:

  1. 通过文件名找到文件名所在的目录
  2. 目录也是文件,层层递归,找到根目录
  3. 再从根目录顺着往下查找文件,拿到文件的inode,通过inode映射的数据块拿到文件内容

因此,在linux系统下查找文件,是先逆向查找再依次向下查找,对于经常访问的路径,linux会对其进行路径缓存,就不用像刚开始那样依次递归查找


http://www.mrgr.cn/news/23525.html

相关文章:

  • 02 三数排序
  • 枚举专题.
  • 钢铁百科:NM360D执行标准、NM360D焊接性能、NM360D应用范围
  • 第三天旅游线路预览——从禾木景区入口到景区换乘中心
  • 【云服务器介绍】选择指南 腾讯云 阿里云全配置对比 搭建web 个人开发 app 游戏服务器
  • SprinBoot+Vue高校就业管理系统设计与实现的设计与实现
  • Jmeter_循环获取请求接口的字段,并写入文件
  • 无人机动力系统设计之桨叶推力计算
  • 安装一些大模型微调相关的库
  • [苍穹外卖]-07使用缓存优化查询接口
  • 2024年PDF转换器大集合:哪4款是互联网人的首选?
  • TikTok内容电商:短视频与直播带货如何重塑消费者购物决策
  • 国产游戏蓄力,火山引擎ByteHouse助力游戏厂商造爆款
  • DFS算法专题(二)——穷举vs暴搜vs深搜vs回溯vs剪枝【OF决策树】
  • 骨传导耳机哪个牌子值得买?推荐五款表现出色的骨传导耳机!
  • 基于人工智能的个性化学习推荐系统
  • OpenCV结构分析与形状描述符(14)拟合直线函数fitLine()的使用
  • 【C#生态园】JSON数据处理利器盘点:六款C#库全方位对比
  • 如何使用github build安装yolo v8
  • iPhone16无新意,华为三折叠横空出世,国产供应链要变天了?