首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

磁盘开篇:扒开机械硬盘坚硬的外衣!

刚看了一下,上一次我分享完内存篇的时候是2019年12月25号。没想到在我酝酿和打磨磁盘篇的这段时间里,我们的生活发生了如此大的变化。人类一直觉得自己是地球上所有生物的主宰,没想到这次被一个小小的病毒狠狠地咬了一口,而且还在欧美继续猖狂。也许是人类安逸太久了,早已经没有原始社会那种需要战战兢兢过日子的心态,在病毒初见端倪的时候,并没有得到足够的重视。甚至中国已经和病毒进行着全国大战役的时候,欧美的同学们还在开开心心的闲逛,聚会。本来他们有足够多的时间和机会的,结果却演变到了今天这个局面。我想说的一句是,人类在宇宙中能够存在,本来就已经是一个极低概率的事件了,宇宙中的各种射线,上千度万度的高温,都是脆弱的人类生命的不可承受之重。人类现在已经把宇宙观测到放大到星系团了暂时也没发现其它文明存在。不管自己多牛逼,始终还是要保存一颗敬畏自然、敬畏其它物种的心,且行且珍惜。

05

Linux索引节点inode

理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。文件数据都储存在”块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为”索引节点” 。

03

操作系统之引导

系统引导环节是操作系统启动过程中的最重要环节,也是最容易出问题的环节之一。按照个人计算机的硬件标准,引导环节发生在计算机的硬件系统检测完毕之后。具体的引导工作,是由BIOS完成的。BIOS维持一个可用于引导计算机的硬件设备列表,比如本地硬盘、本地光驱、网络、USB接口设备等,然后做一个排序。BIOS会试图从整个序列的第一个设备开始,检查其状态和引导能力。比如针对光驱,则首先会判断光驱中是否存在光盘,如果不存在,则跳过光驱设备,进入下一个设备的检测过程。如果发现有光盘存在,则试图读取光盘的第一个扇区,并检查这是否是一个可引导扇区(比如通过检查扇区的最后两个字节是不是0x55AA)。如果发现不是一个可引导扇区,则也是跳过光盘,再检查引导序列中的下一个设备,直到发现一个可引导的扇区为止。如果遍历完整个引导设备列表,未找到任何可引导的扇区代码,则引导过程失败,BIOS会提示无法找到可启动设备。如果在这个过程中能够找到一个可引导扇区,则BIOS会把该扇区的内容加载到内存,并跳转到该扇区,执行引导代码。这个跳转指令,就是BIOS程序在计算机启动过程中的最后一条指令,至此,BIOS的工作结束。后续工作,将由引导扇区代码完成。

01

inode、block和磁盘性能的关系 原

理解inode,要从文件储存说起。   文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(即:Sector)。每个扇区储存512字节(相当于0.5KB)。   操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。   文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。   block中存储的就是文件的实际数据,比如说,照片,视频,音频等等,但是有一点需要注意!就是inode当中不包含文件名!一个文件的文件名,存储在上级目录的block中!   其实inode和block之间的关系就像是一本书一样,inode是一本书的目录,一本书会有很多内容,一个知识点或者一个故事会占很多页,一个block就相当于书中的一页内容。

03

存储基本概念(3)

将数据保存在存储介质上,除了需要一个好的存储介质之外,还需要一个适当的机制去管理这些存储介质上的数据,以便上层应用包括操作系统可以方便快捷的访问到这些数据。传统上我们知道进行磁盘管理都是通过一些工具进行操作的,那么这些工具是否一定与操作系统有关呢?不是的,因为从操作系统角度来看,操作系统虽然一般具有文件系统管理功能,但本质上文件管理系统它是比较独立的一个功能,显然可见的,就是操作系统可以支持多个文件系统,如LINUX支持ext2,ext3等,Windows 7扶持fat32也支持NTFS,实际上LINUX也是支持NTFS的。从文件系统角度来看,文件系统将数据以文件、目录方式进行。组织。那么从磁盘的角度来说,应该怎么管理这些空间呢?我们前面了解到磁盘一般都分磁道和扇区,那么这些磁盘和扇区是如何与文件系统对应上的呢?。这里需要了解磁盘管理的两个关键:磁盘分区和磁盘格式化。进行磁盘管理一般都是采用一些专用的工具进行的,这些工具可以实现我们想要的如磁盘分区和格式化功能。通常将磁盘划分成多个分区(partitions),然后操作系统通过磁盘驱动程序来读取这些硬盘上的分区信息。一般的LINUX上根据不同的接口类型显示分区名,如IDE接口是hde[1—],SCSI接口是sda[1—]等,在Windows上通常分为C、D、…等。当硬盘分成各个不同大小的区后,格式化软件会将这些区再细分成不同的文件系统管理格式,比喻说C盘是NTFS格式,D盘可能是FAT32格式。同样在LINUX下也是将文件目录mount到指定分区的。因此分区对磁盘非常重要。这里讲述几个常见软件的操作:

02
领券