Android系统启动流程——init进程

配置文件:system/rootdir/init.rc

    init进程是一个由内核启动的用户级进程。内核自行启动之后(已经被载入内存,开始运行并已初始化所有设备驱动程序和数据结构等),通过启动一个用户级程序init的方式完成引导过程。Init始终是第一个进程,可以说它是root进程或者说是后续所有进程的父进程。

    Init进程的作用包括:文件夹建立,挂载,rc文件解析,属性设置,启动服务,执行动作,socket监听……启动过程就是代码init.c中main函数执行过程。

(1)   初始化log系统

(2)  解析/init.rc和/init.{hardware}.rc文件

(3)  执行.rc文件中的early-init action

(4)  设备初始化,如/dev下创建所有设备节点,下载firmwares

(5)   初始化属性

(6)  执行init action

(7)   开启属性服务

(8)  执行early-boot和boot action

(9)  执行propertyaction

(10)  进入无限循环,等待device/property set/child process退出

rc文件解析</system/core/init.rc >

Init进程启动后,解析init.rc及init.{hardware}.rc初始化脚本文件。脚本被直接安装到目标系统的根文件系统中,,使用方法参考system/core/init/readme.txt,关键字参考system/core/init/keyword.h。Android初始化语言由四大类型的声明组成,即Commands(命令)、Actions(动作)、Services(服务)、以及Options(选项)。 

  • Command(命令)

Command是一些基本的操作,主要有以下常用命令:

命令

说明

sysclktz <mins_west_of_gmt>

设置系统时钟基准(0代表时钟滴答以格林威治平均时(GMT)为准)

exec <path> [ <argument> ]*

创建和执行一个程序(<path>)。在程序完全执行前,init将会阻塞。

export <name><value>

在全局环境变量中设在环境变量<name>为<value>,所有在这命令之后运行的进程所继承

ifup <interface>

启动网络接口<interface>

import <filename>

导入一个init配置文件。

hostname <name>

设置主机名。

chmod <octal-mode><path>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值