2. INTEGRITY系统架构与核心机制
INTEGRITY实时操作系统在航空电子领域被广泛采用,其核心设计目标是在同一硬件平台上安全地承载多个不同安全等级、不同功能属性的应用。要理解它为什么能满足DO-178C A级与ARINC 653的要求,必须从微内核结构、分区调度、时间与空间隔离三条主线入手,再回到ARINC 653标准符合性及其工程价值。
微内核结构:把"必须可信"的代码压到最小
INTEGRITY采用典型的微内核(Microkernel)架构。与把文件系统、网络协议栈、设备驱动都塞进内核的宏内核不同,INTEGRITY只把最基础、最不能出错的功能留在内核态:地址空间管理、分区与任务调度、进程间通信(IPC)、中断分发、时间管理以及安全监控。其余服务——文件系统、网络、图形、设备驱动——都以独立任务或分区形式运行在用户态,通过内核提供的受控接口访问资源。
这种"最小可信计算基(TCB)"带来的直接好处是可验证性。内核代码量小、路径清晰,形式化验证与最坏执行时间(WCET)分析更容易收敛。在航空电子中,这意味着内核本身可以按最高安全等级(DAL A)进行适航取证,而运行在其上的应用可以按各自等级独立取证,不必因为共享一个庞大内核而被迫整体提升等级。
内核对外暴露的核心抽象是"分区(Partition)"和"任务(Task)"。分区是资源分配与隔离的单位,任务是分区内调度的单位。分区之间只能通过内核仲裁的IPC通道通信,任何越界访问都会被内存管理单元(MMU)拦截并触发内核的故障处理。
分区调度:时间维度的确定性
INTEGRITY的分区调度采用两级结构:分区级调度决定哪个分区在什么时间窗口获得CPU;任务级调度决定分区内部哪个任务运行。分区级调度通常采用静态的、基于时间表的轮转(Time-Triggered Schedule),每个分区被分配一个固定的主时间帧(Major Time Frame, MTF)内的若干时间窗口(Partition Window)。
例如,一个典型的航空电子配置中,主时间帧设为100 ms,划分为四个窗口:飞行控制分区20 ms、显示分区30 ms、导航分区30 ms、健康监控分区20 ms。调度表在系统启动前静态配置,运行时由内核按表切换。这种静态调度保证了每个分区在确定的时间点获得确定的CPU时间,不会因为其他分区的负载波动而被挤占。
任务级调度在分区窗口内进行,INTEGRITY支持优先级抢占式调度和轮转调度。分区内的任务共享该分区的时间窗口,窗口耗尽时内核强制切出,未完成的任务只能等待下一个主时间帧中的同一窗口。这种"窗口内调度、窗口外挂起"的机制,是时间隔离的关键实现。
时间与空间隔离原理
空间隔离依赖MMU和分区地址空间。每个分区拥有独立的虚拟地址空间,内核在分区切换时重载页表基址寄存器。分区A的代码无法读写分区B的内存,即使A中存在指针错误或缓冲区溢出,也只能破坏自己的地址空间,不会波及其他分区。内核还通过"分区健康监控"(Partition Health Monitoring)捕获异常,按预定义策略(重启分区、切换备份、降级运行)处理。
时间隔离依赖静态调度表和硬件定时器。每个分区窗口的起止时刻由内核定时器精确控制,窗口超时即触发上下文切换。一个分区即使进入死循环,也只会耗尽自己的窗口,不会侵占其他分区的时间。这种隔离使得不同安全等级的应用可以共存:DAL A的飞行控制分区与DAL D的维护数据分区在同一CPU上运行,互不影响。
时间与空间隔离共同构成了"分区化"的核心价值:故障遏制。一个分区的故障不会传播到其他分区,系统的整体安全性由最坏情况下的分区行为决定,而不是由所有应用的组合行为决定。
ARINC 653标准符合性
ARINC 653是航空电子分区化操作系统的接口标准,定义了分区管理、进程管理、时间管理、分区内通信、分区间通信、健康监控等一组APEX(Application Executive)服务。INTEGRITY通过提供符合ARINC 653 Part 1的APEX接口,使应用软件可以在不同厂商的符合性平台之间移植。
符合ARINC 653的关键点包括:
- 分区管理:支持分区的创建、启动、停止、重启,以及分区模式的切换(冷启动、热启动、正常、空闲)。
- 进程管理:分区内进程的创建、启动、挂起、恢复、停止,支持周期性和非周期性进程。
- 时间管理:提供周期开始、周期结束、定时等待、绝对时间读取等服务,保证分区内进程按时间表运行。
- 分区间通信:通过采样端口(Sampling Port)和队列端口(Queuing Port)实现分区间的数据交换,端口由内核仲裁,保证通信的确定性和隔离性。
- 健康监控:定义模块级、分区级、进程级的三级监控,支持故障上报、故障恢复和降级策略。
INTEGRITY不仅满足ARINC 653的接口要求,还在内核层面实现了分区调度与隔离,使得符合性不是"表面接口",而是可验证的运行时行为。例如,采样端口采用"最新值覆盖"语义,队列端口采用"先进先出"语义,两者都由内核在分区窗口切换时完成数据搬运,不占用应用分区的时间窗口。
在航空电子中的价值
分区化与ARINC 653符合性带来的工程价值体现在三个层面。第一,适航取证:不同安全等级的应用可以独立取证,DAL A的飞行控制软件不必因为与DAL D的维护软件共享CPU而被迫提升到DAL A,显著降低取证成本和周期。第二,系统集成:多个供应商的软件可以在同一硬件平台上集成,只要各自符合ARINC 653接口,就能通过分区隔离保证互不干扰,减少了传统 federated 架构中大量独立LRU带来的重量、功耗和布线成本。第三,故障遏制:一个分区的软件缺陷或硬件瞬时故障被限制在分区边界内,系统可以通过健康监控重启该分区或切换到备份分区,维持关键功能的持续运行。
以典型的大型客机为例,原本由多个独立LRU分别实现的飞行控制、显示、导航、维护功能,在分区化架构下可以整合到少数几个IMA(Integrated Modular Avionics)机柜中。INTEGRITY作为其中的核心操作系统,负责在共享计算资源上划分出确定性的时间窗口和独立的地址空间,使这种整合在安全性和确定性上不妥协。