Android init 启动过程分析

Android init 启动过程分析

ID:37708750

大小:108.00 KB

页数:40页

时间:2019-05-29

Android init 启动过程分析_第1页
Android init 启动过程分析_第2页
Android init 启动过程分析_第3页
Android init 启动过程分析_第4页
Android init 启动过程分析_第5页
资源描述:

《Android init 启动过程分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Androidinit启动过程分析分析android的启动过程,从内核之上,我们首先应该从文件系统的init开始,因为init是内核进入文件系统后第一个运行的程序,通常我们可以在linux的命令行中指定内核第一个调用谁,如果没指定那么内核将会到/sbin/,/bin/等目录下查找默认的init,如果没有找到那么就报告出错。下面是曾经用过的几种开发板的命令行参数:S3C2410启动参数:noinitrdroot=/dev/nfs  nfsroot=192.168.2.56:/nfsroot/rootfs  ip=192.168.

2、2.188:192.168.2.56:192.168.2.56:255.255.255.0::eth0:onconsole=ttySAC0S3C2440启动参数:setenvbootargsconsole=ttySAC0root=/dev/nfsnfsroot=192.168.2.56:/nfsroot/rootfsip=192.168.2.175:192.168.2.56:192.168.2.201:255.255.255.0::eth0:onmem=64Minit=/init      marvell3

3、10启动参数:bootroot=/dev/nfsnfsroot=192.168.2.56:/nfsroot/rootfs,rsize=1024,wsize=1024ip=192.168.2.176:192.168.2.201:192.168.2.201:255.255.255.0::eth0:-Onconsole=ttyS2,115200mem=64Minit=/initinit的源代码在文件:./system/core/init/init.c中,init会一步步完成下面的任务:1.初始化log系统2.解析/init.rc和/init.%hardware%.rc文件

4、  3.执行early-initactioninthetwofilesparsedinstep2.  4.设备初始化,例如:在/dev下面创建所有设备节点,下载firmwares.  5.初始化属性服务器,Actuallythepropertysystemisworkingasasharememory.LogicallyitlookslikearegistryunderWindowssystem.  6.执行initactioninthetwofilesparsedinstep2.&nb

5、sp; 7.开启属性服务。8.执行early-bootandbootactionsinthetwofilesparsedinstep2.  9.执行Executepropertyactioninthetwofilesparsedinstep2.  10.进入一个无限循环towaitfordevice/propertyset/childprocessexitevents.例如,如果SD卡被插入,init会收到一个设备插入事件,它会为这个设备创建节点。系统中比较重要的进程都是由init来fork的,所以如果他们他谁崩溃了

6、,那么init将会收到一个SIGCHLD信号,把这个信号转化为子进程退出事件,所以在loop中,init会操作进程退出事件并且执行*.rc文件中定义的命令。例如,在init.rc中,因为有:servicezygote/system/bin/app_process-Xzygote/system/bin--zygote--start-system-server  socketzygotestream666  onrestartwrite/sys/android_power/request_statewake  

7、onrestartwrite/sys/power/stateon所以,如果zygote因为启动某些服务导致异常退出后,init将会重新去启动它。intmain(intargc,char**argv){  ...  //需要在后面的程序中看打印信息的话,需要屏蔽open_devnull_stdio()函数  open_devnull_stdio();  ...  //初始化log系统  log_init();  //解析/in

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。