本文章和后续的几篇姐妹篇linux系统怎么样,笔者将对ARM+Linux的主流嵌入式系统的启动流程进行介绍,所作介绍目的有二:其二为记录自己的学习经历,总结所学;其一希望能帮助到有须要的网友,其实笔者也希望能得到诸位高手的赐教。因为本人水平有限,不免认识有所误差,深切希望诸位能诚挚强调。
开发环境如下:
PC操作系统:RetHatEnterpriseLinux6.3版本,内核版本:linux-2.6.39
交叉工具链:arm-linux-xxx4.3.2
开发板:FriendlyMini2440:arm9内核,64MSDRAM,256MNANDFLASH
bootloader:u-boot-2009.08
开发板内核版本:linux-2.6.32
这是本系列文章的开篇,正如标题所示本篇文章将首先对整个系统的启动流程做一个简略的介绍,至于启动过程中的细节将是后续文章的主题。
总的来说,ARM+Linux系统的软件构架如下(来自国嵌课程):
上图是笔者开发板nandflash上的内容分布。如上所示,硬件系统是坐落Bootloader右边的,系统一上电,第一个得到执行的是Bootloader,接着Bootloader通过指定Bootparameters来加载kernel,kernel完成工作后才会执行文件系统里的应用程序。下边简单介绍每位阶段所完成的工作,这儿只是很简略的说明而已,具体每位步骤完成什么工作留待旁边的文章详尽介绍。
1、bootloader
bootloader的工作总的来说就是一句话:对硬件进行初始化arm linux内核启动流程,之后加载内核并启动内核。
2、kernel
bootloader启动内核后,内核进行一系列的初始化,这种初始化包括硬件的,也包括软件的,如各类内核用到的表arm linux内核启动流程,之后挂载一个或则多个文件系统。
3、rootfilesystem
rootfilesystem是内核挂载的第一个文件系统,这儿包含系统的第一个用户进程。笔者觉得文件系统用户操作kernel的一个通道red hat linux 下载,基本上我们使用操作系统都是在和文件系统打交道。
本章完,下一篇:《ARM+Linux系统启动流程剖析----ARM处理器的启动流程》