K Lange 707b7f7ed2 boot: MBR / disk boot stub 11 months ago
..
README.md 9037902717 boot: Rewrite README 1 year ago
boot.S 707b7f7ed2 boot: MBR / disk boot stub 11 months ago
config.c 3336fe23cb boot: Set a kcmdline flag when debug is set in menu 11 months ago
editor.c aca614207e boot: more editor key binds 1 year ago
editor.h aca614207e boot: more editor key binds 1 year ago
elf.h b081668712 boot: Fixes to boot processes on multiple platforms. 1 year ago
iso9660.h e680a7a61f boot: Rewrite the legacy BIOS loader 1 year ago
kbd.c 1a44f8a2f3 boot: merge retooled EFI loader 1 year ago
kbd.h aca614207e boot: more editor key binds 1 year ago
link.ld 38691a2f01 boot: zero bss after jump to C entry point 3 years ago
mbr.S 707b7f7ed2 boot: MBR / disk boot stub 11 months ago
menu.c 1a44f8a2f3 boot: merge retooled EFI loader 1 year ago
menu.h aca614207e boot: more editor key binds 1 year ago
multiboot.c 900db689a5 boot: Support AOUT_KLUDGE kernels 11 months ago
multiboot.h e680a7a61f boot: Rewrite the legacy BIOS loader 1 year ago
options.h 1a44f8a2f3 boot: merge retooled EFI loader 1 year ago
platform.c 707b7f7ed2 boot: MBR / disk boot stub 11 months ago
qemu.c 3fb3746c2d boot: Use CD for QEMU 1 year ago
qemu.h 3fb3746c2d boot: Use CD for QEMU 1 year ago
text.c 1a44f8a2f3 boot: merge retooled EFI loader 1 year ago
text.h e680a7a61f boot: Rewrite the legacy BIOS loader 1 year ago
util.c 1a44f8a2f3 boot: merge retooled EFI loader 1 year ago
util.h 079db87617 boot: add command line editor 1 year ago

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.