Android Boot Process is more or less similar to linux booting process. We all know that android is a application running on the top of Linux operating system. More popularly known as " A Stack Of Application"
Well talking about the various stages in Android Booting , first few steps below are steps of linux booting
Stages Of Booting
- Bootloader normally the Grub
- U-Boot or secondary Bootloader or second level Bootloader
- linux kernel
- Android
The Android process has the following sequence
- Init
- Zygote
- System Server
- Service Manager
- Other Daemons and processes
- Applications
BOOTLOADER:
Bootloader is the initial piece of code stored in ROM which has address of the device ( the Boot Media ) from where it should start boot. For example we can boot an operating system from SD-Card , eMMC , SATA , HARDISK , CD-ROM , Network etc. So this Bootloader has the address of the boot media. Since ROM is a non-volatile device bootloader is stored in ROM. we can fuse the ROM to boot from various device.
U-BOOT:
U-Boot is a second level bootloader which initializes DRAM and other peripheral devices like UART RTC etc. More specifically U-Boot is responsible for loading ramdisk image. Ramdisk image is nothing but the board specific images which initialize certain major peripherals which are necessary to debug the device in case of any emergency.
KERNEL:
Linux kernel is the heart of the Android responsible for the process creation, inter process communication, device drivers, file system management etc. Android applies a custom patch on the main stream kernel to support certain features like Wake locks etc needed for operation of the Android.
The kernel can be either loaded as uncompressed image or as a compressed image. Up on loading, it mounts the root file system (typically passed as kernel command line arguments) and starts the first application in user space.
ANDROID:
The android applications are executed over a Virtual Machine called the Dalvik. Android typically operates wholly on the user space. Now Google has replaced DVM ( The Dalvik Virtual Machine ) with ART ( Android Run Time).
More explanation regarding the boot stages after the zygote Initialization ( The Android Process ) will be explained in the next POST !!!!!
G HARI PRASATH
Project Engineer
No comments:
Post a Comment