docs: update virt/vm/firmware

This commit is contained in:
lukas 2022-01-25 16:10:43 +00:00
parent dcc4971815
commit 128143cf29

View File

@ -2,12 +2,39 @@
title: Firmware
description:
published: true
date: 2022-01-25T14:50:10.751Z
date: 2022-01-25T16:10:41.217Z
tags:
editor: markdown
dateCreated: 2022-01-25T14:50:10.751Z
---
# Firmware
# Platform firmware
Firmware, or platform firmware, are software that are tightly integrated with the hardware, and used during the process of booting it.
Firmware are software that are tightly integrated with the hardware. Almost every devices are shipping with some kind of firmware associated to it. For instance, motherboards include such programs, which in their case is tasked to properly boot hardware devices such as RAM modules, check their state and make them ready-to-use by an operating system.
Virtual devices, including virtual motherboards, are also shipping with firmware, or platform firmware.
## Available platform firmware for virtual machines
### SeaBIOS
[SeaBIOS](https://www.seabios.org/SeaBIOS) is an implementation of a x86 BIOS which relies on [Coreboot](https://www.coreboot.org/) and can be used to boot virtual machines. It is not compatible with UEFI but, as a result, is simpler.
### OVMF
[OVMF](https://github.com/tianocore/tianocore.github.io/wiki/OVMF), which stands for Open Virtual Machine Firmware, is a UEFI compatible firmware. It is part of the larger [TianoCore](https://www.tianocore.org/) project, which provides an open-source implementation of a platform firmware that follows UEFI specifications. It is the default method to boot UEFI-based operating systems.
### Rust Hypervisor Firmware
The Rust Hypervisor Firmware (RHF) is a UEFI compatible firmware. It is focused on simplicity and performance and is designed for virtual workloads. It ships by default with the Cloud Hypervisor.
## Comparaison
| | SeaBIOS | OVMF | RHF |
| :-- | :-: | :-: | :-: |
| *BIOS* | **Yes** | No | No |
| *UEFI* | No | **Yes** | **Yes** |
| *Secureboot* | No | **Yes** | **Yes** |
| *Chipset support* | `i440fx` `Q35` | `i440fx` `Q35` | `Q35`? `virt` |
| *Guest support* | **Windows** / **Linux** | **Windows** / **Linux** / **Darwin** | **Windows** / **Linux** |
| *Virtual Function I/O* | No | Yes | Yes |