Linux Kernel系列一:开篇和Kernel启动概要
前言
近期几个月将Linux Kernel的大概研究了一下,以下须要进行深入具体的分析。主要将以S3C2440的一块开发板为硬件实体。大概包含例如以下内容:
1 bootloader分析,以uboot为主,结合详细开发板的情况。我的目标是解释清楚uboot的工作原理(说实话,分析过程中不太想被硬件绑架,可是须要以一个实际的样例
来做分析)
2 kernel部分,这就非常多内容了。打算从kernel启动的流程開始分析。
3 除kernel本身外,还有非常多的知识,比如ld的输入script分析等,这里会一起介绍。
kernel启动流程概要
- vmlinux,这个是未压缩、未strip的内核模块,ELF结构
- Image:二进制、未压缩、可是strip后的内核
- head.o:ARM相关的,由BL将控制权转交给它。即前面提到的head.S生成
- pigg.gz:Image文件的gzip压缩
- piggy.o:由piggy.S生成,这个S文件通过include Bin方式将Image包括进来。piggy的意思就是背负、肩扛。非常形象不是?
- misc.o:从上面看,涉及到一些解压方面的内容,而misc提供一些辅助函数
- vmlinux:悲催.....这个文件是head+pigg+misc构成的vmlinux。名字一样不是?真的非常混淆!
- zImage:再由上面这个vmlinux压缩而来
- BL仅仅是初始化硬件,不依赖linux,不处理linux
- BSL在BL后执行,依赖linux,由于要解压linux。另外一个重要点就是BSL须要为LINUX的执行建立环境
- head.O:初始化CPU等工作
- misc.O:解压,重定位(比如将kernel移动到另外一个位置上) decompress_kernel
- 其它工作
- 刚才仅仅是初始化了cpu相关的,而详细和板子相关的由start_arch运行
转载于:https://www.cnblogs.com/bhlsheji/p/4201225.html
Linux Kernel系列一:开篇和Kernel启动概要相关推荐
- Linux Kernel系列三:Kernel编译和链接中的linker script语法详解
先要讲讲这个问题是怎么来的.(咱们在分析一个技术的时候,先要考虑它是想解决什么问题,或者学习新知识的时候,要清楚这个知识的目的是什么). 我在编译内核的时候,发现arch/arm/kernel目录下有 ...
- 奇小葩讲设备树(4/5)-- Linux设备树详解(四)kernel的解析
uboot将一些参数,设备树文件传给内核,那么内核如何处理这些设备树文件呢?本章就kernel解析设备树的过程和原理,本章的主要内容以Device Tree相关的数据流分析为索引,对ARM linux ...
- arm linux 内核配置,嵌入式 Linux开发Kernel移植(二)——kernel内核配置和编译
嵌入式 Linux开发Kernel移植(二)--kernel内核配置和编译 本文选择linux 2.6.35.7版本kernel进行实践. 一.linux kernel源码目录分析 Kbuild,Ke ...
- Linux系统移植:原厂 Kernel 移植到开发板
文章目录 Linux系统移植:原厂 Kernel 移植到开发板 一.获取原厂内核并编译 二.内核启动测试 三.添加自己板子文件 3.1 板子配置文件 3.2 板子设备树 3.3 编译 四.重要配置修改 ...
- linux 内核编号含义_linux内核(kernel)版本号的意义
转自:http://www.cnblogs.com/jsjliuxing/archive/2011/12/01/2271182.html 在linux下有一个目录,即/usr/src/kernels/ ...
- (4)top详解 (每周一个linux命令系列)
(4)top详解 (每周一个linux命令系列) linux命令 top详解 引言:今天的命令是用来看cpu信息的top top 我们先看man top top - display Linux pro ...
- Linux Rootkit 系列三:实例详解 Rootkit 必备的基本功能
本文所需的完整代码位于笔者的代码仓库:https://github.com/NoviceLive/research-rootkit. 测试建议: 不要在物理机测试!不要在物理机测试! 不要在物理机测试 ...
- Linux技术研究-基础篇(启动和自动挂载)
Linux技术研究-基础篇(启动和自动挂载) 系统启动流程 如果有一天你的服务器启动不了,面对屏幕上的各种各样的提示素手无策. 你不知道服务器出了什么问题,无法判断启动到了哪个环节. 若想排查出问题原 ...
- ARM linux解析之压缩内核zImage的启动过程
ARM linux解析之压缩内核zImage的启动过程 首先,我们要知道在zImage的生成过程中,是把arch/arm/boot/compressed/head.s 和解压代码misc.c,deco ...
最新文章
- knn算法实现电影分类
- group python 读hdf5_Python处理Excel模块的对比分析
- 地理编码与反地理编码
- 戴尔G7 7588 Windows 10 未安装任何音频输出设备
- JS替换、删除指定字符
- 高速公路上边有没有人脸识别摄像头_人脸识别特征介绍以及难题概括
- oracle导出报错00091,exp报错:EXP-00091 Exporting questionable statistics
- 在Vmware 14 pro 中安装中兴新支点操作系统
- JAVA常用工具类汇总
- 游戏数据分析-玩家战力分析
- mysql中的count函数解释
- vue2的css 动画库的基本使用方式
- CSDN博客字体样式、字体大小、字体颜色、首行缩进调节
- ISBN码识别-DA数据结构二级项目
- 多个视频的音频互换软件,一键互换视频的音频声音
- glassfish java ee_GlassFish 3.1.2发布 开源的JavaEE应用服务器
- 《WEB安全深度学习实战》笔记
- 疯狂Java讲义(四)
- 目标跟踪实战,车辆车距监测 yolov5
- FinalShell工具下载安装教程
热门文章
- 从零单排学Redis【铂金一】
- LINUX下CPU Load Average的一点研究
- 多线程:AQS源码分析
- Android——怎么引入okhttp3
- 计算机模拟生态系统,生态系统模拟方法.ppt
- mqtt linux 编译,MQTT客户端代码X64位Ubuntu环境编译+测试实践小结
- php5.6.33安装教程,centos7手动安装PHP5.6.33详解
- javafx 安装_JDK安装教程及环境配置
- 数据中心机房工程建设需要注意的重大问题
- 成功解决在excel表中通过数学函数转换后,接着去掉公式转为不再随着变化的数值