The Android system boot up sequence is similar to other embedded Linux systems that start from the Boot ROM inside the processor. The Boot ROM will find the bootloader. The bootloader will load the kernel and ramdisk image. The kernel uses the ramdisk as the root filesystem. In a desktop Linux environment, once the kernel initializes the essential devices, it will remount the root filesystem on physical storage such as a hard disk. In Android, the various partitions (system, data, cache, and so on) will be mounted to the root filesystem in memory instead of a storage device. The kernel will invoke the init process in the ramdisk to start the rest of the system, as shown in the following figure:
Analyzing the Android start up process
Bootloader and the kernel
As...