CONCEPTUALLY, BOOTING AN EMBEDDED DEVICE IS VERY SIMPLE:
Initialize the hardware.
Ready the root filesystem.
Load the kernel from the boot media.
Jump into the kernel.
The kernel takes it from here; it configures memory, its drivers take possession of the hardware they’re interested in, and so on. Once the kernel is satisfied that it has taken care of everything, it starts up the userspace init process, which runs any other processes that are needed.
Like many things in life, however, even though booting the device is conceptually quite simple, the devil is in the details.This chapter looks at those ...