2 - Linux and Android Boot Processes Flashcards
Linux Boot Process
BIOS
GRUB 1
GRUB 2
Kernel
BIOS (Linux Boot Process)
POST
Initial hardware setup and config
Select boot device and execute boot loader
GRUB 1
Small machine code on MBR
Find and load GRUB 2
GRUB 2
Select Kernel
Load initrd into memory
Load drivers required to complete boot
Load kernel into memory
Kernel (Linux Boot Process)
Initialize and configure memory and hardware
Mount initrd and load necessary drivers and kernel modules
Mount root filesystem
Execute /sbin/init
Android Boot Process
Boot ROM
Boot Loader 1
Boot Loader 2
Kernel
Init
Zygote
System Servers
Home App
Contacts (if opened)
Boot ROM (Android Boot)
Perform check of all chip components
Detect boot media
Locate and execute Boot Loader
Boot Loader 1 (Android boot)
Detect and set up external RAM
Load Boot Loader 2
Boot Loader 2
Set up hardware such as networking/additional memory
Find and load linux kernel
Kernel (Android Boot)
Setup memory protections, caches, and scheduling
Start init process
Init (Android Boot)
Start each system service daemon
Start Zygote Process
Start Runtime Process (which start service manager)
Zygote
Runtime process tells Zygote to start system server
Listen for requests for, and launch, Dalvik VM instances
System Servers
Start native system servers
Start Android Managed services (those in the application framework layer)
Home App
Idle screen
Loaded by Zygote in new Dalvik VM
Boot process complete