Support QEMU q35 machine
The -machine q35 flag should result in a more efficient and performant system. Unfortunately, the q35 machine lacks support of IDE/ATA disk detection and relies on AHCI stuff instead (which many real PCs do, too).
Therefore we either need to implement AHCI support in both the bootloader and the kernel or we use real mode BIOS interrupts in boot/entry.asm instead of the IDE/ATA loader in boot/load.c and only implement AHCI support in the kernel.
The problem with the first solution is - obviously - the amount of repetition we'd need to achieve AHCI support in the bootloader (e.g. PCI, IDE/ATA (as a fallback), AHCI drivers, ...). This would almost result in a small kernel itself and would give up the original idea of a bloat-free and minimalist bootloader.
The problem with the second solution is mainly that BIOS interrupts are not very future-proof and kind of slow but furthermore that the ASM implementation of the current ELF-relocation support wouldn't be easy (at least for me) and very hard to cramp into the current 1024B real mode bootloader size limit.
There is another solution though: Third-party bootloaders like GRUB and the support for the multiboot2 protocol - while making the resulting disk image huge - implement everything to make the kernel future-proof and make it boot on a wide range of devices without me having to re-implement/duplicate features myself.
I'd love to hear other thoughts about this -- I know that I've thought about this way too much.
While the GRUB conversion is basically done now, the q35 machine still doesn't work as I obviously need to implement the AHCI kernel driver first. Lol, sorry!