GNU GRUB(简称“GRUB”)是一个来自GNU项目的启动引导程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
mbr是硬盘的主引导记录,属于引导区
内核简介
内核(kernel),是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。
内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的,所以内核通常提供一种硬件抽象的方法来完成这些操作。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。
严格地说,内核并不是计算机系统中必要的组成部分。程序可以直接地被调入计算机中执行,这样的设计说明了设计者不希望提供任何硬件抽象和操作系统的支持,它常见于早期计算机系统的设计中。最终,一些辅助性程序,例如程序加载器和调试器,被设计到机器核心当中,或者固化在只读存储器里。这些变化发生时,操作系统内核的概念就渐渐明晰起来了。
BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
DOS,是磁盘操作系统(Disk Operating System)英文的缩写,是个人计算机上的一类操作系统。
BOOT,系统引导文件,在根目录下,bios设置中主要用于设置系统启动的地方,比如可以设置从硬盘,光驱或U盘启动。
Mbr和grub引导系统
在装系统的时候,会有提示为系统装载什么样的引导程序,其中就有一个grub引导程序。而系统装完后,启动的时候,mbr会直接载入grub引导程序。
由硬盘启动时,BIOS通常是转向第一块硬盘的第一个扇区,即主引导记录(MBR)。
装载GRUB和操作系统的过程,包括以下几个操作步骤:
装载记录
基本引导装载程序所做的唯一的事情就是装载第二引导装载程序。即mbr载入grub的过程。
装载Grub
这第二引导装载程序实际上是引出更高级的功能,以允许用户装载一个特定的操作系统。所以有多种引导装载程序,grub只是其中一种。这里强调指出,grub只是mbr的升级版,补充完成mbr所做不了的事情,其实他们的本质都一样,都是引导程序。也可以这么理解,mbr是唯一的,基于mbr之上的引导程序不唯一。而为什么在字节大小一样的条件下,mbr不能做的事情,grub却能够做到,这一点我还在研究中。Grub高级在什么地方?
知识点补充:从定义上看,mbr是磁盘上的一小段扇区,而grub是一段程序,虽然他们都是起到了引导系统的作用,但归根结底本质是不一样的。我们可以这样理解,mbr是在起到引导作用的同时,用来存放代码的空间,而grub则是单纯的引导程序,程序一执行,bios就将系统对内核的操作权限交给了操作系统,接下来的事情就跟grub这些引导程序没有了半毛钱的关系。(我说的若是有错,希望高手看到,帮忙指出啊。)
装载系统
简单的说,就是把机器的控制权移交给操作系统。