从Kernel启动到Android系统整个过程源码分析

1、 第一阶段:

对于ARM的处理器,内核第一个启动的文件是arc/arm/kernel下面的head.S文件。当然arc/arm/boot/compress下面也有这个文件,这个文件和上面的文件略有不同,当要生成压缩的内核时zImage时,启动的是后者,后者与前者不同的时,它前面的代码是做自解压的,后面的代码都相同。我们这里这分析arc/arm/kernel下面的head.S文件。
代码片段如下:

在这里插入图片描述
在这里插入图片描述

2、 第二阶段:进入__mmap_switched

在这里插入图片描述

3、 第三阶段:进入start_kernel

在这里插入图片描述
在函数后面包含有下列代码片段:
在这里插入图片描述

4、 第四阶段:进入rest_init

在这里插入图片描述

5、 第五阶段:进入kernel_init

在这里插入图片描述
在函数后面包含有下列代码片段:
在这里插入图片描述

6、 第六阶段:init_post

在这里插入图片描述

7、 第七阶段:

看到上面代码run_init_process(“/etc/init”)很熟悉了吧(如果不熟悉的话,就赶紧去研究下Android frameworks层的代码哦),启动第一个init进程,进入Android世界…

init位置:
在这里插入图片描述

觉得本文对你有用,麻烦点赞或关注或收藏,你的肯定是我创作的无限动力,谢谢!!!

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-29 14:14:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-29 14:14:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-29 14:14:04       82 阅读
  4. Python语言-面向对象

    2024-04-29 14:14:04       91 阅读

热门阅读

  1. Spring Boot应用部署 - JAR包部署

    2024-04-29 14:14:04       32 阅读
  2. 保护通信的双重安全:消息认证与身份认证

    2024-04-29 14:14:04       32 阅读
  3. 如何使用halcon进行图像模式识别

    2024-04-29 14:14:04       37 阅读
  4. Linux系统——Nginx常见面试题

    2024-04-29 14:14:04       28 阅读
  5. 深入浅出区块链技术:原理、应用与挑战

    2024-04-29 14:14:04       32 阅读
  6. 言语。。。

    2024-04-29 14:14:04       27 阅读
  7. ChatGPT使用指南:Prompt简单提示词

    2024-04-29 14:14:04       38 阅读
  8. 图神经网络 | 混合神经网络模型GCTN地铁客流预测

    2024-04-29 14:14:04       44 阅读