Since bootloaders and operating systems have been a hot topic lately I thought I might post this bootloader which I use myself.
It supports its own Limine boot protocol, which has pleasant properties, not least that it provides a sane state for the kernel and doesn't impose the need to learn about decades worth of legacy to get started with writing a kernel. It does this on RISC-V, ARM64, and x86_64 alike, and abstracts things so well that you can find a stub kernel in the limine-c-template-portable repository with identical C code providing a kernel that will build for the 3 supported architectures without modification.
I've found it nice to be able to work on writing a kernel rather than learning the subtleties of UEFI or the BIOS. Linux is also supported, as well as kernels using the older Multiboot and Multiboot 2 protocols.
It supports its own Limine boot protocol, which has pleasant properties, not least that it provides a sane state for the kernel and doesn't impose the need to learn about decades worth of legacy to get started with writing a kernel. It does this on RISC-V, ARM64, and x86_64 alike, and abstracts things so well that you can find a stub kernel in the limine-c-template-portable repository with identical C code providing a kernel that will build for the 3 supported architectures without modification.
I've found it nice to be able to work on writing a kernel rather than learning the subtleties of UEFI or the BIOS. Linux is also supported, as well as kernels using the older Multiboot and Multiboot 2 protocols.