下载此文档

Android -- Android Init进程的处理流程分析.doc


文档分类:IT计算机 | 页数:约39页 举报非法文档有奖
1/39
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/39 下载此文档
文档列表 文档介绍
Android -- Android Init进程的处理流程分析
最近在看Android Init进程的处理流程,现记录如下。
在Android中,Init进程是Linux内核启动后创建的第一个用户进程,地位非常重要。Init进程的可执行文件在/system/core/init/目录下,我们直接看Init进程的main()函数,该函数的代码处理流程较长,我们分两大段来分析。首先看第一大段:
[cpp] view plain copy 在CODE上查看代码片派生到我的代码片
int main(int argc, char** argv) {

//检测启动程序的文件名,如果是ueventd或者watchdogd,则执行相应守护进程的主函数,然后退出
if (!strcmp(basename(argv[0]), "ueventd")) {
return ueventd_main(argc, argv);
}

if (!strcmp(basename(argv[0]), "watchdogd")) {
return watchdogd_main(argc, argv);
}

// Clear the umask.
umask(0);//umask设置用户创建文件的默认属性;默认情况下文件的属性是022,这里参数为0,意为该进程创建的文件的属性值将为0777

add_environment("PATH", _PATH_DEFPATH);

bool is_first_stage = (argc == 1) || (strcmp(argv[1], "--second-stage") != 0);

// Get the basic filesystem setup we need put together in the initramdisk
// on / and then we'll let the rc file figure out the rest.

if (is_first_stage) {//创建一些基本的目录,并将一些文件系统mount到对应的目录上.
//tmpfs、devpts、proc和sysfs都是文件系统
mount("tmpfs", "/dev", "tmpfs", MS_NOSUID, "mode=0755");
mkdir("/dev/pts", 0755);
mkdir("/dev/socket", 0755);
mount("devpts", "/dev/pts", "devpts", 0, NULL);
mount("proc", "/proc", "proc", 0, NULL);
mount("sysfs", "/sys", "sysfs", 0, NULL);
}

// We must have some place other than / to create the device nodes for
// kmsg and null, otherwise we won't be able to remount / read-only
// later on. Now that tmpfs is mounted on /dev, we can actually talk
// to the outside world.
open_devnull_stdio();//把标准输入、标准输出、标准错误重定向到空设备文件"/dev/__null__"
klog_init();//创建/dev/__kmsg__设备节点,让进程可以使用kernel的log系统来输出log
klog_set_level(KLOG_NOTICE_LEVEL);//设置log等级

NOTICE("init%s started!\n", is_first_stage ? "" : " second stage");

if (!is_first_stage) {
// Indicate that booting is in progress to background fw loaders, etc.
//在/,表示初始化正在进行;is_booting()函数会依靠这个文件判断进程是否正在初始化
//进程初始化结束后,.booting文件将会被删除
close(open("/dev/.booting", O_WRONLY | O_CR

Android -- Android Init进程的处理流程分析 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
最近更新