将所有硬件驱动集成到UEFI是否可行?
你要先想一下为什么要从BIOS升级到UEFI?
弃用BIOS的核心原因就一条:内存不够用了。
BIOS实际可以使用的内存只有0xA0000-0xFFFFF这一段,这里还要扣除显存映射的区域,实际可以用的内存就200多KB,PC机要的BIOS要支持各种总线:SATA/USB/NVME,还要支持基本显示功能,USB还要区分UHCI/EHCI/XHCI,还要支持基础的PCI,USB还要支持U盘、键盘、鼠标等常见的USB设备,这些驱动要统统塞进不到200KB的内存区域(还要留点运行内存)实在太难了。
所以才要有UEFI,UEFI上来就是保护模式,地址空间上来就是32/64位的,可以说没有内存的限制了。
厂商推UEFI,其实就是BIOS的不到200KB的内存不够玩了。
现在题主又要把所有驱动都放到UEFI。首先,这么做是可行的,就像当年DOS操作系统主要的功能也是依赖BIOS一样,如果所有驱动都放到UEFI,那么操作系统就可以做的很简单了。麻烦的点在于,板子是可以插外设的,除非定制化的硬件,否则你如果换了一个显卡,那么新的显卡驱动怎么更新到UEFI里?现在的驱动经常几百M甚至上G,驱动程序存在哪里?板子上再集成一块flash?
如果所有驱动都放到UEFI上,那么主板厂商最多只能集成板子自带的硬件驱动,对于非自带的(比如显卡),硬件厂商没能力集成,也没办法集成——这是操作系统要做的事情。
如果题主只是想开发操作系统,其实使用UEFI做基础的驱动工作是足够的,但是UEFI的驱动性能很一般,并不满足大多数用户的需求。
不管是BIOS也好,还是UEFI,或者操作系统,每个阶段的代码都应该只关注自己对应的阶段的工作,UEFI的功能是启动,那么就专注做启动相关的东西就好了。
编辑于 2026-01-30 · 著作权归作者所有