Chinaunix首页 | 论坛 | 博客
  • 博客访问: 80910
  • 博文数量: 29
  • 博客积分: 388
  • 博客等级: 一等列兵
  • 技术积分: 197
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-28 16:34
文章分类

全部博文(29)

文章存档

2013年(1)

2012年(28)

我的朋友

分类: LINUX

2012-06-20 22:18:08

先说说目前广泛使用的磁盘分区表方案。传统的分区方案 ( 称为 MBR 分区方案 ) 是将分区信息保存到磁盘的第一个扇区 (MBR 扇区 ) 中的 64 个字节中,每个分区项占用 16 个字节,这 16 个字节中存有活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、隐含扇区数目 (4 个字节 ) 、分区总扇区数目 (4 个字节 ) 等内容。由于 MBR 扇区只有 64 个字节用于分区表,所以只能记录 4 个分区的信息。这就是硬盘主分区数目不能超过 4 个的原因。后来为了支持更多的分区,引入了扩展分区及逻辑分区的概念。但每个分区项仍用 16 个字节存储。

MBR 分区方案不是用得好好的吗?为什么要提出新的方案呢?那就让我们看看 MBR 分区方案有什么问题。前面已经提到了主分区数目不能超过 4 个的限制,这是其一,很多时候, 4 个主分区并不能满足需要。另外最关键的是 MBR 分区方案无法支持超过 2TB 容量的磁盘。因为这一方案用 4 个字节存储分区的总扇区数,最大能表示 2 的 32 次方的扇区个数,按每扇区 512 字节计算,每个分区最大不能超过 2TB 。磁盘容量超过 2TB 以后,分区的起始位置也就无法表示了。在硬盘容量突飞猛进的今天, 2TB 的限制将很快被突破。由此可见, MBR 分区方案已经无法满足需要了。下面介绍 GUID 分区表方案。

GUID 分区表 ( 简称 GPT 。使用 GUID 分区表的磁盘称为 GPT 磁盘 ) 是源自 EFI 标准的一种较新的磁盘分区表结构的标准。与目前普遍使用的主引导记录 (MBR) 分区方案相比, GPT 提供了更加灵活的磁盘分区机制。它具有如下优点:
1 、支持 2TB 以上的大硬盘。
2 、每个磁盘的分区个数几乎没有限制。为什么说“几乎”呢?是因为 Windows 系统最多只允许划分 128 个分区。不过也完全够用了。
3 、分区大小几乎没有限制。又是一个“几乎”。因为它用 64 位的整数表示扇区号。夸张一点说,一个 64 位整数能代表的分区大小已经是个“天文数字”了,若干年内你都无法见到这样大小的硬盘,更不用说分区了。
4 、分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表。其中一份被破坏后,可以通过另一份恢复。
5 、每个分区可以有一个名称 ( 不同于卷标 ) 。

目前多数的个人电脑系统还无法完美支持 GPT 磁盘。但是这并不意味着我们不需要了解 GUID 分区方案。别忘了,硬件的发展速度总是令人吃惊的。 1.5TB 的硬盘已经大量上市, 2TB 以上容量的硬盘很快就会普及,基于 EFI 的主板也正在销售。 GUID 分区方案终将成为主流 。

EFI 就是 Intel 设计用来取代 BIOS 的东西

EFI 是用模块化, C 语言风格的参数堆栈传递方式,动态链接的形式构建的系统,较 BIOS 而言更易于实现,容错和纠错特性更强,缩短了系统研发的时间。它运行于 32 位或 64 位模式,乃至未来增强的处理器模式下,突破传统 16 位代码的寻址能力,达到处理器的最大寻址。它利用加载 EFI 驱动的形式,识别及操作硬件,不同于 BIOS 利用挂载实模式中断的方式增加硬件功能。后者必须将一段类似于驱动的 16 位代码,放置在固定的 0x000C0000 至 0x000DFFFF 之间存储区中,运行这段代码的初始化部分,它将挂载实模式下约定的中断向量向其他程序提供服务。例如, VGA 图形及文本输出中断 (INT 10h) ,磁盘存取中断服务 (INT 13h) 等等。由于这段存储空间有限 (128KB) , BIOS 对于所需放置的驱动代码大小超过空间大小的情况无能为力。另外, BIOS 的硬件服务程序都已 16 位代码的形式存在,这就给运行于增强模式的操作系统访问其服务造成了困难。因此 BIOS 提供的服务在现实中只能提供给操作系统引导程序或 MS-DOS 类操作系统使用。而 EFI 系统下的驱动并不是由可以直接运行在 CPU 上的代码组成的,而是用 EFI Byte Code 编写而成的。这是一组专用于 EFI 驱动的虚拟机器指令,必须在 EFI 驱动运行环境 (Driver Execution Environment ,或 DXE) 下被解释运行。这就保证了充分的向下兼容性,打个比方说,一个带有 EFI 驱动的扩展设备,既可以将其安装在安腾处理器的系统中,也可以安装于支持 EFI 的新 PC 系统中,而它的 EFI 驱动不需要重新编写。这样就无需对系统升级带来的兼容性因素作任何考虑。另外,由于 EFI 驱动开发简单,所有的 PC 部件提供商都可以参与,情形非常类似于现代操作系统的开发模式,这个开发模式曾使 Windows 在短短的两三年时间内成为功能强大,性能优越的操作系统。基于 EFI 的驱动模型可以使 EFI 系统接触到所有的硬件功能,在操作操作系统运行以前浏览万维网站不再是天方夜谭,甚至实现起来也非常简单。这对基于传统 BIOS 的系统来说是件不可能的任务,在 BIOS 中添加几个简单的 USB 设备支持都曾使很多 BIOS 设计师痛苦万分,更何况除了添加对无数网络硬件的支持外,还得凭空构建一个 16 位模式下的 TCP/IP 协议栈。

  一些人认为 BIOS 只不过是由于兼容性问题遗留下来的无足轻重的部分,不值得为它花费太大的升级努力。而反对者认为,当 BIOS 的出现制约了 PC 技术的发展时,必须有人对它作必要的改变。

  

   EFI 在概念上非常类似于一个低阶的操作系统,并且具有操控所有硬件资源的能力。不少人感觉它的不断发展将有可能代替现代的操作系统。事实上, EFI 的缔造者们在第一版规范出台时就将 EFI 的能力限制于不足以威胁操作系统的统治地位。首先,它只是硬件和预启动软件间的接口规范;其次, EFI 环境下不提供中断的访问机制,也就是说每个 EFI 驱动程序必须用轮询的方式来检查硬件状态,并且需要以解释的方式运行,较操作系统下的驱动效率更低;再则, EFI 系统不提供复杂的存储器保护功能,它只具备简单的存储器管理机制,具体来说就是指运行在 x86 处理器的段保护模式下,以最大寻址能力为限把存储器分为一个平坦的段,所有的程序都有权限存取任何一段位置,并不提供真实的保护服务。当 EFI 所有组件加载完毕时,系统可以开启一个类似于操作系统 Shell 的命令解释环境,在这里,用户可以调入执行任何 EFI 应用程序,这些程序可以是硬件检测及除错软件,引导管理,设置软件,操作系统引导软件等等。理论上来说,对于 EFI 应用程序的功能并没有任何限制,任何人都可以编写这类软件,并且效果较以前 MS-DOS 下的软件更华丽,功能更强大。一旦引导软件将控制权交给操作系统,所有用于引导的服务代码将全部停止工作,部分运行时代服务程序还可以继续工作,以便于操作系统一时无法找到特定设备的驱动程序时,该设备还可以继续被使用。
阅读(2340) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~