toaruos/boot
K. Lange ea99f32e9d boot: Add menu option to disable experimental kaslr 2023-12-07 10:36:18 +09:00
..
README.md
boot.S boot: Set VGA text mode font to Deja Vu 2023-01-04 15:21:27 +09:00
config.c boot: Add menu option to disable experimental kaslr 2023-12-07 10:36:18 +09:00
editor.c boot: first pass at cleanup, just make sure everything has lead comments 2021-11-26 13:18:08 +09:00
editor.h
elf.h
iso9660.h
kbd.c boot: move declaration 2023-04-18 19:52:41 +09:00
kbd.h
link.ld
mbr.S
menu.c boot: first pass at cleanup, just make sure everything has lead comments 2021-11-26 13:18:08 +09:00
menu.h
multiboot.c boot: Add menu option to disable experimental kaslr 2023-12-07 10:36:18 +09:00
multiboot.h
options.h
platform.c boot: prefer 1920x1080 mode in BIOS loader 2023-04-25 12:44:00 +09:00
qemu.c boot: first pass at cleanup, just make sure everything has lead comments 2021-11-26 13:18:08 +09:00
qemu.h
text.c boot: draw something when loading ramdisk in vga text mode 2023-07-21 13:01:42 +09:00
text.h
util.c boot: first pass at cleanup, just make sure everything has lead comments 2021-11-26 13:18:08 +09:00
util.h
video.c boot: first pass at cleanup, just make sure everything has lead comments 2021-11-26 13:18:08 +09:00

README.md

ToaruOS Bootloader

This is version 4.0 of the ToaruOS Live CD bootloader.

The bootloader targets both BIOS and EFI. The BIOS loader is limited to El Torito CD boot, while the EFI loader should work in most configurations.

The bootloader provides a menu for selecting boot options, a simple editor for further customization of the kernel command line, and a 32-bit ELF loader for loading multiboot-compatible builds of Misaka.

While much of the codebase is shared between the two platforms, the BIOS loader works very differently from the EFI loader. It includes a minimal ISO 9660 filesystem implementation for locating boot files, and also loads the entire contents of the boot medium into memory before entering protected mode and displaying the menu.

The EFI loader, meanwhile, is built for x86-64 ("x64" in MS/EFI terms), and runs as a normal EFI application in long mode to display the menu, load the kernel and ramdisk through EFI filesystem access APIs, and load it into memory. It then downgrades to protected mode to allow the kernel's multiboot entrypoint to execute (which then returns to long mode again).

While the loader implements a subset of Multiboot functionality, it is likely not suited for general use by other multiboot kernels and is tailored specifically for loading Misaka.