Android系统启动过程简介(上)

本文转载整理自:<wbr style="line-height:25px"><a rel="nofollow" href="http://www.linuxidc.com/Linux/2011-10/45067.htm" style="color:rgb(207,121,28); line-height:25px; text-decoration:none">http://www.linuxidc.com/Linux/2011-10/45067.htm</a> <div style="line-height:25px"> <div style="line-height:25px"><span style="line-height:25px">一、 简介</span></div> <div style="line-height:25px"> <span style="color:#003366; line-height:25px">在Linux内核启动后,init 1(1号进程)将作为第一个用户空间,Linux虚拟内存的大小为32(在32位的x86机器上),内核将这4G字节的空间分为两部分。最高的1G字节供内核使用,称为“内核空间”。而较低的3G字节供各个进程使用,称为“</span><span style="color:#993300; line-height:25px">用户空间</span><span style="color:#003366; line-height:25px">”。)的进程来启动Android系统,该启动流程可以分为如下5个阶段,如下图:</span> </div> </div> <div style="line-height:25px"> <div style="line-height:25px"><img alt="Android系统启动过程简介(上) - hubingforever - 民主与科学" src="http://www.linuxidc.com/upload/2011_10/111011115034021.gif" style="line-height:25px; border-top-width:0px; border-right-width:0px; border-bottom-width:0px; border-left-width:0px; border-style:initial; border-color:initial; max-width:100%; margin-top:0px; margin-right:10px; margin-bottom:0px; margin-left:0px"></div> (<span style="line-height:25px">1) 启动准备</span>:该阶段包括创建文件系统的基本目录、打开基本输入、输出设备,初始化日志功能等;</div> <div style="line-height:25px"> <span style="line-height:25px">(2) 解析init.rc文件</span>:该阶段对init.rc脚本文件进行解析,主要对Service(服务)和Action(动作)进行解析。其中,Service由命令(Command)和一系列服务的附加内容(Option,选项)组成,如:<span style="color:#3366ff; line-height:25px">“service vold /system/bin/vold</span>”为一个Service,而“socket vold stream 0660 root mount“则为配合该服务使用的Option;Action则由一系列的命令组成,如:“on init mkdir /system”为系统初始化时建立系统文件夹的Action;</div> <div style="line-height:25px"> <span style="line-height:25px">(3) 触发需要执行的action</span>:Action需要在Triggers(触发条件)中调用,本阶段对需要执行的Action进行触发,并根据触发条件将需要执行的Action放入Action队列;</div> <div style="line-height:25px"> <span style="line-height:25px">(4) 执行在action队列中的命令</span>:对上一阶段触发的Action以及Service进行执行。并在此过程中,派生了Zygote和Service Manager两个非常重要的进程;</div> <div style="line-height:25px"> <span style="line-height:25px">(5) 循环处理事件</span>:init进程进入无限循环,处理设备插入/拔出,服务属性状态变化和signal事件等。</div> </wbr>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值