博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一台计算机为什么可以同时安装不同的操作系统——原理分析
阅读量:4181 次
发布时间:2019-05-26

本文共 1158 字,大约阅读时间需要 3 分钟。

有些朋友可能会在自己的计算机上安装双系统,也就是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了。这样是不是更能理解计算机能同时安装多系统的原理了呢。

转载地址:http://iwhai.baihongyu.com/

你可能感兴趣的文章
map::lower_bound/upper_bound的使用
查看>>
C++ STL中Map的按Key排序和按Value排序
查看>>
互斥量、条件变量与pthread_cond_wait()函数的使用,详解
查看>>
IO模式设置网络编程常见问题总结
查看>>
windows 编译webrtc 58版本库
查看>>
git tag操作教程
查看>>
Ubuntu系统中git每次提交都要输入密码怎么办?
查看>>
constexpr关键字
查看>>
std::copy详解
查看>>
C++11 新特性摘抄
查看>>
WebRTC学习之函数的异步执行
查看>>
WebRTC 的 PROXY - 如何解决应用中的线程乱入
查看>>
Android Audio回声消除学习笔记
查看>>
Android AudioRecord和AudioTrack介绍
查看>>
Mac系统升级Git
查看>>
vs2017 编译webrtc warning C4005: “AF_IPX”: 宏重定义的解决办法
查看>>
std::max、std::min error C2589: “(”:“::”右边的非法标记,error C2059: 语法错误:“::”
查看>>
在Ubuntu Server上编译FFmpeg
查看>>
git 切换到远程分支
查看>>
AAC的ADTS头文件信息介绍
查看>>