引导加载程序
2023-06-08 08:00:00
·
飞浪
·
Elle Krout
打开计算机系统时会发生什么?从最基本的层面上讲,我们知道计算机的组件通电后,操作系统“启动”,以便用户能够与系统交互-无论是玩游戏、运行Web服务器、设置深入应用程序还是其他。但是计算机如何知道要
打开计算机系统时会发生什么?从最基本的层面上讲,我们知道计算机的组件通电后,操作系统“启动”,以便用户能够与系统交互 - 无论是玩游戏、运行 Web 服务器、设置深入应用程序还是其他。但是计算机如何知道要启动什么?如果处理器从系统内存中提取数据,它如何与内存存储中没有任何进程的新启动计算机一起工作?为此,计算机使用引导加载程序,这是一小段代码,旨在准备系统,然后将其传递给更复杂的内核,而内核又管理操作系统本身。引导加载程序位于硬盘驱动器(持久性内存)内的预定义位置;代码从此位置被拉入随机存取存储器以供处理器运行。从这里,引导加载程序准备系统环境,然后将控制权移交给内核或引导扇区。操作系统从内核运行;从引导扇区开始,新的引导加载程序将为引导过程的下一阶段做好准备 - 无论这是另一个引导扇区还是链中要运行的最后一个过程。引导加载程序被另一个引导过程接管一次或多次称为链式加载。某些引导加载程序(尤其是 Linux 发行版使用的引导加载程序)通常能够进行双重或多重引导。当一台计算机有多个操作系统需要引导时,就会使用这种方法。这些引导启动器通常具有简单的终端式界面,可以从中选择操作系统。
主引导记录
最初,主引导分区组织架构是引导 Linux(和其他)系统的唯一选择。这是计算机分区开头的引导部分,包含用于引导操作系统的可执行代码。主引导记录最多可与四个分区配合使用,引导磁盘大小最高可达 2 TB*。使用替代 GUID分区表时,这些限制将被消除。
GUID 分区表
GUID 分区表是一种 UEFI 分区组织架构,可以与 MBR 分区共存。与 MBR 不同,它不包含分区数量或大小限制。因此,一些 BIOS 系统使用 GPT,而更大的技术社区倾向于远离 MBR。许多兼容 Linux 的引导加载程序都适用于 MBR 和 GPT,包括经常使用的引导加载程序
GNU GRUB 。GNU GRUB
Linux 用户和发行版中常见的引导加载程序是 GRUB,它由 GNU 项目创建,其中GRUB 2是 GRUB 的最新版本,而 GRUB 1 被视为旧版本。GRUB 1 不再处于积极开发中,并且正在逐步淘汰。GRUB 使用链式加载,其加载过程分为两步。步骤 1 位于 MBR 中,它加载core.img的第一部分,其中包含引导进入 GRUB 所需的内容。阶段 1.5 完成映像加载。最后,第二阶段从/boot菜单引导 GRUB,并在终端界面中提示用户选择操作系统。选择后,GRUB 将系统移交给内核。顾名思义,GRUB 具有多重引导功能,符合自由软件基金会的多重引导规范。这样,用户就可以从任意数量的兼容操作系统启动,并且系统之间的切换也变得相当容易。GRUB 还为用户提供了类似 BASH 的界面来与子系统交互,使用户能够更好地控制 GRUB 的使用和配置。总体而言,引导加载程序可以简单到立即将控制权传递给内核,也可以复杂到它要启动的某些操作系统;例如,GRUB 作为引导加载程序特别复杂,而其他引导加载程序(如 gummiboot)则专注于无需配置和“正常工作”。Linux 的引导加载程序并不止于 GRUB,因为许多系统仍在使用 LILO(Linux 加载程序)或其他程序。有了可用的引导加载程序选择(甚至可以自己制作),对于那些希望从头到脚配置系统甚至只是探索可能性的人来说,有很多选择。* 请注意,这并不妨碍系统访问大于 2 TB 的硬盘。只有引导分区不能超过 2TB。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~