目录

磁盘的组成

磁盘的外表

磁盘各个组件:

硬件传送数据, 这个数据本质是什么?

 磁盘——永久性存储介质

磁盘的安全问题

磁盘的存储构成

磁盘的逻辑结构

CHS寻址方式


磁盘的组成

        我们的磁盘是我们的电脑(一些比较老的电脑)中唯一的机械设备, 也是一个外设。

        而我们使用的计算机又叫做电子计算机, 也就是说, 在计算机之中, 整个设备的流动从设备到设备之间, 从整个计算机内部都是使用电子和光电信号的形式进行传递,这就预示着这些设备的传输速度其实是非常快的。 而我们机械设备使用的是高速的马达类似的机械设备进行运动, 这些运动是机械运动, 但是再怎么快也快不过光电的速度, 也就是光速。 所以机械设备的效率相对来说一定是比较低下的。

磁盘的外表

        磁盘的盘面和光盘类似, 磁盘是两面光滑, 而光盘是一面光滑。

        下面是光盘和磁盘的对照图:

磁盘各个组件:

        下面是磁盘的各个组件

linux文件——文件系统——学习硬件:磁盘-LMLPHP

        这里有一个点就是,磁头和盘面不接触, 而中间的这个距离相对于磁头和盘面就类似于一架波音747在贴地1米的地方急速飞行。 

硬件传送数据, 这个数据本质是什么?

        计算机只认识二进制, 计算机里面有各种各样的硬件, 比如磁盘, 网卡, 声卡等等, 既然计算机只认识二进制, 那么是不是这些硬件也只认识二进制呢? ——答案是正确的, 为什么?

        因为我们每一种设备, 最终都是和我们对应的各种线连接的。 当我们的数据总线, IO总线上面有光电信号的时候, 我们的信号在我们的电线当中表现出来的光电信号其实就是有和无。 或者强和弱, 或者疏和密。 不管什么方式表达, 但是本质上其实就是利用这种方式进行传送二进制。

 磁盘——永久性存储介质

       磁盘叫做永久性存储介质。(内存叫做掉电易失存储介质)

        磁盘里面的二进制与磁盘的存储关系——这里我们可以使用吸铁石的例子进行理解这个关系。 我们都知道吸铁石具有南北极。 南极S, 北极N。 但是有的技术人员呢, 可以给吸铁石通电, 让吸铁石的南北极调换。 那么这个吸铁石的南北极调换后, 就可以当作一个0或者1字符。 我们知道我们的磁头会在盘片上面左右移动。 而我们的盘片就可以当作无数个的小吸铁石组成的。 磁头指向的地方就是一个小吸铁石, 并且通电后这个小吸铁石会形成一个0或者1字符。 那么磁头的移动, 会经过无数个小吸铁石, 就会形成一系列01序列。 这就是我们所说的二进制序列!!!——也就是说, 磁头可以通过电器能量向盘面写上一系列01数据!!!

磁盘的安全问题

        我们知道, 磁盘虽然是永久性存储介质, 但是磁盘也是有使用寿命的, 四五年乃至更多年之后, 磁盘的数据就有可能丢失。 对于一些大型互联网公司来说, 他们的磁盘可能有几万甚至几十万乃至更多块。 那么当他们进行磁盘的数据拷贝, 替换磁盘的时候就有可能得到磁盘中的数据,就会给社会造成影响以及混乱。 所以这些磁盘在废弃之前必须进行数据的擦除, 擦除可以使用物理擦除, 高温下磁盘的数据会被销毁, 但是成本太高。 而另一种方式是用软件层面的擦除。 就是将磁盘上面的数据全部写0或者写1. 虽然肯定会有局部的影子数据保留。 但是多进行几次软件层面的数据擦除, 就可以基本符合标准。 而这些软件层面的擦除一般就是厂家连带磁盘一起提供的用户接口。 用户想要擦除数据的时候就直接调用相关的接口就可以。 ——这就是磁盘的安全问题。 

