mboot is a bootloader for i386 platforms.
Building mboot depends on:
- llvm tools (clang, ld.lld)
- nasm
Running mboot needs:
- the building tools or a disk image
- qemu-system-x86_64
make
qemu-system-x86_64 -m 4G -drive file=image.img -serial stdio
As filesystems and elf files aren't implemented yet, programs you want to launch from mboot need to be linked into it and called from loader.c
- 32 bit protected mode
- cpu exceptions
- individual hardware interrupts
- a ps/2 keyboard
- vga in 320x200x8bpp
- reading ata drives
- rs232 interfaces
- the intel 8259 PIC
- the intel 8253 PIT
- the mbr partitioning scheme
- wad files as the filesystem
- enable x87 fpu
- memory allocator
- elf loader
- paging
- libc