FTP服务器 SQL server WEB服务器 windos server Exchange ISA server 域服务器 其他服务器 服务器虚拟化技术 网站技术Linux操作系统 服务器硬件技术 服务器阵列技术
返回首页

嵌入式LINUX操作系统 5.2 初始化控制流

时间:2010-07-29 21:51来源:未知 作者:admin 点击:
5.2 初始化控制流 我们对合成内核映像的结构和组成内容已经有了一定的理解,现在来研究从引导装入程序到内核的整个引导过程。如第2章所述,引导装入程序是驻留在非易失性存储器(Flash或ROM)中的底层组件,它会在系统加电后即取得对系统的控制权。引导装入

5.2 初始化控制流

我们对合成内核映像的结构和组成内容已经有了一定的理解,现在来研究从引导装入程序到内核的整个引导过程。如第2章所述,引导装入程序是驻留在非易失性存储器(Flash或ROM)中的底层组件,它会在系统加电后即取得对系统的控制权。引导装入程序是一个精简的程序,主要用来完成底层的初始化任务、加载内核映像和系统的自我诊断,它包含内存转储(memory dump)和内存填充(memory fill)程序以修改和检查内存中的内容,同时也包含了底层的自检程序,包括对内存和I/O口的检测。最后,引导装入程序包含了一个用于引导并且把对系统的控制权交给另一个程序的逻辑,这个程序通常就是操作系统,例如Linux。

copyright by http://www.server-cn.com/

本章以ARM/XScale平台为例,该平台所使用的引导装入程序版本为Redboot,当系统加电之后,引导装入程序即被调用并且开始加载操作系统(OS)。当引导装入程序定位到操作系统映像并且引导操作系统映像(存在于本地Flash、硬盘设备、本地局域网或其他设备)之后,引导装入程序就将系统的控制权交给了该映像。

服务器配置网

在这个特定XScale平台中,引导装入程序将控制权交给第二阶段引导装入程序中标签为start的head.o模块,这一过程如图5-3所示。 http://www.server-cn.com/

 
(点击查看大图)图5-3 ARM引导流程控制

http://www.server-cn.com/

前面已详细讨论了,第二阶段引导装入程序会预先认为,内核映像会创建一个适当的环境以对内核进行解压缩和重定位,并且将对系统的控制权传递给内核映像。对于大多数体系结构来说,对系统的控制权会由第二阶段引导装入程序直接传递给严格意义上的内核,即传递给名为head.o的模块。遗憾的是,由于历史和人为的原因,第二阶段引导装入程序和严格意义上的内核都包括一个head.o模块,这对于一些嵌入式Linux开发的入门者来说就造成了混淆。我怀疑用户最终能否接受,觉得将第二阶段引导装入程序中的head.o模块称为kernel_bootstrap_ loader_head.o似乎更合适一些。事实上,最新的Linux 2.6源码树中包含了不少于37个都命名为head.S的源文件,这也就是为什么你需要了解内核源码树的另一个原因。

copyright by http://www.server-cn.com/

回到图5-3中引导过程的图形化界面。当第二阶段引导装入程序完成任务之后,严格意义上的内核head.o就取得了对系统的控制权,并且从main.c程序中的start_kernel()函数开始执行。 http://www.server-cn.com/

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐内容