概述

苹果机使用基于它自己硬件平台的操作系统,是一种基于Unix内核的操作系统,目前的版本为Mac OS X。同时,苹果机所使用的Apple分区体系也与众不同,它与DOS分区体系相比要简单得多。Apple分区体系广泛应用于苹果机、iPod及用来传递文件的Mac磁盘镜象文件(Mac磁盘镜象文件类似于Windows下的zip或者是Unixtar压缩文件, 被传递的文件保存在镜象文件中的文件系统中,而这个文件系统则需要存在于一个分区中) 。在Apple分区体系中,分区表不只描述文件系统分区,对分区表本身所处的区域也使用一个分区表项进行描述,甚至磁盘中的空闲空间也会有分区表项对其进行描述。
Apple磁盘中,并不是所有的分区都是有文件系统的。只有用于存储用户数据的分区才会建立相应的文件系统。苹果机使用单独的区域存放硬件驱动,这部分区域不会建立文件系统,但会在分区表中对其位置及大小进行描述。

Apple磁盘布局

由于Apple的构造不同,Apple磁盘没有MBR磁盘中所特有的主引导记录,所以它的0号扇区只用于记录磁盘的一些基本信息。图2.23为一个Apple磁盘的0号扇区(为节省篇幅,只显示了该扇区的前面部分,后面全部为0的部分省略)。
Apple分区总体布局结构_职场
2.23  Apple磁盘的0号扇区
可以看到,Apple磁盘的0号扇区只有很少的内容,图2.23中加亮部分含义如下:
1)    0x000x012个字节,这两个字节一定为0x4552(ER)
2)    0x020x032个字节,每扇区字节数,一般为512
3)    0x040x074个字节,本磁盘扇区数。
下面给出其数据结构定义,有兴趣的读者可以自行研究。
Struct Block0{
Uint16 sbSig;         //标识0X4552
Uint16 sbBlkSize;     //扇区(逻辑块)大小0200512字节
Uint32 sbBlkCount;    //扇区数0000820033280个扇区
Uint16 sbDevType;
Uint16 sbDevID;
Uint32 sbData;
Uint16 sbDrvrCount;
Uint32 ddBlock;
Uint16 ddSize;
Uint16 ddType;
Uint16 ddPad[134];
};
typedef struct Block() Block0;
 
 
Apple磁盘也不象MBR磁盘那样在引导扇区中建立分区表,而是单独使用一部分扇区存储分区表项(通常起始于整个磁盘的第二个扇区),而且这个分区表区域也有一个分区表项指向它,描述它的起始位置及大小信息,所以我们也可以把分区表区域称为“分区表分区”。 
提示:Apple分区体系没有分区数量限制,它的分区表可以描述任意个分区。
一个Apple磁盘的总体布局大致如图2.24所示。
Apple分区总体布局结构_休闲_02
2.24  Apple磁盘总体布局
 
可以看到,在Apple磁盘内,除0号扇区外,其他所有的区域都有分区表项指向它,包括分区表分区本身以及磁盘尾部的空闲空间。