A tiny 32-bit x86 bootloader
http://3zanders.co.uk/2017/10/13/writing-a-bootloader/
| .gitignore | ||
| boot1.asm | ||
| boot2.asm | ||
| boot3.asm | ||
| boot4.asm | ||
| fun.zig | ||
| LICENSE | ||
| linker.ld | ||
| README.md | ||
bootloader
A tiny 32-bit x86 operating system kernel
http://3zanders.co.uk/2017/10/13/writing-a-bootloader/
Real Mode Boot 1
16-bit mode.
Assemble with
nasm -f bin boot1.asm -o boot1.bin
Run with
qemu-system-x86_64 -fda boot1.bin
Protected Mode Boot 2
32-bit mode.
Assemble with
nasm -f bin boot2.asm -o bin2.bin
Run with
qemu-system-x86_64 -fda boot2.bin
Extended Boot 3
32-bit, 1024 byte.
Assemble with
nasm -f bin boot3.asm -o boot3.bin
Run with
qemu-system-x86_64 -fda boot3.bin
Linking with Zig
32-bit, 1024 byte, building and linking in Zig code.
Build with
zig build-exe boot4.o fun.zig -T linker.ld -nostdlib -target x86-freestanding
Convert to raw binary (strip ELF)
objcopy -Obinary fun fun.bin
Run with
qemu-system-x86_64 -fda fun.bin