为什么BIOS不直接加载Linux内核 - 为什么MBR和所有麻烦?

Pin*_*ade 0 linux operating-system kernel mbr bios

我最近了解了Linux的启动过程.我不禁想知道为什么我们经历了在BIOS之后接受MBR的麻烦,以便那里的指令可以反过来将内核加载到RAM中.

为什么中间人 - 为什么BIOS不直接加载内核?

bta*_*bta 7

引导旨在成为一个多阶段过程.每个阶段都知道足以加载下一个阶段.这使每个阶段变得简单,并使升级尽可能轻松(想象在安装新操作系统时需要重新编程BIOS).

也许更重要的是,它使整个过程尽可能地与平台无关.您可以使用新平台或实现替换链中的任何步骤,并且该过程的其余部分仍然可以工作.如果BIOS直接加载操作系统,则必须了解并能够解释文件系统,引导加载程序,操作系统在磁盘上存储组件的方式,需要加载哪些组件等.这需要完成对于每个操作系统,文件系统,引导加载程序等.如果创建了新的文件系统(例如),除非重新编程BIOS以了解它,否则将无法使用它.由于大多数BIOS源代码不公开,这将使开发文件系统和操作系统变得非常困难.

另一件需要考虑的事情是,虽然很有可能升级BIOS以获得对新事物的支持,但这是人们尽可能避免的事情.如果在重新刷新BIOS时遇到任何问题,那么您很可能会遇到破碎且无法恢复的系统.避免需要刷新BIOS的最简单方法是保持它非常简单,以至于它是如此通用,以至于没有什么需要升级(尽管有错误修正).