QNX启动步骤
嵌入式系统的启动都是类似的,先启动一个boot程序,然后又boot控制系统的进一步加载运行.
根据启动过程,大致可以分为一下五个步骤:
1. 处理从复位向量执行代码。
2. 启动系统的启动代码(qnx的启动代码就是IPL)。
3. IPL会将OS镜像装载并传递控制参数到镜像中的startup程序。
4. startup程序配置系统,然后启动neutrino微内核和进程管理器procnto。
5. procnto模块装载附加的驱动和应用程序。
下面主要以QNX 4介绍.
QNX4
QNX4 是 一 个 遵 循 POSIX 1003. 1 标 准 及
POSIX 实时标准的实时操作系统。
QNX4启动
计算机加电后, 首先由板上自带的 BIOS 进行检测通过后从硬盘的 第一个物理扇区( 0 磁道 0 柱面 1 扇区) 读入"引导块"( Loader block) 并把执行控制权交给引导程序。
引导程序执行后将会选择一个可启动的硬盘分区来启动系统。
-
启动分区的第一个扇区内,存放着QNX4操作系统的第二个 loader, 这个 lo ader 会提示用户选择一个 QNX 系统映象来启动系统。
系统映象一般包含 boot 、 Proc32、 sinit 这 3 个进程, 当它被加载到内存后, 首先执行boot进程,在实模式下完成系统的初始化工作后将机器设置为保护模式。接着执行 Proc32进程, 该进程包含系统微内核, 主要完成处理器的初始化并对系统映象所包含的各个进程进行运行调度; 最后执行sinit进程, sinit进程通过启动一个shell来执行脚本命令从而对系统进行第二阶段的初始化, 通常一些比较次要的系统服务以及大部分用户程序都是在这个阶段加载的。
正常启动时,sinit进程首先查找初始化脚本配置文件/ etc/ config/ sysinit . node, 如果该文件不存在或无法打开/etc/config/sysinit file 文件, 如果还不存在则sinit进程结束, 系统没有被初始化。
参考
QNX4原理及其启动过程分析