文章目录
前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、理解硬件磁盘
1.1 磁盘物理结构
磁盘可以存储大量的二进制数据,并且断电后也能保持数据不丢失。磁盘通常由盘片、磁头、电机驱动系统和接口等组件构成。盘片是磁盘存储数据的基础,由硬质合金材料或玻璃材料等涂布磁性材料形成。磁头则是读取和写入数据的关键部件,悬浮在盘片上方几微米的距离,可以读取和写入数据。
1.2 磁盘的存储结构
扇区:是磁盘存储数据的基本单位,通常为512字节,块设备
⽂件 = 内容+属性 都是数据,⽆⾮就是占据那⼏个扇区的问题!所以对文件的访问物理上就是找寻扇区的问题。
- 磁盘容量=磁头数 × 磁道(柱⾯)数 × 每道扇区数 × 每扇区字节数
CHS寻址:
是一种寻址模式,对早期的磁盘⾮常有效,知道⽤哪个磁头,读取哪个柱⾯上的第⼏扇区就可以读到数据了。但是CHS模式⽀持的硬盘容量有限,因为系统⽤8bit来存储磁头地址,⽤10bit来存储柱⾯地址,⽤6bit来存储扇区地址,⽽⼀个扇区共有512Byte,这样使⽤CHS寻址⼀块硬盘最⼤容量为256102463*512B=8064MB(1MB=1048576B)(若按1MB=1000000B来算就是8.4GB)
1.3 磁盘的逻辑结构
对于软件层面上,我们应该这么理解磁盘:将整个磁盘视为一个线性结构的数组,然后每个扇区可以看作为这个数组的下标,数组存储的就是文件数据
这样每⼀个扇区,就有了⼀个线性地址(其实就是数组下标),这种硬盘寻址模式叫做LBA(Logical Block Addressing),LBA寻址方式将硬盘上的所有扇区依次从“0”开始进行编号,直到硬盘的最大扇区数减1,相比于CHS简化了数据访问过程。
在磁盘使⽤者看来,根本就不关⼼CHS地址,⽽是直接使⽤LBA地址,磁盘内部⾃⼰会用特定的方法转换。
所以:从现在开始,磁盘就是 ⼀个元素为扇区 的⼀维数组,数组的下标就是每⼀个扇区的LBA地址。OS使⽤磁盘,就可以⽤⼀个数字访问磁盘扇区了。
二、文件系统
章节一我们主要讲解了磁盘的结构和访问里面数据的方式,有了上面对于磁盘的理解,接下来我们自然要来引入磁盘里面的数据,因为我们要对磁盘中的文件进行管理,自然要先描述其各种属性,组织起来再管理。