SeaBIOS(1) - 简介

SeaBIOS是一个开源16bit x86 BIOS,常用于QEMU+KVM模拟器。它在虚拟机启动时运行,初始化虚拟硬件,设置中断服务,创建ACPI和SMBIOS表,然后引导OS。与传统BIOS不同,SeaBIOS在虚拟化环境中简化了硬件设备模拟、内存和总线配置,主要关注功能相关配置。SeaBIOS可被视为简化版BIOS,减少了对硬件内部机制和物理特性的模拟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SeaBIOS是一个开源的16bit x86 BIOS程序,它可以运行在模拟器上,或者是在x86硬件平台上和coreboot一起使用。这里主要介绍其运行在QEMU+KVM这样的虚拟化模拟器上的情况,对coreboot的情况暂时不说明。

BIOS程序是计算机上电后,CPU第一个开始运行的程序,完全运行在裸金属上,用于完成对系统硬件的初始化,并且为启动OS做好准备。BIOS程序跟具体的硬件具有很高的耦合度,基本上不同的硬件架构都会对应不同的BIOS程序,所以一般计算机厂商都会自己开发BIOS程序,虽然可能有很多部分是可以共用的,但是每个厂商设计的计算机硬件架构都会有区别,所以还是有一部分需要自己定制。SeaBIOS虽然是运行在模拟器上,但是也有自己适配的一套硬件架构,理解SeaBIOS适配的硬件架构(下一篇文章会讲)对于理解SeaBIOS的代码具有很重要的作用。

SeaBIOS也像正常的BIOS一样,在虚拟机上电的时候,会被加载到地址空间0xFFFFFFF0处,并且该处是一条跳转指令,虚拟机的虚拟CPU会去执行SeaBIOS的代码,完成虚拟硬件的初始化,中断服务函数的设置,ACPI表、SMBIOS表等的创建,最后引导启动OS。

SeaBIOS和正常BIOS的区别在于其运行的环境是一个由Hypervisor模拟出来的环境,有很多地方可以简化,主要表现为:

  1. 虚拟化环境中对硬件设备进行模拟的对象是硬件设备的功能及对外的接口,并不需要去模拟硬件设备的内部运行机制和设备的物理特性,所以就可以大大简化一些模拟设备的配置和初始化,其中包括:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值