toaruos/boot
2021-11-05 07:53:35 +09:00
..
boot.S boot: VBE modesetting 2021-10-25 13:00:40 +09:00
config.c lfbvideo: Keep resolution set by loader if none specified by args 2021-11-05 07:53:35 +09:00
editor.c boot: Clean up editor redraw, shift-arrow input? 2021-11-04 18:59:35 +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: Clean up editor redraw, shift-arrow input? 2021-11-04 18:59:35 +09:00
kbd.h boot: Clean up editor redraw, shift-arrow input? 2021-11-04 18:59:35 +09:00
link.ld boot: zero bss after jump to C entry point 2018-12-20 15:45:13 +09:00
mbr.S boot: MBR / disk boot stub 2021-10-20 23:14:34 +09:00
menu.c boot: Add a shortcut to toggle video/text mode 2021-10-27 08:17:38 +09:00
menu.h boot: more editor key binds 2021-08-21 15:12:04 +09:00
multiboot.c boot: generalize video mode selection to work on BIOS 2021-11-04 20:44:22 +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: retain last mode when toggle to text mode 2021-11-04 20:53:06 +09:00
qemu.c boot: Use CD for QEMU 2021-06-14 11:28:12 +09:00
qemu.h boot: Use CD for QEMU 2021-06-14 11:28:12 +09:00
README.md boot: Rewrite README 2021-09-12 20:56:45 +09:00
text.c boot: Don't clear lines before printing on them when drawing banners 2021-10-26 18:32:32 +09:00
text.h boot: VBE modesetting 2021-10-25 13:00:40 +09:00
util.c boot: merge retooled EFI loader 2021-09-07 11:47:08 +09:00
util.h boot: add command line editor 2021-08-21 07:55:48 +09:00
video.c boot: retain last mode when toggle to text mode 2021-11-04 20:53:06 +09:00

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.