This commit is contained in:
38
content/news/20251006-bringing-bios-support.md
Normal file
38
content/news/20251006-bringing-bios-support.md
Normal file
@@ -0,0 +1,38 @@
|
||||
+++
|
||||
title = 'ExectOS Expands Beyond UEFI: Bringing BIOS Support'
|
||||
author = 'Aiken Harris'
|
||||
date = '2025-10-06T10:36:18+01:00'
|
||||
+++
|
||||
When we first started building ExectOS, we envisioned it as an operating system designed exclusively for UEFI-based
|
||||
systems. Over time, however, we realized that this requirement was an artificial limitation. Today, we are excited to
|
||||
announce that we have begun taking concrete steps toward supporting traditional PC/AT hardware with classic
|
||||
BIOS - broadening the reach of ExectOS to a much wider range of systems.
|
||||
<!--more-->
|
||||
|
||||
## First Steps Toward BIOS Compatibility
|
||||
We have already implemented an MBR boot sector and updated our CMake configuration to support BIOS-based emulation. As
|
||||
of now, ExectOS can be launched in several new testing configurations:
|
||||
* **bochsvm**: Bochs with BIOS
|
||||
* **testkvm/testtcg**: QEMU with classic BIOS (with KVM/WHPX acceleration or TCG without acceleration)
|
||||
* **testefikvm/testefitcg**: QEMU with modern UEFI (with or without acceleration), as before
|
||||
|
||||
This means developers can now experiment with ExectOS under both UEFI and BIOS environments using familiar tools like
|
||||
Bochs and QEMU.
|
||||
|
||||
## A Unified Boot Partition Model
|
||||
To simplify BIOS support, we are introducing a dedicated BOOT partition - similar to the recommended practice on
|
||||
Unix-like systems and analogous to the ESP (EFI System Partition) used by UEFI. Our bootloader will exclusively support
|
||||
FAT32 on this partition. It will house the bootloader itself, its configuration, and all modules. In other words, we are
|
||||
effectively bringing the concept of the ESP from the UEFI world into the BIOS realm.
|
||||
|
||||
## What's Next?
|
||||
Full BIOS support is still some way off. The current MBR implementation and CMake adjustments are just the first step. We
|
||||
still need to:
|
||||
* Implement a VBR (Volume Boot Record) capable of locating and loading files from disk
|
||||
* Develop a preloader to prepare the environment for the main bootloader (enabling paging, long mode, etc.)
|
||||
* Significantly refactor XTLDR, to eliminate assumptions about UEFI, such as memory allocation APIs
|
||||
* Ensure all modules are environment-agnostic, running seamlessly on both BIOS and UEFI systems
|
||||
* Move PE/COFF file handling from the module level into the main XTLDR code
|
||||
|
||||
While there is still a long road ahead, this change opens up new possibilities for ExectOS. By removing the UEFI-only
|
||||
limitation, we are making the system more flexible and accessible.
|
Reference in New Issue
Block a user