3 ms·
I actually looked this up after reading this comment. Best I could find after a quick google search was this: http://x86asm.net/articles/uefi-programming-first-
by joebergeron 10y ago
I actually looked this up after reading this comment. Best I could find after a quick google search was this: http://x86asm.net/articles/uefi-programming-first-steps/ http://x86asm.net/articles/uefi-programming-first-steps/
which is certainly not an easy tutorial to follow. Seems like more robustness tends towards a greater barrier to entry.
- exDM69 10y agoOnce you outgrow your boot sector space, writing a BIOS based bare metal project gets a lot harder as you need to start loading stuff from disk with more BIOS calls. It's a lot easier and nicer to use either UEFI or a Multiboot-protocol bootloader (GRUB, or qemu/bochs built-in bootloader). That also means you will be starting in long mode or protected mode. In order to work with bare metal efficiently, you need to get a debuggable and bootable ELF image up and running as soon as possible. Once you can attach a remote GDB debugger to Qemu, you get things done much faster than using the Qemu/Bochs monitor/debugger. Anything more complex than a hello world example is easier with UEFI or multiboot than BIOS boot sectors. You will need a linker script and a build script but things will be much easier after the first steps. I made this pull request for someone else's bare metal project to add debuggable ELF images. It's a small but practical example: https://github.com/Overv/MineAssemble/pull/5 https://github.com/Overv/MineAssemble/pull/5