8磁盘知识和历史

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8磁盘知识和历史相关的知识,希望对你有一定的参考价值。

磁盘管理相关知识

虽然磁盘只能归类到I/O设备,但是他也是非常重要的一个知识来的。
机械式设备
外部存储设备:
比如:U盘,光盘,软盘,硬盘,磁带

硬盘知识:
磁盘的结构:
扇区与磁道
多个盘面,双面可存储,磁头悬浮在盘面,没有接触
这么多同心圆,官方术语叫做磁道

技术分享图片

短短时间,硬盘空间发生巨大的变化,但是速度却没有发生巨大变化
存储东西,在每一个盘面上存储,并且是在同一个磁道中存储

如果不分区,整个硬盘是一个文件系统,分区了,每个分区就可以是一个文件系统
分区是逻辑边界
分区:Partition
可以创建多个文件系统

技术分享图片

MBR

磁盘有一个叫做MBR的东西:
主引导记录(512个字节,操作系统无法识别的,是属于磁盘的空间来的)
MBR分为三段
446Byte:
BootLoader,程序,引导加载器
64Byte:
每16个字节标识一个分区,只能划分四个主分区(Windows的多个分区不是一回事),所以我们Linux只能划分4个主分区
2byte:
标记MBR是否有效
所以说系统装好了,但是MBR坏了的话,系统也是无法启动的

开机流程:

(Bios-选择启动项_如果前面有光盘,没有的话,下一个启动项)--到了硬盘----读取硬盘的MBR---将446载入内存--BIOS控制退出----读取分区表----查找对应系统的内核---将内核读取到内存中去----内核启动自身---开机成功

所以有时候系统装好了就是启动不了系统,就可能是MBR出错了
比如你之前的MBR指向的是一个Linux系统的,你重装了window系统就不能直接使用,必须MBR重新指向

扩展分区
我们拿一个主分区,指向磁盘的另外的位置,这样就可以把没有使用的磁盘重新规划,我们把这个可以创建指针的分区叫做扩展分区(所以说扩展分区是算入主分区允许最大数量之内的)
扩展分区里面存的是一个指针
所以我们划分多个分区,有一定的限制
我们在硬盘分区中,扩展分区只能用一个,而主分区+扩展分区<=4

我们在存储的时候,是按照柱面的存储,划分分区,也是按柱面来存储的
技术分享图片

数据存储按柱面存储,划分分区也是按柱面分区的
寻道时间,所以磁头是会走动的,不是不会动(这就可能会形成了读写延迟(来源于磁盘挪过去,数据转过来))
所以7200转和5400转(所以一般转速越快,一般数据读写越快,因为错过了一个数据,转速快的话,再次读到的时间会越短)。分钟来计数的。
所以硬盘里面是真空的,避免灰尘的,如果有灰尘,在真实空气中也会烧起来的。
所以磁盘转速越快,寻道速度越快,但是发热量也会更大。

磁盘是固定角速度的,所以靠外的,读取到的数据更多
c盘存在磁盘外道,读取速度快,所以说平时有没有发现我们的D盘访问速度会比F盘会快一点。

硬盘逻辑结构(如何寻址)

文件系统是一个管理软件
对于整个磁盘来讲,存储的就是01代码而已
所以我们一定要给里面的数据给定逻辑的边界,怎么去找文件...之类的

类似图书馆
先分类,编号,建立索引 找书的时候找索引(编目)(分类 名称)
而我们实际中的硬盘也是这样的
我们找书的编目就是元数据(他不属于实际数据,就像索引并不是书,但是它也需要在硬盘有存储空间,也是很重要的一段数据),而实际数据存储又是一个空间(分成了多个磁盘块)

我们硬盘怎么知道哪些磁盘块是空闲的,哪些在使用的
我们元数据里面有一个区域,我们叫做块位图:bitmap,通过这个块位图去给我们将要存储的东西分派数据块
下图是一个目录数据(目录磁盘块)
文件名不在Inode存放,所有目录都在/,根是一个自引用的,文件名其实在目录上放的,目录是放在磁盘块的
如下图所示,目录的磁盘块
技术分享图片

\
如下图找 /var/log/messages的物理逻辑(来回来回不断的绕绕,不断地找目录的磁盘块)
所以计算机中第一次访问较长的目录,那他访问过的话,会把它载入缓存,下次访问就快了

技术分享图片

下图中的dentry叫做目录项:目录条目
技术分享图片

那我们在目录中新建一个目录呢,新建一个文件呢
比如在backup下存储一个test.txt文件,并且大小为10K,假如一个磁盘块大小只有2K
通过块位图给文档分配多个磁盘块(下图4就是块位图),通过步骤4然后分配合适的磁盘块保存testtxt文件,就有了步骤五
下图的1-5是步骤,要看明白
技术分享图片

提问:为什么删除了东西可以恢复?

因为他是将inode设置为空,但是磁盘块的数据还在那个。
所以同一个文件系统中,只是修改了目录磁盘,inode没有变,磁盘空间的数据块也是没有变的
不过下次读写的时候才会清除里面的数据,所以删了立刻恢复数据是一般可以恢复的,但是你写了数据可能就不行了
实际中,我们的硬盘也没有那么简单

以上是关于8磁盘知识和历史的主要内容,如果未能解决你的问题,请参考以下文章

android小知识点代码片段

Linux 系统磁盘分区知识(2017年8月30日 11:47:02)

VSCode自定义代码片段8——声明函数

Linux系统基础入门知识磁盘存储管理-基本分区

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题