Android的启动过程,分为
1、Bootloader引导
2、装载与启动Linux内核
3、启动Android系统,
流程上
先是BOOT层bootloader启动,初始化硬件,是硬件进入一个准备工作的状态,(此时会有一个暂时的先调通串口的进程或者称之为程序,为了输出打印启动信息)并且引导内核启动
接下来starting kernel
kernel包含了硬件抽象层HAL,并且启动Init进程,应该是第一个初始化进程
对Bootloader的概述的笔记,
说,开机就是给系统供电,此时的硬件pmu会产生上电时序,不同不同器件复位(初始化),CPU是最后一个被复位(上电)的器件,为了满足CPU发送第一条指令时别的器件已经复位完成可以接收。
CPU执行第一条指令,该指令的内存地址是固定的,有CPU制造者制定,这个固定地址保存的程序称为“引导程序、(BootLoader)”,其作用是是装载真正用户系统及程序。
/**********
这里插一下,看到别的文章的笔记,init的笔记
这里说kernel启动后的第一个进程:init
init进程一起来就根据init.rc和init.xxx.rc脚本建立几个基本的服务
servicemanager zygote等,最后init并不退出,担当起property service的功能
第二步建立zygote,建立时中间启动了虚拟机,最后建立了zygote
第三步启动了system service,来建立Android中用到的服务。
第四步所有的Android服务启动之后,就可以启动home了
**********/
Android设备启动要经过三个阶段,BootLoader、LinuxKernel和Android系统服务,严格意义上讲Android是运行于Linux内核之上的一系列“服务进程”,并不算完整意义上的“操作系统”,这一系列进程是维持Android设备正常运行的关键,有一个根进程,根进程衍生出了一系列的进城。