news 2026/7/5 1:15:29

Android随笔-init进程是什么?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Android随笔-init进程是什么?

Android init进程是 Linux 内核启动后的第一个用户空间进程,PID 固定为 1,是所有其他用户进程的"鼻祖"。

一、init 进程的起源

启动链路

电源键按下 → Boot ROM → BootLoader → Linux Kernel → init 进程 (PID=1)

Linux 内核完成初始化后,在系统文件中寻找 init 程序并执行它 。

内核启动参数中指定:init=/init,告诉内核启动完成后执行 /init 程序 。

二、init 进程的核心作用

2.1 创建和挂载文件系统

// init 第一阶段mkdir("/dev",0755);mkdir("/proc",0755);mkdir("/sys",0755);mount("tmpfs","/dev","tmpfs",MS_NOSUID,"mode=0755");mount("proc","/proc","proc",0,NULL);mount("sysfs","/sys","sysfs",0,NULL);

创建并挂载系统运行必需的目录:

  • /dev — 设备文件
  • /proc — 进程信息
  • /sys — 内核参数
  • /data — 用户数据
  • /system — 系统分区

2.2 初始化 SELinux 安全策略

// 初始化 SELinuxselinux_android_load_policy();selinux_restore_context("/dev");selinux_restore_context("/system");
  • 加载安全策略文件
  • 为系统文件和目录设置安全上下文
  • 确保后续进程运行在正确的安全域中

2.3 启动属性服务(Property Service)

// 创建 /dev/__properties__ 目录// 初始化属性存储区域start_property_service();
  • Android 系统的"全局变量"系统
  • 所有进程通过 getprop/setprop 读写系统属性
  • 例如:ro.product.model、persist.sys.locale 等

2.4 解析 rc 文件,启动系统服务

这是 init 进程最重要的职责

// 解析 init.rc 及所有 *.rc 文件init_parse_config_file("/init.rc");// 执行 on early-init、on init、on late-init 等触发器// 启动 class main/core 的服务

启动的核心服务包括:

服务作用
Zygote应用进程孵化器
servicemanagerBinder 服务管理
surfaceflinger图形合成
media多媒体服务
netd网络守护进程
audioserver音频服务

三、init 进程的启动阶段

三阶段模型(Android 9.0+, system/core/init/ 目录下)

四、init 进程与 Zygote 的关系


init 进程通过 rc 文件定义Zygote 的启动方式,然后创建Zygote 进程,之后 Zygote 独立运行,但 init 仍然守护它(崩溃后自动重启)。

五、init 进程的特殊之处

特性说明
PID = 1Linux 用户空间的第一个进程
永不退出进入主循环,持续监听事件
所有进程的父进程Zygote、SystemServer 等都是由它 fork 或启动
守护进程管理器监控服务状态,崩溃自动重启
权限极高以 root 运行,初始化阶段拥有最高权限
与内核紧密配合内核启动完成后第一个执行的用户程序

六、init 进程 vs 其他进程

进程PID由谁启动作用
swapper/idle0内核自动创建内核空闲进程
init1内核启动用户空间第一个进程,初始化系统
kthreadd2内核创建内核线程管理
Zygote不定init 启动应用进程孵化器
SystemServer不定Zygote fork管理系统服务

七、总结

init 进程是 Android 系统的"开机管家"—— 它由内核启动,负责搭建系统运行环境(文件系统、安全策略、属性服务),然后按照 rc 文件的"剧本"逐个启动Zygote、SystemServer 等核心服务,最后进入守护循环,确保系统服务稳定运行。没有 init,Android系统就无法从内核完成到用户空间的过渡。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 1:14:38

WechatRealFriends:基于微信iPad协议的单向好友检测技术深度解析

WechatRealFriends:基于微信iPad协议的单向好友检测技术深度解析 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealF…

作者头像 李华
网站建设 2026/7/5 1:14:31

微服务合同测试:创业团队也别只靠联调

微服务合同测试:创业团队也别只靠联调 一、联调不是测试策略 创业团队为了速度,常常让前端、后端、任务服务、计费服务靠联调推进。早期能跑起来,但服务一多,接口变化就会互相伤害。某个字段改名、枚举新增、错误码变化&#xff0…

作者头像 李华
网站建设 2026/7/5 1:11:36

KUKA 机器人 PTP/LIN/CIRC 运动指令实战:3 种轨迹规划与 5 个关键参数配置

KUKA 机器人运动指令深度解析:从 PTP 到 CIRC 的实战配置策略在工业自动化领域,KUKA 机器人凭借其高精度和可靠性成为众多生产线的核心设备。而要让这些机械臂灵活高效地完成各种任务,运动指令的合理配置是关键所在。不同于简单的指令添加&am…

作者头像 李华
网站建设 2026/7/5 1:09:32

Three.js 粒子星空教程

粒子星空 Starry Sky ▶ 在线运行案例 案例合集: 三维可视化功能案例(threehub.cn)开源仓库github地址: https://github.com/z2586300277/three-cesium-examples400个案例代码: 网盘链接 你将学到什么 ShaderMaterial 自定义…

作者头像 李华
网站建设 2026/7/5 1:04:39

LoRA(低秩适配):大模型高效微调的革命性技术

1. 引言:大模型微调的挑战与机遇随着大语言模型(LLM)和多模态模型的快速发展,如何高效地将通用预训练模型适配到特定任务或领域,已成为AI应用落地的关键瓶颈。传统的全量微调(Full Fine-tuning)…

作者头像 李华