【Linux】:文件系统

文件系统

文件=内容+属性,前面我们所说的文件操作都是针对以打开的文件,那么未打开的文件呢?当然是在磁盘上储存着,接下来谈谈它是如何储存的。

一.认识硬件-磁盘

1.磁盘的物理构成

在2000年的时候流行过一段时间的光盘。

这种光盘有一面是光滑的,而磁盘就由一个或者多个这样的光盘组成(它的两面都是光滑的)。

磁盘有一个磁头,当电脑关机时,磁头就会转到磁头停靠点。当磁盘通电时,磁盘会顺时针或逆时针高速旋转,同时磁头也会来回摆动。整个磁盘的底部会有一个与电脑的连接口,当把磁盘插入到电脑里时,电脑就能通过连接的总线把二进制信号读入电脑。

磁头是两面都有,如果只有一个光盘那么就有两个磁头,如果是两个光盘,那么就有四个磁头。注意磁头和盘面不接触。

2.磁盘的存储构成

磁盘上的数据是有规律的,它会循着马达向外部扩散,形成一个一个的同心圈,数据就储存在这些圆上,这些同心圆被称为磁道 。在盘面上还会有一条条的线,将磁道分割成一个个扇形区域,这些区域被称为扇区。磁盘被访问的最基本单位就是扇区-一般512B/4KB。

要把数据储存到磁盘第一个问题就是定位---面->磁道->扇区。 从上往下看,多个圆重合在一起形成一个柱形结构,这个结构被称为柱面。前面说到磁头会左右摆动,就是在定位磁道。

磁盘为什么慢主要取决于:1.确认磁道;2.盘片的自转。 如果数据无序,势必会导致盘片的自转次数变多。所以运动越少,效率越高;运动越多,效率越低。

3.逻辑结构

虽然在物理结构上是圆形,但在逻辑结构上可以看成线性。

每一个扇区都有对应的下标,那么这样我们就能通过下标计算它所处的面,磁道。

回归到硬件:不仅CPU里有寄存器,磁盘里也有寄存器。

进程可以让操作系统间接的帮忙检查状态寄存器,判断状态是否变化,如果变化则操作结束,否则进行等待。然后IO访问控制寄存器,查看指令,接着对数据进行相应的操作。

二.文件系统

如果一个电脑的磁盘有800GB的大小,那么毫无疑问这对于操作系统来说太大了不易于管理。于是我们可以将磁盘划分为C盘,D盘...之类的,当然这还是有些大,于是操作系统就引入了Inode。

BootBlock:一般被称为启动分区,主要包括一些磁盘分区的起止位置,开机信息等等。

Block group:就是把磁盘划分成更多份。那么就把一块很大的磁盘变成了管理一个Block group的小快。而这些块里面的就是文件系统。

Data Blocks:存文件内容的区域。

Linux ext2文件系统,上图为磁盘文件系统图(内核内存映像肯定有所不同),磁盘是典型的块设备,硬盘分区被划分为一个个的block。一个block的大小是由格式化的时候确定的,并且不可以更改。例如mke2fs的-b选项可以设定block大小为1024、2048或4096字节。而上图中启动块(Boot Block)的大小是确定的。

相关推荐
平头哥在等你1 小时前
《计算机网络名词解释》
服务器·网络·计算机网络
德迅--文琪1 小时前
SCDN是服务器吗?SCDN防御服务器有什么特点?
运维·服务器
ice___Cpu1 小时前
Linux 基本使用和 web 程序部署 ( 8000 字 Linux 入门 )
linux·运维·前端
z202305081 小时前
linux 之0号进程、1号进程、2号进程
linux·运维·服务器
秋已杰爱2 小时前
HTTP中的Cookie与Session
服务器·网络协议·http
狐心kitsune2 小时前
erlang学习:Linux常用命令1
linux·学习·erlang
code bean2 小时前
【C#基础】函数传参大总结
服务器·开发语言·c#
shelby_loo3 小时前
通过 Docker 部署 WordPress 服务器
服务器·docker·容器
Hqst_Kevin3 小时前
Hqst 品牌 H81801D 千兆 DIP 网络变压器在光猫收发器机顶盒中的应用
运维·服务器·网络·5g·网络安全·信息与通信·信号处理
前端-文龙刚3 小时前
小程序给对象赋值(双向绑定)方法之一
服务器·小程序·apache