SeaBIOS
{{Short description|Open-source implementation of x86 BIOS}}
{{More citations needed|date=February 2014}}
{{Infobox software
| name = SeaBIOS
| title = SeaBIOS
| logo =
| screenshot = SeaBIOS 1.15.0 boot device selection screenshot.png
| screenshot size = 220px
| caption = SeaBIOS is the default BIOS for QEMU
| collapsible =
| author =
| developer = Kevin O'Connor
| released = {{Start date|2008|02|25}}
| discontinued =
| latest release version = 1.16.0{{cite web
| url = https://www.seabios.org/Releases#SeaBIOS_1.16.0
| title = SeaBIOS Releases
| website = www.seabios.org
| date = 2022-03-01
| accessdate = 2022-04-08}}
| latest release date = {{Start date and age|2022|03|01|df=yes}}
| latest preview version =
| latest preview date =
| programming language = C
| platform = x86
| size =
| standard = SMBIOS
| language = English
| genre = BIOS
| license = LGPLv3
| website = {{URL|https://www.seabios.org/}}
}}
SeaBIOS is an open-source implementation of an x86 BIOS, serving as a freely available firmware for x86 systems. Aiming for compatibility, it supports standard BIOS features and calling interfaces that are implemented by a typical proprietary x86 BIOS. SeaBIOS can either run on bare hardware as a coreboot payload, or can be used directly in emulators such as QEMU and Bochs.
Initially, SeaBIOS was based on the open-source BIOS implementation included with the Bochs emulator. The project was created with intentions to allow native usage on x86 hardware, and to be based on an improved and more easily extendable internal source code implementation.{{cite web
| url = https://wiki.linuxplumbersconf.org/_media/2010:01-lpc-seabios-20101103.pdf
| title = SeaBIOS in a virtualized environment
| date = November 11, 2010
| accessdate = December 13, 2021
| author = Kevin O'Connor
| website = linuxplumbersconf.org
}}{{rp|3–5}}
Features
Features supported by SeaBIOS include the following:
{{div col}}
- Graphical bootsplash screen (JPEG and BMP)
- USB keyboard and mouse support
- USB Mass Storage boot support
- USB Attached SCSI boot support
- ATA support
- AHCI support
- NVMe support
- El Torito optical disc drive boot support
- BIOS Boot Specification (BBS)
- Rebooting on Control-Alt-Delete key press
- Network booting support e.g. iPXE or gPXE
- Logical block addressing (LBA)
- POST Memory Manager (PMM)
- Paravirtualization, Xen HVM, VirtIO
- Coreboot Payloads (LZMA compressed)
- PCI Firmware Specification
- SeaBIOS as a Compatibility Support Module (CSM) for Unified Extensible Firmware Interface (UEFI) and Open Virtual Machine Firmware (OVMF)
- Virtual machine host notification of paravirtualized guests which panic via the pvpanic driver
- A patch exists to load the SLIC table from a licensed OEM Windows BIOS.{{cite web |url=https://github.com/ghuntley/seaslic |title=ghuntley/seaslic GitHub |publisher=Github.com |accessdate=2014-02-25}}
- Trusted Platform Module
- Enhanced Disk Drive (EDD) (INT 13H extensions)
- e820 memory map
- Protected mode interfaces, e.g. APM, Legacy PnP, DMI, MPS, SMBIOS, VBE, and ACPI
- System Management Mode
{{div col end}}
It does not support ESCD. SeaBIOS does not support either Intel ME or AMD PSP or their modules.
SeaBIOS's boot device selection menu can be accessed by pressing {{Key press|Esc}} during the boot process.
Uses
SeaBIOS can run natively on x86 hardware, in which case it is usually loaded as a coreboot payload; it can run on 386 and newer processors, and requires a minimum of 1 MB of RAM. SeaBIOS also runs inside an emulator; it is the default BIOS for the QEMU and KVM virtualization environments, and can be used with the Bochs emulator. It is also included in some Chromebooks, although it is not used by ChromeOS.{{cite news|url=https://gigaom.com/2013/02/26/3-alternatives-to-chrome-os-on-googles-chromebook-pixel/ |archive-url=https://archive.today/20140225200954/http://gigaom.com/2013/02/26/3-alternatives-to-chrome-os-on-googles-chromebook-pixel/ |url-status=dead |archive-date=February 25, 2014 |title=3 alternatives to Chrome OS on Google's Chromebook Pixel — Tech News and Analysis |newspaper=Gigaom |publisher=Gigaom.com |date=2013-02-26 |accessdate=2014-02-25 |last1=Tofel |first1=Kevin C. }}
Development
Most of the SeaBIOS source code is written in C, with its build system relying on the standard GNU toolchain.{{rp|5–7}} SeaBIOS has been tested with various bootloaders and operating systems, including GNU GRUB, LILO, SYSLINUX, Microsoft Windows, Linux, FreeDOS, FreeBSD, NetBSD and OpenBSD.{{Cite web |title=Grub2 Other Os - Community Help Wiki |url=https://help.ubuntu.com/community/Grub2%20Other%20Os |access-date=2023-10-10 |website=help.ubuntu.com}}
See also
{{Portal|Free and open-source software}}
References
{{Reflist}}
External links
- {{Official website|https://www.seabios.org/}}
- [https://www.linux-kvm.org/images/f/fa/Kvm-forum-2013-firmware.pdf Find your way through the x86 firmware maze]{{snd}} covers the SeaBIOS boot sequence and memory maps
{{Firmware and booting}}
Category:Free BIOS implementations