- enable A20
- get memory info
- memory map
- continuous memory (for BIOSes not supporting memory map)
- check vbe support
- get best vbe mode
- enter protected mode
- load kernel from FAT16 drive (file named "KERNEL")
- enter long mode
- pass important information (in rdi)
- give control to the kernel (elf64 file)
$ make
/$ make release
- creates a bootable image without any kernel inside
$ make test
- creates a bootable image with a test kernel inside (test.asm)
- test.asm just prints "BLOADER" to the screen
$ make monitor
$(qemu) info tlb
- all valid pages and there frames
$(qemu) info mem
- compact paging tables
$(qemu) info registers
- show all regs and there values
$(qemu) x/<num>x <addr>
- show num words at addr
$(qemu) x/<num>i <addr>
- show num instructions at addr
$ make log
- log all interrupts (state of all regs)
$ make
/$ make release
$ sudo dd if=build/bloader.img of=/dev/<YourDevice>
(or any other way)- put your elf64 kernel into the root directory and call it "KERNEL" (or change name in OPTIONS)
- reboot and open BIOS
- make sure legacy boot(CSM) is enabled when using uefi device
- boot into USB device