AOSP 8.0 系统启动之一内核启动

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

目录

 

一、前言

二、涉及源码​​​​​​​

三、源码分析​​​​​​​


一、前言

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值