This project showcases a bootloader written in x86-64 assembly. It uses BIOS-level system calls and manages memory and bare-metal CPU registers to load a basic kernel written in C.
- Boot into 16-bit real mode
- Load the kernel at memory address 0x7e00
- Load into 32-bit Protected mode
- Switch to 64-bit Long mode and execute kernel_main() in
kernel.c
whoamiclear
First, run the makefile to generate the floppydisk
$ make bootNext, run the virtual machine (qemu must be installed)
$ qemu-system-x86_64 -drive format=raw,file=boot.flp