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 Multiboot header, besides the headers of the format used by the OS image. The Multiboot header must be contained completely within the first 8192 bytes of the OS image, and must be longword (32-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 Multiboot header|
|• Header magic fields:||The magic fields of Multiboot header|
|• Header address fields:|
|• Header graphics fields:|