目录

一台计算机为什么可以同时安装不同的操作系统原理分析

目录

一台计算机为什么可以同时安装不同的操作系统——原理分析

有些朋友可能会在自己的计算机上安装双系统,也就是Windows和Linux系统,特别是计算机行业的人,但我没去想过为什么,看到鸟哥的私房菜这本书的时候才明白,所以在这里记录下来。

首先提出问题 :因为不同的操作系统的文件格式可能不同,所以我们需要 启动引导程序(boot loader) 来处理内核文件的加载;这个启动引导程序就安装在启动设备的第一个扇区,也就是 主引导记录(MBR) 。loader的主要功能就是识别操作系统的文件格式,并且加载内核到内存中执行,由于不同的操作系统有自己的boot loader。

那么问题来了,既然不同的操作系统需要自己的loader才能加载属于自己操作系统的内核文件,而MBR又只有一个,在安装多重操作系统时,MBR会被覆盖,那为什么一台计算机上又能同时安装不同的操作系统呢?

原理解答:

每个文件系统都会保留一块启动扇区(boot sector)提供操作系统安装boot loader。每个操作系统都会默认安装一个boot loader到它的文件系统中,在安装Windows的时候,它会默认在MBR和boot sector上都装上一份boot loader;而Linux在安装时,可以选择将boot loader安装到MBR中,也可以选择不安装。

接下来讲一下boot loader的功能就能解答文章开始的问题了。

  • 提供选项:用户可以选择不同的启动项,这也是多重引导的重要功能;
  • 加载内核文件:直接指向可启动的程序区域来启动操作系统;
  • 转交启动管理功能:将启动管理功能转交给其他的loader负责。

由于具有选项功能,我们可以选择不同操作系统的内核来启动;再加上具有控制权转交的功能,所以可以加载其他boot sector内的loader。这就回答了我们的问题。

同时安装Windows系统和Linux系统先安装Windows系统!

如果我们的计算机要安装Windows和Linux的双系统,那么要先安装Windows系统,再安装Linux系统。因为Windows的loader默认不具控制权转交功能。我们先安装Windows系统之后,MBR中安装的是Windows系统的boot loader,然后再安装Linux系统,然后Linux系统的boot loader会覆盖MBR中的windows的boot loader;但由于Linux的loader具有控制权转交功能,所以在启动系统的时候我们可以选择Windows,且能用loader引导启动。 反过来,如果我们先安装Linux,再安装Windows,MBR中是Windows的boot loader,但是Windows的loader不具控制权转交功能,也就没法再启动Linux了。这样是不是更能理解计算机能同时安装多系统的原理了呢。