try to analyze b2g ,nuwa and content process.
自我疑惑问题记录与解答。。。
系统物理按键按下,固件(firmware)bootloader按需加载文件到内存?(加载内核进内存),kernel run脚本?启动init进程,解析init.rc,init.b2g.rc, init进程启动b2g进程,init同时?启动一些守护进程(deamon :rild ,vold)(init启动的?),b2g?init?启动系统服务(system service)对核心服务进行启动和初始化.
进程user: root ,system ,rido?wifi ,media?不由b2g管?b2g管的是哪些???看ppid可知。。
system/core/rootdir/init.rc
gonk-misc/init.b2g.rc
gonk-misc/b2g.sh
init是init.cpp(system/core/init/init.cpp?)编译生成的二进制可执行文件?kernel 运行脚本(哪个?),执行init(可执行文件),解析init.rc
,init.b2g.rc(通过b2g.sh脚本,它做了很多事情,整体启动b2g进程),b2g.sh运行/system/b2g/b2g(可执行文件,由gecko/b2g/app/nsBrowserApp.cpp生成???也即是,哪里是b2g的入口)。b2g可执行文件运行libxul.so,(XPCOM初始化在哪做??b2g如何在哪里指定去运行libxul,以及如何去运行b2g.js),libxul里包含了b2g.js(它去打开shell.html),shell.html (body 的id 为container)包含了shell.js(进gaia了)它创建systemAppFrame(iframe),然后将blank.html填充进iframe去,进入了system app,system app 开始做一系列工作,如启动gaia的核心应用。gaia/apps/system。这是上层通路做的事情,底层从b2g进来之后做了哪些事情呢,如xpcom的初始化等以及后续的一系列是如何支持的?
3678:gecko/b2g/chrome/moz.build:8:DEFINES['PACKAGE'] = 'b2g'???
system/core/init/init.cpp:1104: init_parse_config_file("/init.rc");
gonk-misc/Android.mk:31: echo import /init.b2g.rc > $@
system app
https://www.cnblogs.com/jacklu/p/5317406.html
https://blog.csdn.net/qwe6112071/article/details/70473905
https://blog.csdn.net/MrDing991124/article/details/78660847
PID为0的进程为调度进程,该进程是内核的一部分,也称为系统进程;PID为1的进程为init进程,它是一个普通的用户进程,但是以超级用户特权运行;PID为2的进程是页守护进程,负责支持虚拟存储系统的分页操作。
Android 内核加载完成后,就会启