`
lobin
  • 浏览: 389127 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于os的一些整理:第十七篇:磁盘

 
阅读更多

磁盘

我们常见的硬盘,软盘都是磁盘。硬盘有机械式硬盘和固态硬盘(SSD)以及混合硬盘(SSHD)。磁盘的读写有两种方式,CHS和LBA这两种访问模式。这两种访问模式的区别在于对扇区寻址的不同。每个扇区都有一个扇区号,并且这两种访问模式对扇区编号也有所不同,CHS采用的是物理扇区编号,而LBA采用的是逻辑扇区编号。通常采用LBA这种访问模式。

 

读写软盘和读写硬盘差别很大。

 

下面的一些概念主要都是延续传统机械硬盘的叫法。

 

盘片

一块盘片通常有两面,也有单面的。

 

盘面

 

磁头

磁头即head,CHS寻址方式中的H就是指的这个磁头

 

柱面

柱面即cylinder,CHS寻址方式中的C就是指的这个柱面,另外还有个磁道以及盘片和盘面的概念,

 

扇区

扇区即sector,一个扇区通常为512字节。CHS寻址方式中的S就是指的这个扇区。

 

扇区编号

磁盘的每个扇区都有一个编号。在操作磁盘的时候,如读写磁盘的时候,都是根据扇区编号来决定读写哪一个磁盘扇区。

 

扇区编号也分为物理扇区编号和逻辑扇区编号。不同的磁盘访问方式可能采用物理扇区编号或逻辑扇区编号,如通过中断方式去读写磁盘时,它其实也是采用的CHS方式访问磁盘,使用的是物理扇区编号,编号从1开始,依次2,3,4,...。

 

物理扇区编号

扇区编号是从1开始的,以此类推,后面就是2,3,4...。通常磁盘的第一个扇区是主引导扇区,也叫MBR扇区。

 

扇区编号顺序是连贯的,但对应在磁盘上的物理位置不一定连贯,不同类型的磁盘可能不一样,比如硬盘,扇区编号顺序连贯的,对应磁盘上的物理位置就是不连贯的。

 

当然磁盘扇区可能会坏掉,坏掉的扇区就是坏扇区。

 

逻辑扇区编号

 

磁盘寻址地址

要读写磁盘上的扇区,对应扇区有个扇区号。这个就相当于一个地址。采用不同的访问模式,这个扇区号编号有所不同,也就是前面所说的物理扇区号和逻辑扇区号。这两种扇区编号可以相互转换。

 

逻辑扇区号相对比较简单,所以采用LBA访问模式也相对简单。

 

如果采用CHS访问模式,除非你知道扇区的物理扇区号,否则需要将逻辑扇区号转换成物理扇区号。

 

 

The Phoenix Enhanced Disk Drive Specification

 

typedef struct chs
{
  int c; // cylinder
  int h; // head
  int s; // sector
} chs_t;

 

// for 28 bit LBA
//                         2  2 2      1 1
//                         7  4 3      6 5      8 7      0
// +--------+--------+----+----+--------+--------+--------+
// |////////|////////|////|    |        |        |        |
// +--------+--------+----+----+--------+--------+--------+
typedef union 
{
  chs_t chs;
  char data[6]; // 28 or 48 bit LBA
} disk_address_t;

 

 

磁盘操作

 

读取一个扇区

 

读取n个扇区

 

写入扇区

可能写入一个或多个扇区。

 

磁盘接口

 

  • 大小: 58.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics