![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
BIOS
文章平均质量分 68
河马虚拟化
这个作者很懒,什么都没留下…
展开
-
SeaBIOS(2) - 硬件架构
每个BIOS一般都会有自己适配的一套硬件架构,因为不同的硬件资源对于BIOS的要求及操作都会有不同,硬件资源千变万化,BIOS程序不可能考虑到所有的情况。SeaBIOS也不例外。SeaBIOS所针对的硬件平台是奔腾时代的PC架构,以Intel 440FX PMC(PCI and Memory Controller)为北桥芯片,PIIX(PCI ISA Xcelerator)为南桥芯片构成相应的...原创 2018-07-09 07:31:42 · 1896 阅读 · 0 评论 -
BCV和BEV是个什么鬼?
前段时间在阅读SeaBIOS(即QEMU+KVM解决方案中用到的BIOS程序)的代码遇到了BCV和BEV这两个缩写词,找了半天才搞明白是什么意思。在这里跟大家分享一下。BCV: Boot Connection Vector,这是一个指针,该指针指向PCI设备的Option ROM内部,该指针是一个程序的入口,BIOS通过该指针入口,可进行PCI设备的初始化、检测PCI设备是否外挂了其他外设(如PC...原创 2018-07-04 06:59:53 · 4058 阅读 · 0 评论 -
SeaBIOS(3) - 启动流程
SeaBIOS程序的各种入口点都在src/romlayout.S这个文件中定义了,启动包括了vCPU上电后开始执行的起点src/romlayout.S:reset_vector,该位置会被QEMU加载...原创 2018-07-13 06:57:00 · 2388 阅读 · 0 评论 -
SeaBIOS(1) - 简介
SeaBIOS是一个开源的16bit x86 BIOS程序,它可以运行在模拟器上,或者是在x86硬件平台上和coreboot一起使用。这里主要介绍其运行在QEMU+KVM这样的虚拟化模拟器上的情况,对coreboot的情况暂时不说明。BIOS程序是计算机上电后,CPU第一个开始运行的程序,完全运行在裸金属上,用于完成对系统硬件的初始化,并且为启动OS做好准备。BIOS程序跟具体的硬件具有很高的耦合...原创 2018-07-07 08:42:34 · 9414 阅读 · 0 评论 -
系统启动过程屏幕的显示是如何实现的?
QEMU+KVM的虚拟化环境中,系统启动执行SeaBIOS对系统设备进行初始化,包括VGA设备。为了能够让VGA能够显示处图像(显卡在系统中一般是以PCI设备的形式出现在系统中,然后显示器通过VGA线连接到显卡上)。SeaBIOS会在较早的时候,即枚举完系统的PCI设备后,就去将显卡的PCI Option ROM读取出来,然后执行,显卡的PCI Option ROM会对显卡进行初始化,并且会注册中...原创 2018-07-25 07:35:20 · 699 阅读 · 0 评论 -
SeaBIOS(4) - 如何理解shadow BIOS
SeaBIOS运行的一个模拟硬件平台是奔腾时代的PC架构,以Intel 440FX PMC(PCI and Memory Controller)为北桥芯片,PIIX4(PCI ISA IDE Xcelerator)为南桥芯片为基本组成架构。其中PMC可用于连接内存,如下图所示:PMC控制器在系统中是以PCI设备的形式存在的,在该PCI设备中存在着一组PAM(Programmable Attribu...原创 2018-07-27 07:39:12 · 2002 阅读 · 7 评论 -
Linux启动时如何定位BIOS提供的ACPI表
ACPI(Advanced Configuration and Power Interface)是在系统启动阶段由BIOS/UEFI收集系统各方面信息并创建的,它大致以树形的组织形式(如下图所示)存在系统物理内存中。整个ACPI表以RSDP(Root System Descriptor Pointer Table)为入口点,每个非叶子节点都会包含指向其他子表的指针,各个表都会有一个表头,在...原创 2018-08-18 22:38:17 · 7059 阅读 · 0 评论 -
Linux如何定位BIOS提供的SMBIOS表
详细梳理Linux内核是如何定位到BIOS/UEFI提供的SMBIOS表的。原创 2018-08-30 06:50:11 · 5163 阅读 · 0 评论