目录
二、涉及源码
三、源码分析
一、前言
Android本质上就是一个基于Linux内核的操作系统,与Ubuntu Linux、Fedora Linux类似,我们要讲Android,必定先要了解一些Linux内核的知识。
Linux内核的东西特别多,相关的知识体系许多也不太理解,由于本文主要讲解Android系统启动流程,所以这里主要讲一些内核启动相关的知识。
Linux内核启动主要涉及3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd进程(PID = 2),这三个进程是内核的基础。
- idle进程是Linux系统第一个进程,是init进程和kthreadd进程的父进程
- init进程是Linux系统第一个用户进程,是Android系统应用程序的始祖,我们的app都是直接或间接以它为父进程
- kthreadd进程是Linux系统内核管家,所有的内核线程都是直接或间接以它为父进程

二、涉及源码
init/main.c
kernel/fork.c
kernel/kthread.c
include/linux/kthread.h
kernel/pid.c

文章详细阐述了Android操作系统启动时Linux内核的角色,特别是idle进程、init进程和kthreadd进程的启动与作用。通过分析`init/main.c`等源码,解释了内核如何创建init进程和kthreadd进程,以及init进程如何在用户空间中启动Android系统的初始化。此外,提到了启动参数的解析,如通过`cmdline`设置`init`和`rdinit`。
最低0.47元/天 解锁文章
576

被折叠的 条评论
为什么被折叠?



