QNX启动

QNX启动相关知识说明

  • QNX启动组件
  • QNX启动时序

QNX系统的启动一般会涉及到IPL、Startup脚本以及OS,可能还有额外的驱动程序或实用程序等

QNX启动组件

通常硬件的初始化是由bootloader完成,如:arm架构一般由u-boot,x86架构一般是BIOS或UEFI完成,但QNX的硬件初始化程序称为IPL(Initial Program Loader),但功能与uboot和bios类似。QNX系统启动时序主要有3个主要的组件组成,其一为上述中的IPL,其二为startup程序,其三为OS image。
备注:startup program和OS image均被包含在OS镜像文件中。

QNX启动时序

现在我们就来详细说一下QNX的具体的启动流程。
QNX启动_第1张图片
我们根据上图的启动流程来描述一下每一步实现的具体工作任务。
1.硬件初始化,在硬件上电之后由硬件及固件自身进行检查和初始化任务,之后将执行权限交给预先设定的相应位置的软件。该预设的软件通常为处理器开始执行的物理地址的首地址,即经常所说的复位向量。在ARM的架构中该地址通常为0x00000000,x86的架构中该地址通常为 0xFFFFFFF0。
2.IPL执行能够运行startup程序和QNX内核并能加载镜像文件的环境所需的最小的硬件环境的配置,完成上述配置后,IPL将执行权限交给startup程序。
3.startup程序进行系统的配置,如时钟,中断控制器,内存控制器的配置等。完成上述配置后,startup程序将执行权限交给系统kernel(procnto)。
4.OS kernel被包含在Procnto模块中。该模块包含kernel和进程管理器,该模块设置os,之后运行buildfile文件内的指令,该文件中包含驱动程序和应用程序的启动指令以及一些额外的必须运行的一些组件的启动指令。
5.buildfile中除了包含上述的指令外还包含:
1)、生成镜像文件时要打包进镜像中的文件;
2)、可执行程序的启动顺序;
3)、可执行程序和文件加载时所需的参数;
4)、可执行文件的命令行参数以及环境变量;
在上述buildfile中所有的命令都运行完成后,该系统就启动完成了。
6.SLM(System Launch and Monitor)被用于启动包含多个且必须按照一定的规则顺序启动的复杂的应用程序。SLM可允许你进行配置启动的规则顺序而无需修改buildfile文件。

你可能感兴趣的:(QNX)