Bootstrap

基础IO -- 磁盘(1)

目录

1.引入

2.看一看物理磁盘

3.了解磁盘的存储结构

1)如何找到一个指定位置的扇区

4.对磁盘的存储进行逻辑抽象


1.引入

在之前说过的一些文件相关知识里,说的都是一些被打开的文件,在OS中存在非常多的文件,被打开的文件肯定是少量的!那么,没有被打开的文件,在哪里存放着呢??

----> 磁盘  而没有被打开的文件,则是叫做磁盘文件

每一次我们要打开一个文件,我们都需要去

找到这个文件  -->  我们要在磁盘中去找到这个文件 --> 通过文件路径 + 文件名

然后在我们的磁盘当中打开这个文件

研究在磁盘里存放文件,本质就是探索文件如何存取的问题

2.看一看物理磁盘

磁盘结构

计算机只认识二进制 -- 什么是0 1 -- 物理上会有不同的表现(如 高低电平 南北极 逻辑表示)

盘片 :可读可写可删除,一片两面都可以写,一面一磁头

磁盘本质是一个机械设备!!

        磁头和盘面不能挨着,因为两者都在高速运动,两者一碰会导致盘面刮花,摩擦会起热,一旦起热就会退磁,退磁后就会导致数据丢失

        其是悬浮在盘面上的

        因为悬浮距离非常小,因此必须要保证磁盘无尘密封

现在的笔记本大多数都不是机械磁盘,而是SSD

磁盘:

        桌面级磁盘(民用)

        企业级磁盘(企业)

3.了解磁盘的存储结构

磁盘是一个机械设备,外设  ---  速度慢 --- 但是我们为什么要用它呢,因为性价比高

对磁盘进行写入二进制数据,其是就是让磁头对特点的一小部分进行磁化,改变0 1

磁盘读写的基本单位扇区,一般为512字节  也有4KB等等

1片 = n磁道

1磁道 = m扇区

必须以512个字节为基本单位来进行读和写,这就叫做读写的基本单位为512字节

如果有很多片相同的盘片,组成的圆柱叫做柱面

1)如何找到一个指定位置的扇区

a. 找到指定的磁头 --- Header

b. 找到指定的磁道(柱面)--- Cylinder

c. 找到指定的扇区 --- Sector

CHS定址法(Cylinder Head Sector(柱面 / 磁头 / 扇区)定址法)

这时候就可以解决两个问题了

1.磁盘中盘片为什么高速旋转?

        为了定位扇区

2.磁盘中磁头为什么左右摆动?

        为了定位磁道

文件 = 内容 + 属性 === 都是数据 === 都是二进制数据

因此文件的存储其是就是在磁盘中占有几个扇区的问题

4.对磁盘的存储进行逻辑抽象

即OS对磁盘这样的设备进行管理和抽象

为什么要这样呢??  直接利用CHS寻址,不就可以直接进行管理吗??

---- 若OS直接用CHS,耦合度太高;以及为了方便实现内核进行磁盘管理

这是磁带(类似磁盘的圆形结构

如果把里面的磁带拿出来,拉平,本质上就是把一个圆形结构变成了线性结构

;