操作系统引导

操作系统是如何引导的呢? 当系统加电自检通过以后,硬盘被复位,BIOS将根据用户指定的启动顺序从软盘、硬盘或光驱进行启动。以从硬盘启动为例,系统BIOS将主引导记录读入内存。然后,将控制权交给主引导程序,然后检查分区表的状态,寻找活动的分区。最后,由主引导程序将控制权交给活动分区的引导记录,由引导记录加载操作系统。
    
对于DOSWIN9X等操作系统而言,分区引导记录将负责读取并执行IO.sys(Windows9xIO.sys)
    
首先要初始化一些重要的系统数据,然后就会出现我们非常熟悉的蓝天白云。这时候,Windows将继续进行DOS部分和GUI(图形用户界面)部分的引导和初始化工作。如果系统中安装有引导多种操作系统的工具软件,通常主引导记录将被替换成该软件的引导代码。这些代码将允许用户选择一种操作系统,然后读取并执行该操作系统的基本代码。
    
对于WIN NT/2000来说,则由是NTLDR这个程序负责将其装入内存,或者让用户选择非WIN NT/2000操作系统。引导装入程序和多重引导都由一个具有隐含属性的初始化文件boot.ini控制。在boot.ini中包含有控制计算机可用的操作系统的设置,引导的缺省操作系统以及应当等待多少时间等信息。
    
从计算机引导过程的描述中可以发现,我们可以人为的加以干预的地方只有两处,一是设置物理盘的引导次序,二是修改主引导程序的分区表。
      
1)多硬盘的多系统共存:如果你采用的是多硬盘的计算机,而且每块硬盘都安装有不同操作系统时,建议你通过在CMOS中指定硬盘的启动次序,实现多操作系统的共存。由于操作系统之间互不影响,所以这种方法完全不受兼容性等其他因素的影响。
      
2)单硬盘的系统共存:而如果你只有一块硬盘,并也想在上面安装多个操作系统而相互不受影响,你则必须采用修改主引导程序和分区表的方法来实现。一般有两种方法。一是修改主引导记录,在主引导记录的最后用JMP指令跳到自己的代码上来,从而控制计算机的引导过程;另外一种方法是修改主分区第一个扇区的引导代码,以实现多系统的共存。
原文地址:https://www.cnblogs.com/yukun/p/1987612.html