至少作为一般规则,更换固件绝非易事。问题是固件必须专门为一块主板或至少一块芯片组编写 - 如果安装在芯片组B上,芯片组A的固件很可能会挂起,或至少表现不佳。我没有确切的说明数量,但多年来必须生产数百甚至数千个PC芯片组。在NewEgg上搜索,我看到他们列出了目前可用的英特尔主板的20个芯片组,以及目前可用的AMD主板的12个芯片组。
目前,开源(或接近它)替代固件的首选解决方案是CoreBoot。这提供了一个用于构建简单硬件初始化核心的工具包,您可以在其上安装几个“有效负载”以提供功能 - 例如,开源BIOS,开源UEFI,GRUB或Linux内核。与x86 PC的总历史相比,CoreBoot 支持的主板列表相当小。(当然,CoreBoot可能比官方支持的列表更广泛的硬件上工作,但是如果你想在列表上没有的东西上尝试它,那么你将会非常开心。)
对于那些在意识形态上反对专有软件的Richard Stallman来说,这当然是个问题。大多数计算机都依赖于专有固件,即使它们运行完全开源的操作系统和应用程序堆栈。虽然CoreBoot是一些选项,但它足够模糊,未经测试,并且在支持的计算机中足够有限,它将严重限制您的硬件选择,如果您坚持使用它可能需要大量额外的努力。大多数人都不在乎任何麻烦去摆脱专有固件。对于那些做的人来说,CoreBoot的局限性是一个问题; 你不能只是将CoreBoot作为一种替代方式,可以将Linux作为Windows的替代品放到计算机上。