磁盘的存储构成

如下图:

linux文件——文件系统——学习硬件:磁盘-LMLPHP

linux文件——文件系统——学习硬件:磁盘-LMLPHP

        知道了扇区的概念之后, 那么我们就可以摘掉, 假如我们想要修改一个字节。 那么就要将这个字节所在的扇区全部拿到内存中。 

        要把数据存在到磁盘, 第一个解决的问题就是定位扇区: 先定位哪一面(定位用哪一个磁头), 然后再定位哪一个磁道, 最后再定位哪一个扇区。

        同时, 多个盘面中半径的磁道组合起来, 就能形成一个柱面。 就如同下图:

linux文件——文件系统——学习硬件:磁盘-LMLPHP

        我们知道, 盘片是告诉旋转的, 而磁头是左右摆动的。 但是问题来了, 请问, 磁盘为什么要这么运动呢? 这里可以直接出结论——就是磁头左右摆动和盘片告诉移动本质上就是一个定位扇区的过程, 磁头的左右摆动确定磁道, 而盘片的高速移动确定扇区。 

        那么, 再请问, 磁盘的效率由什么决定呢? ——磁盘的整个效率问题由: 磁头的选择(哪一面)、磁道的确认、扇区的确认。

        如果我们的数据在盘片上是乱放着的, 无序的。 那么势必导致机械运动当中上下摆动和顺时针旋转次数更加频发。 那么到底什么是磁盘高效或者低效呢? ——运动越少, 效率越高。 运动越多, 效率越低(在软件设计上, 设计者, 一定要有意识的将相关数据放在一起)。 

磁盘的逻辑结构

磁盘的逻辑结构是一个线性结构。 呈长条状。

linux文件——文件系统——学习硬件:磁盘-LMLPHP

这个长条分为一段一段的。 每一段都代表着一面。 并且这些段等长。

        我们知道其实每一个磁盘里面都有一个一个的磁道。 并且这些磁道最内部半径最小, 然后向外逐渐增大。 也就是说, 这每一段也可以细分成为一个一个的小段落, 用来表示一个个磁道。 并且这些段落逐渐增长或者逐渐变短。 如图绿色线条:

linux文件——文件系统——学习硬件:磁盘-LMLPHP

然后呢, 这些磁道又可以细分成为一个一个地扇区。 如图三色线条:              linux文件——文件系统——学习硬件:磁盘-LMLPHP

那么我们就可以将上面的内容抽象成为一个基于扇区的数组。

CHS寻址方式

我们知道, 每个磁道的扇区个数是相等的, 大小是不相等的。 那么具体的寻址是怎么寻的呢? ——假如我们有2w个扇区, 每个盘有200个磁道, 每一个磁道有100个扇区。

        这里的逻辑地址扇区地址是操作系统能够认识的, 方便操作系统找到磁盘的内容所使用的地址, 也就是那个抽象出来的扇区数组, 这个数组的下标,也就是逻辑扇区地址, 也叫LBA地址。 是操作系统抽象出来的, 当物理上面, 磁盘上面的CHS地址使用的时候, 操作系统就会进行计算, 然后转化为LBA地址找到对应的内容。 在磁盘上面的是CHS地址进行标识, 而系统上面使用LBA地址。 这样的话就可以实现: 操作系统不需要了解磁盘结构, 对于操作系统来说, 所有的磁盘都是线性的。 那么操作系统就可以使用LBA地址访问磁盘里面的任何一个扇区!!!同时LBA里面的任何一个扇区也可以经过算法转化为CHS地址。(这里LBA 被叫做logical block adress。 ——逻辑块地址)

        回归到硬件:不仅仅CPU有“寄存器”, 其他设备(外设也有), 磁盘也有。 ——磁盘里面的寄存器主要有控制寄存器、数据寄存器、状态寄存器。

而整个的磁盘传输数据的过程如下图:

以上就是本节内容。希望能对友友们有所帮助。

08-26 07:40