您的位置:首页 > 运维架构 > Linux

ARM+Linux系统启动流程分析----系统启动总概述

2015-11-05 16:29 561 查看
        本文章和后续的几篇姊妹篇,笔者将对 ARM+Linux 的主流嵌入式系统的启动流程进行介绍,所作介绍目的有二:其一为记录自己的学习经历,总结所学;其二希望能帮助到有需要的网友,当然笔者也希望能得到各位前辈的指点。由于本人水平有限,不免认识有所偏差,真切希望各位能真诚指出。

        开发环境如下:

                                        PC操作系统:RetHat Enterprise Linux6.3版本,内核版本:linux-2.6.39

                                        交叉工具链:arm-linux-xxx 4.3.2

                                        开发板:Friendly Mini2440 :arm9内核,64M SDRAM,256M NAND FLASH

                                        bootloader:u-boot-2009.08

                                        开发板内核版本:linux-2.6.32

        这是本系列文章的开篇,正如标题所示本篇文章将首先对整个系统的启动流程做一个粗略的介绍,至于启动过程中的细节将是后续文章的主题。

        总的来说,ARM+Linux 系统的软件架构如下(来自国嵌课程):

                                     



        上图是笔者开发板nand flash 上的内容分布。如上所示,硬件系统是位于Bootloader左边的,系统一上电,第一个得到执行的是Bootloader,接着Bootloader通过指定Boot parameters来加载kernel ,kernel完成工作后就会执行文件系统里的应用程序。下面简单介绍每个阶段所完成的工作,这里只是很粗略的说明而已,具体每个步骤完成哪些工作留待后面的文章详细介绍。

1、bootloader

        bootloader 的工作总的来说就是一句话:对硬件进行初始化,然后加载内核并启动内核。

 2、kernel 

        bootloader 启动内核后,内核进行一系列的初始化,这些初始化包括硬件的,也包括软件的,如各种内核用到的表,然后挂载一个或者多个文件系统。

3、root filesystem

        root filesystem 是内核挂载的第一个文件系统,这里包含系统的第一个用户进程。笔者认为文件系统用户操作kernel 的一个通道,基本上我们使用操作系统都是在和文件系统打交道。

        本章完,下一篇:《ARM+Linux系统启动流程分析----ARM处理器的启动流程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  arm linux 启动