## GRUB multiboot So, technically GRUB can load and ELF64 with some moments: 1) Multiboot requires special header. 2) Special calling convention - Multiboot passes boot info in EAX/EBX (magic + Multiboot info struct pointer). 3) Multiboot1 enters in 32-bit protected mode - Long mode is not set up. We need a 32->64 bit trampoline. Multiboot2 has a 64-bit EFI handoff tag, but that's a different path. 4) Multiboot is x86-only 5) We haven't BootInfo, like i did in UEFI Also Multiboot have stack. When UEFI jumps to kernel, no stack exists for the kernel. Because of it i use asm code to run kernel. GRUB sets up a basic stack before jump. But, we don't know size and location of this stack. Example of "kernel" that use it: https://github.com/igmunv/kosmos