首页 理论教育 预置引导法概述-操作系统实现之路

预置引导法概述-操作系统实现之路

时间:2023-10-21 理论教育 版权反馈
【摘要】:在Hello China操作系统的设计中,就采用了一种称为“预置引导法”的策略,有效规避了上述两个问题。可见,预置引导法有一个前提:一旦操作系统核心文件被写入硬盘,其位置也不能变动。我们可以通过一些策略,来改进预置引导法,使得该方法能够避免上述局限。下面以Hello China操作系统的引导程序为例,针对不同的文件系统,来说明预置引导法的设计思想。

预置引导法概述-操作系统实现之路

那么,是否就意味着一定不能在同一个分区上安装不同生产厂家提供的操作系统呢?笔者认为答案是否定的。我们可以通过一些设计,来有效协调不同厂商的操作系统,在同一个分区上和谐共存。在Hello China操作系统的设计中,就采用了一种称为“预置引导法”的策略,有效规避了上述两个问题。

预置引导法的整体思路是,在操作系统安装的时候,根据实际硬盘的文件系统情况,预先读取操作系统核心模块在磁盘上的物理位置,并直接写入引导扇区。这样引导扇区在引导操作系统的时候,就无需再自行分析文件系统、确定操作系统核心文件的位置了,而只要从引导扇区预先设定的位置中,把文件在磁盘上的物理位置找出来,加载进内存即可。可见,预置引导法有一个前提:一旦操作系统核心文件被写入硬盘,其位置也不能变动。因为核心文件在磁盘上的位置,会被写入引导扇区。如果文件的位置改变,则仍然无法引导。这显然也是苛刻的,与固定操作系统在磁盘上的位置的策略有同样限制(但这两者有根本的不同:预置引导法要求操作系统核心文件在磁盘上的位置不变即可,其位置不固定,具体位置是文件被复制到磁盘上时确定的。而固定操作系统核心模块在磁盘特定位置的做法,则是要求系统文件一定要位于磁盘的某个固定位置,比如1024扇区开始)。

我们可以通过一些策略,来改进预置引导法,使得该方法能够避免上述局限。总体改进策略就是,在操作系统安装的时候动态生成(或动态配置)引导扇区内容,把能够固定的数据,事先写入引导扇区,避免引导扇区自行计算这些参数,从而降低引导扇区的代码量。比如,大部分引导扇区都需要计算一个cluster的大小,具体计算方法是根据每个扇区的字节数,乘以每个cluster的扇区数。显然,在操作系统安装的时候,cluster的大小就固定了。因此可直接在引导扇区中设置一个变量(cluster的尺寸),并写入cluster的尺寸值。这样引导扇区就无需计算cluster的大小,而直接引用即可。这种方法可大大减少引导扇区代码量。(www.xing528.com)

下面以Hello China操作系统的引导程序为例,针对不同的文件系统,来说明预置引导法的设计思想。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