我最近了解了 Linux 的启动过程。我不禁想知道为什么我们要在 BIOS 之后经历访问 MBR 的麻烦,以便那里的指令可以反过来将内核加载到 RAM 中。
为什么是中间人 - 为什么 BIOS 不直接加载内核?
最佳答案
引导被设计为一个多阶段过程。每个阶段只知道足以加载下一阶段。这使每个阶段都变得简单,并使升级尽可能轻松(想象一下在安装新操作系统时需要重新编程您的 BIOS)。
也许更重要的是,它使整个过程尽可能与平台无关。您可以用新平台或实现替换链中的任何步骤,其余过程应该仍然有效。如果 BIOS 直接加载操作系统,它必须了解并能够解释文件系统、引导加载程序、操作系统在磁盘上存储组件的方式、需要加载哪些组件等。这需要完成对于每个操作系统、文件系统、引导加载程序等。如果创建了一个新的文件系统(例如),除非你重新编程你的 BIOS 以理解它,否则你将无法使用它。由于大多数 BIOS 源代码不公开,这将使开发文件系统和操作系统变得极其困难。
另一件需要考虑的事情是,虽然升级 BIOS 以获得对新事物的支持是很有可能的,但这是人们尽量避免的事情。如果您在重新刷新 BIOS 时遇到任何问题,您很有可能会以损坏且无法恢复的系统告终。避免需要刷新 BIOS 的最简单方法是保持它非常简单,以至于它非常通用以至于没有任何东西需要升级(尽管有错误修复)。
关于linux - 为什么 BIOS 不直接加载 Linux 内核 - 为什么是 MBR 和所有那些麻烦?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12521277/