During boot, BCOS uses multiple stages. Specification that describe the state of the computer (CPUs, chipset, memory, other hardware, etc) during the transition from one stage to the next, and any software interfaces that are used to perform the transition, are needed to ensure compatibility between the separate stages.
There are 4 stages, and therefore 4 types of transitions:
- From firmware to a boot loader. This type of transition is determined by standards/specifications for the firmware itself (e.g. the UEFI specification), which are beyond the scope of the BCOS project.
- From a boot loader to the Boot Abstraction Layer. This is known as transition state 1, and is the same for all different types of boot loaders and all implementations of the Boot Abstraction Layer.
- From the Boot Abstraction Layer to a Kernel Setup Module. This is known as transition state 2, and is the same for all implementations of the Boot Abstraction Layer and all different Kernel Setup Modules.
- From a Kernel Setup Module to the kernel it sets up. This is known as transition state 3, and is different for each different class of kernel.