Multiboot Specification

Node: Terminology, Next: Specification, Previous: Overview, Up: Top

## The definitions of terms used through the specification

must
  We use the term must, when any boot loader or OS image needs to follow a rule -- otherwise, the boot loader or OS image is not Multiboot-compliant.
should
  We use the term should, when any boot loader or OS image is recommended to follow a rule, but it doesn't need to follow the rule.
may
  We use the term may, when any boot loader or OS image is allowed to follow a rule.
boot loader
  Whatever program or set of programs loads the image of the final operating system to be run on the machine. The boot loader may itself consist of several stages, but that is an implementation detail not relevant to this specification. Only the final stage of the boot loader -- the stage that eventually transfers control to an operating system -- must follow the rules specified in this document in order to be Multiboot-compliant; earlier boot loader stages may be designed in whatever way is most convenient.
OS image
  The initial binary image that a boot loader loads into memory and transfers control to start an operating system. The OS image is typically an executable containing the operating system kernel.
boot module
  Other auxiliary files that a boot loader loads into memory along with an OS image, but does not interpret in any way other than passing their locations to the operating system when it is invoked.
Multiboot-compliant
  A boot loader or an OS image which follows the rules defined as must is Multiboot-compliant. When this specification specifies a rule as should or may, a Multiboot-complaint boot loader/OS image doesn't need to follow the rule.
u8
  The type of unsigned 8-bit data.
u16
  The type of unsigned 16-bit data. Because the target architecture is little-endian, u16 is coded in little-endian.
u32
  The type of unsigned 32-bit data. Because the target architecture is little-endian, u32 is coded in little-endian.
u64
  The type of unsigned 64-bit data. Because the target architecture is little-endian, u64 is coded in little-endian.