Skip to content

0.3: UEFI and ACPI readiness

Pre-release
Pre-release
Compare
Choose a tag to compare
@christianb93 christianb93 released this 29 May 08:12
· 64 commits to master since this release

The theme of this release is readiness for UEFI and ACPI, i.e. getting rid of all dependencies on the BIOS. Major changes are:

  • enable MSI for PCI devices to reduce dependencies on firmware IRQ routing tables
  • support the GPT partitioning scheme instead of the legacy MBR scheme
  • parse ACPI tables (static tables only, i.e. no AML code) and use them instead of the MP tables if possible
  • add basic chipset detection features and the option to override specific IRQ routings
  • add additional EFI only run targets to bin/run.sh
  • do not rely on the presence of a VESA BIOS to switch graphics mode at startup
  • use a hard-coded font instead of looking for a font in the VGA BIOS
  • migrate to Multiboot2 instead of Multiboot and use the ACPI and framebuffer information provided by MB2
  • add Bochs to the list of supported emulators (we now support configurations for QEMU, VirtualBox and Bochs)

The attached binary distribution contains all the images and scripts needed to run ctOS (assuming that you have QEMU installed). To try it out, simply enter the following commands

gzip -d ctOS.bin.tar.gz
tar xvf ctOS.bin.tar
./bin/run.sh

By running bin/run.sh help, you can get a list of all available run targets. If you have OVMF installed on your machine, you can for instance try out a configuration using QEMU with an emulated UEFI-only machine and eight CPUs by running

./bin/run.sh efi-smp

Note that you need to select either the ramdisk or the AHCI entry in the GRUB2 boot menu as this configuration has no IDE drive attached any more.