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

Linux文件系统深入理解

理解磁盘

当一个文件被打开时,他会加载到内存进行相应操作,而未被打开的文件则一直存放在磁盘(或者是固态硬盘,但是本篇文章是依据磁盘来讲的)上

磁盘物理结构

许迎果 第147期 机械硬盘的物理结构和逻辑结构 - 知乎

5 分钟图解 磁盘的结构(盘片、磁道、扇区、柱面)_柱面磁道扇区图解-CSDN博客

可以看到,磁盘有许多盘片,一个盘片有上下两个盘面,每一个盘面都需要有一个磁头去读写数据

每个盘面可以分割成许多的同心圆,这个同心圆称为磁道,盘片都是上下堆叠的,因此一个磁道在上,下或者上和下都存在其他盘面的磁道,这些相对位置相同的磁道组成柱面

一个磁道又可以分割为许多扇区(一个弧面),扇区是磁盘读写的基本单位

磁盘在工作时,盘片高速旋转,磁头左右摆动,这样就可以找到盘面上的任意位置了

磁盘如何找到一个指定的扇区

磁盘的基本单位是扇区,如果给扇区从0开始按顺序编号,那么就可以抽象成一个数组,扇区号就是下标,访问某个扇区给定下标后,磁盘根据下标(扇区号)去寻找存储区域

首先找到对应的磁头(Header),在找到对应的磁道(柱面,Cylinder),在找到对应的扇区(Sector),这三步也称作CHS 定址法。

如果知道盘面数量,磁道数量,扇区数量,就可以通过扇区号找到指定扇区

举例:

假设一个磁盘有8个盘面,一个盘面有10个磁道,一个磁道被分为8个扇区,即一个盘面80个扇区。要找到扇区号为346的扇区

磁头号 H = 346 / 80 = 4

磁道号 C = (346 % 80)/ 8 = 26 / 8 = 3

磁道内扇区号 S = (346 % 8)% 8 = 2

即找到4号磁头3号磁道2号扇区就为扇区号为346的扇区

操作系统管理磁盘

一般来说,操作系统和磁盘交互的时候,最基本的单位是4KB,也称作数据块,假设一个磁盘的一个扇区大小为512字节,那么一个数据块就是8个扇区,

操作系统读取数据时,首先确定数据所在的块地址(逻辑块地址,LBA),根据块号计算出扇区号,交由磁盘,磁盘根据CHS定址法找到指定扇区,接着连续读取8个扇区交给操作系统,

操作系统在根据数据的扇区号计算出块内地址,进行操作

续读取8个扇区交给操作系统,

操作系统在根据数据的扇区号计算出块内地址,进行操作

对于操作系统而言,管理磁盘时可以将磁盘看成以数据快为基本元素的数组,但是一个磁盘可能很大,管理起来可能很困难,因此可以将磁盘划分成更小的分区,将管理一个分区的方法用于管理其他分区,就可以对磁盘进行整体管理。Windows操作系统中的c盘,d盘就是对磁盘(或者是固态硬盘)的分区。

http://www.xdnf.cn/news/1171153.html

相关文章:

  • VirtualBox安装提示security安全问题
  • Coze智能体1分钟全自动生成哲学主义解析视频,无需写文案,无需剪辑
  • 性能测试-从0到1搭建性能测试环境Jmeter+Grafana+influxDB+Prometheus+Linux
  • Collection接口的详细介绍以及底层原理——包括数据结构红黑树、二叉树等,从0到彻底掌握Collection只需这篇文章
  • Linux文件系统理解1
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现持械检测(C#代码,UI界面版)
  • 使用qemu命令启动虚拟机
  • linux辅助知识(Shell 脚本编程)
  • 基于卷积神经网络与小波变换的医学图像超分辨率算法复现
  • AWE2026启动:加码AI科技,双展区联动开启产业新格局
  • 【kubernetes】-2 K8S的资源管理
  • Spring、Spring MVC、Spring Boot、Spring Cloud的联系和区别
  • 闲庭信步使用图像验证平台加速FPGA的开发:第三十课——车牌识别的FPGA实现(2)实现车牌定位
  • 类加载过程及双亲委派模型
  • 数据结构自学Day12-- 排序算法2
  • Pycharm下载、安装及配置
  • 【运维】SGLang服务器参数配置详解
  • 大数据之Hive:Hive中week相关的几个函数
  • 微调大语言模型(LLM)有多难?
  • SpringBoot全局异常报错处理和信息返回
  • Vue 脚手架基础特性
  • Maven 环境配置全攻略:从入门到实战
  • Typecho三种版权保护方法对比与实战指南
  • 渗透部分总结
  • 如何把jar包打成docker镜像(SpringBoot项目打包成Docker )部署到Linux
  • 本地代理和服务器代理区别
  • 【MyBatisPlus】一文讲清 MyBatisPlus 基本原理及基本使用方式
  • NumPy库使用教学,简单详细。
  • allegro 16.6配置CIS库报错 ORCIS-6129 ORCIS-6469
  • Matplotlib绘制各种图参考