An OS image may be an ordinary 32-bit executable file in the standard format for that particular operating system, except that it may be linked at a non-default load address to avoid loading on top of the PC’s I/O region or other reserved areas, and of course it should not use shared libraries or other fancy features.
An OS image must contain an additional header called Multiboot2 header, besides the headers of the format used by the OS image. The Multiboot2 header must be contained completely within the first 32768 bytes of the OS image, and must be 64-bit aligned. In general, it should come as early as possible, and may be embedded in the beginning of the text segment after the real executable header.
|• Header layout:||The layout of Multiboot2 header|
|• Header magic fields:||The magic fields of Multiboot2 header|
|• Header tags:|
|• Information request header tag:|
|• Address header tag:|
|• Console header tags:|
|• Module alignment tag:|
|• EFI boot services tag:|
|• Relocatable header tag:|