toaruos/boot
K. Lange 887bbc45a0 boot: Use BIOS calls to read keyboard, which should work for USB 2022-03-22 15:00:23 +09:00
..
README.md boot: Rewrite README 2021-09-12 20:56:45 +09:00
boot.S boot: Use BIOS calls to read keyboard, which should work for USB 2022-03-22 15:00:23 +09:00
config.c boot: first pass at cleanup, just make sure everything has lead comments 2021-11-26 13:18:08 +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 boot: more editor key binds 2021-08-21 15:12:04 +09:00
elf.h boot: Fixes to boot processes on multiple platforms. 2021-04-22 19:46:51 +09:00
iso9660.h boot: Rewrite the legacy BIOS loader 2021-06-14 11:11:37 +09:00
kbd.c boot: Use BIOS calls to read keyboard, which should work for USB 2022-03-22 15:00:23 +09:00
kbd.h boot: Clean up editor redraw, shift-arrow input? 2021-11-04 18:59:35 +09:00
link.ld meta: purge most instances of vim hints 2021-11-26 12:59:02 +09:00
mbr.S boot: MBR / disk boot stub 2021-10-20 23:14:34 +09:00
menu.c boot: first pass at cleanup, just make sure everything has lead comments 2021-11-26 13:18:08 +09:00
menu.h boot: more editor key binds 2021-08-21 15:12:04 +09:00
multiboot.c boot: first pass at cleanup, just make sure everything has lead comments 2021-11-26 13:18:08 +09:00
multiboot.h boot: Rewrite the legacy BIOS loader 2021-06-14 11:11:37 +09:00
options.h boot: merge retooled EFI loader 2021-09-07 11:47:08 +09:00
platform.c boot: first pass at cleanup, just make sure everything has lead comments 2021-11-26 13:18:08 +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 boot: Use CD for QEMU 2021-06-14 11:28:12 +09:00
text.c boot: first pass at cleanup, just make sure everything has lead comments 2021-11-26 13:18:08 +09:00
text.h boot: VBE modesetting 2021-10-25 13:00:40 +09:00
util.c boot: first pass at cleanup, just make sure everything has lead comments 2021-11-26 13:18:08 +09:00
util.h boot: add command line editor 2021-08-21 07:55:48 +09:00
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.