[kernel 启动流程] (第七章)第一阶段之——跳转到start_kernel

本文详细介绍了Linux kernel启动流程的第一阶段,包括跳转到start_kernel之前的准备动作,如数据段和堆栈段的设置,以及关键变量的初始化。通过对arch/arm/kernel/head.S等代码的分析,阐述了在开启MMU后如何进入C语言环境,并跳转到start_kernel函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[kernel 启动流程]系列

建议参考文档

================================================

零、说明

本文是《[kernel 启动流程] (第一章)概述》的延伸,
阅读本文前建议先阅读《[kernel 启动流程] (第一章)概述》

1、kernel启动流程第一阶段简单说明

arch/arm/kernel/head.S

  • kernel入口地址对应stext
ENTRY(stext)
  • 第一阶段要做的事情,也就是stext的实现内容

    • 设置为SVC模式,关闭所有中断
<think>我们首先需要明确用户的问题:用户询问在Android开机过程中,“APP_START”部分提到的“跳转到Linux kernel”和“跳转到内核”是否指同一个概念。 在Android启动过程中,通常分为以下几个阶段: 1. Boot ROM 2. Bootloader 3. Linux Kernel启动 4. Init进程 5. Zygote和系统服务 6. 系统启动完成 其中,在Bootloader阶段,当Bootloader完成硬件初始化后,会将控制权交给Linux内核。这里通常会有从Bootloader跳转到Linux内核的步骤。 用户提到的“APP_START”可能是Bootloader阶段的一个标记(不同的Bootloader可能有不同的阶段命名)。例如,在U-Boot中,启动过程会分为多个阶段,但通常不会用“APP_START”来指代跳转内核。不过,在有些Bootloader的实现中,可能会将加载并跳转到操作系统的过程称为启动应用程序(APP),因此这里的“APP”可能是指操作系统内核。 所以,“跳转到Linux kernel”和“跳转到内核”实际上指的是同一个动作:即Bootloader将控制权转移到Linux内核的入口点。 因此,答案是:它们是同一个东西,都是指Bootloader将控制权交给Linux内核的过程。 但是,为了确保回答的准确性,需要说明:在Android启动流程中,通常我们不会将这一步骤称为“APP_START”,但如果在某些Bootloader的实现中这样命名,那么它指的就是跳转到Linux内核。 接下来,按照要求,我们需要在回答后提出3-5个相关问题,并以“§§相关问题§§”开头,然后列出问题。 注意:用户的问题中提到了“APP_START”,所以相关问题可以围绕Bootloader阶段和内核跳转展开。 回答结构: 1. 首先直接回答问题:是同一个东西。 2. 解释原因和背景。 3. 然后输出“§§相关问题§§”并列出3-5个相关问题。</think>在Android开机过程中,"跳转到Linux kernel"和"跳转到内核"指的是**同一个关键步骤**,但术语使用存在细微差异: 1. **本质相同**:两者都描述Bootloader将系统控制权移交给内核的过渡阶段,是硬件初始化到软件环境启动的转折点。 2. **术语差异**: - **"跳转到Linux kernel"**:强调目标实体(Linux内核) - **"跳转到内核"**:更通用的表述(内核不限于Linux,但Android默认使用Linux内核) 3. **在启动流程中的位置**: ```mermaid graph LR BootROM --> Bootloader --> 跳转到内核/Linux_kernel --> 内核初始化 --> Android系统服务 ``` 此步骤完成后,内核开始初始化进程调度、驱动加载等核心功能,为Android框架启动做准备。 4. **技术实现**:Bootloader通过直接设置PC寄存器指针到内核入口地址(如`kernel_entry()`)实现跳转,同时传递设备树数据(DTB)描述硬件信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值