Typically, a computer boots in three stages:
The hardware is initialized by software closely tied to the hardware.
The kernel is loaded into RAM by the kernel loader.
The kernel itself runs, further initializing the hardware, and then runs the application software.
When power is applied to an embedded Linux device, the hardware goes through a series of events that ends with the processor in some sort of reset state. When the hardware releases the processor from the reset state, it begins executing instructions at a known location. These instructions are normally stored in ROM or flash memory. On a PC, these instructions are called the BIOS. The BIOS code is responsible for getting the hardware on the PC ...