linux启动流程
o倚楼听风雨o
人生如逆旅,我亦是行人。
展开
-
ARM Linux启动流程-前传
1、zImage的组成 zImage是由一个压缩后的内核piggy.o,连接上一段初始化及解压功能的代码(head.o misc.o)组成的。 2、Linux的入口 内核从什么地方开始运行呢?当然要看lds文件啦。zImage的 生成经历了两次大的链接过程: 一次是顶层根目录下vmlinux的生成,由arch/arm/boot/vmlinux.lds(这个lds文件是由 arch/ar原创 2016-12-01 19:13:24 · 517 阅读 · 0 评论 -
ARM Linux启动流程-汇编第二阶段
本文整理了ARM Linxu启动流程的第二阶段——start_kernel前启动阶段(汇编部分),内核版本为3.12.35。我以手上的树莓派b(ARM11)为平台示例来分析Linux内核在自解压后到跳转运行start_kernel之前所做的主要初始化工作:包括参数有效性验证、创建初始页表和MMU初始化等。内核版本:Linux-3.12.35分析文件:arch/arm/kernel/转载 2016-12-01 20:48:41 · 1518 阅读 · 0 评论 -
ARM Linux启动流程-start_kernel阶段
start_kernel的主要功能 start_kernel()函数是内核初始化C语言部分的主体。这个函数完成系统底层基本机制,包括处理器、存储管理系统、进程管理系统、中断机制、定时机制等的初始化工作。 分析所在文件:init/main.c 内核版本:linux-3.14.28start_kernel流程介绍 1、void lockdep_init(void) 有些体系结构有原创 2016-12-02 17:42:13 · 690 阅读 · 0 评论 -
ARM Linux启动流程-汇编第一阶段
转载地址:http://blog.csdn.net/luckyapple1028/article/details/44726131本文整理了ARM Linxu启动流程的第一阶段——内核自解压,内核版本为3.12.35。我以手上的树莓派b(ARM11)为平台示例来分析uboot跳转到Linux内核运行后做了哪些初始化动作,以及如何转入真正的内核开始运行。内核版本:Linux-3.12.35分析文件:l转载 2016-12-01 19:46:02 · 3088 阅读 · 0 评论 -
ARM Linux启动流程-根文件系统的加载
前言 在Kernel启动的初始阶段,首先去创建虚拟的根文件系统(rootfs),接下来再去调用do_mount来加载真正的文件系统,并将根文件系统切换到真正的文件系统,也即真实的文件系统。 接下来结核内核代码(内核版本:linux-3.14.28),讲解整个流程。1、文件系统的分类 文件系统大体可以分为基于内存的文件系统(initrd)和非基于内存的文件系统(noinitrd),想要了解根原创 2016-12-05 22:20:56 · 5474 阅读 · 0 评论