ARM Linux 启动过程分析:从内核映象到启动过程
需积分: 0 187 浏览量
更新于2024-07-27
收藏 224KB PDF 举报
Linux启动过程分析
Linux启动过程是指从系统启动到Linux内核完全初始化的整个过程。这个过程可以分为多个阶段,每个阶段都有其特定的任务和实现机制。在ARM平台上,Linux启动过程可以分为以下几个阶段:
1. 内核映象的生成
在Linux启动过程中,内核映象是指包含Linux内核代码的文件。内核映象可以是非压缩的,也可以是压缩的。非压缩内核映象是真正的Linux内核代码,而压缩内核映象是把非压缩内核映象作为数据进行压缩打包,并加上了解压缩代码。
生成非压缩内核映象的过程是:首先,内核的各个模块经过编译、链接,在内核源代码的顶层目录下生成vmlinux文件,这是一个ELF格式的映象。然后,用arm-linux-objcopy命令把vmlinux转换为二进制格式映象,生成arch/arm/boot/Image文件。
生成压缩内核映象的过程是:首先,用gzip对非压缩内核二进制映象arch/arm/boot/Image进行压缩,生成arch/arm/boot/compressed/piggy.gz文件。然后,在arch/arm/boot/compressed/目录下有三个文件:piggy.s、head.S和vmlinux-lds。piggy.s定义了一个包含./piggy.gz文件的数据段;head.S包含了对gzip压缩过的内核进行解压的代码;vmlinux-lds是链接脚本。这些文件经过编译链接,在arch/arm/boot/compressed/目录下产生vmlinux文件,这是一个ELF格式的映象。最后,用arm-linux-objcopy命令把arch/arm/boot/compressed/vmlinux转换为二进制格式映象,生成arch/arm/boot/compressed/zImage文件。
2. 启动引导程序
启动引导程序是指从系统启动到Linux内核完全初始化的过程中,负责加载和初始化Linux内核的程序。在ARM平台上,启动引导程序通常是U-Boot。
启动引导程序的主要任务是:
* 加载Linux内核映象
* 初始化系统硬件
* 初始化Linux内核
3. 内核初始化
内核初始化是指Linux内核完全初始化的过程。在这个过程中,Linux内核会进行系统硬件的初始化、内存管理的初始化、进程管理的初始化等。
在ARM平台上,Linux内核初始化的过程可以分为以下几个阶段:
* 内核解压缩:如果使用压缩内核映象,需要对其进行解压缩。
* 内核初始化:Linux内核会进行系统硬件的初始化、内存管理的初始化、进程管理的初始化等。
* 系统启动:Linux内核会启动系统服务和应用程序。
Linux启动过程是一个复杂的过程,涉及到多个阶段和机制。在ARM平台上,Linux启动过程可以分为内核映象的生成、启动引导程序、内核初始化等几个阶段。
2011-01-26 上传
2023-03-16 上传
2010-09-22 上传
2014-03-31 上传
2009-12-17 上传
2015-06-20 上传
2009-04-05 上传
lin02002
- 粉丝: 3
- 资源: 4
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案