mboot is a minimal os 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
Note: inside the makefile there is a line appending a macro definition to CFLAGS. Edit the macro's value to bundle different demos to run on boot
make
# normal os
qemu-system-x86_64 -m 4G -drive file=image.img -serial stdio
# with networking enabled
qemu-system-x86_64 -m 4G -drive file=image.img -serial stdio -device e1000,netdev=n0 -netdev user,id=n0 -object filter-dump,id=f1,netdev=n0,file=netdump.pcapDemo options include:
CUBE_DEMOTIME_DEMOE1K_DEMOIMF_DEMOPSF_DEMO
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
