arm linux的一般启动过程包括引导内核,启动内核,和启动初始化程序三个阶段,
第一阶段:上电后,ARM处理器自动去读存储器的特定位置,在这个位置存放有bootloader的代码,如vivi,u-boot等,实现目标板硬件的初始化,接着解压内核映像文件,再跳转到内核映像的入口。
第二阶段:初始化内核、设备驱动,最后挂接根文件系统。这里是linux内核通用的启动函数入口。所有体系结构的目标板都顺序调用一致的函数,
第三阶段:执行用户空间的init程序,完成系统初始化、启动相关服务和管理用户登录等工作,这个阶段可以通过交互界面完成。
上电---》bootloader--》kernel boot --》init--》Shell -- 》启动完毕
Linux 内核是一个非常庞大的工程,经过十多年的发展,它已从最初的几百KB 大小
发展到现在的几百兆。清晰的了解它执行的每一个过程是件非常困难的事。但是在嵌入式开
发过程中,我们并不需要十分清楚 linux 的内部工作机制,只要适当修改 linux 内核中那些
与硬件相关的部分,就可以将 linux 移植到其它目标平台上。
参考资料:
http://www.lunwen88.com/New-218.html
http://www.studa.net/pc-theory/080721/09133140.html
http://www.bsdmap.com/2010/01/29/arm-linux-boot/
ARM Linux启动过程分析 http://blog.21ic.com/user1/5958/archives/2009/65500.html