Hallo,
was willst du denn genau wissen?
Im zweiten Fall ist dein Second-Stage-Bootloader, der als Multiboot-Kernel geladen wird, ein ganz normaler 32-Bit-Kernel und der eigentliche Kernel, der als Multiboot-Modul geladen wird, ein Binary in einem von dir frei wählbaren Format (z.B. flat binary *g*).
Im dritten Fall ist dein Kernel ein 64-Bit-Kernel, an den vorne ein 32-Bit-Bootstrap rangepappt wurde. Das funktioniert ähnlich, wie ein Higher-Half-Kernel im 32-Bit-Modus, bei dem du gewisse Dateien/Sektionen an andere Adressen linkst wie den Rest. Das dort angegebene Linkerscript tut genau das.
Getrennte Dateien machen die Entwicklung einfacher, sind aber später mehr Aufwand in der Handhabung. Was du davon benutzt, ist dir überlassen.
Gruß,
Svenska