VxWorks是由Wind River开发的一款实时操作系统(RTOS),主要用
于对实时性、可靠性和确定性要求较高的嵌入式设备。
1.核心特点
| 特性 |
说明 |
| 实时性 |
支持严格的任务调度和低延迟响应 |
| 确定性 |
任务执行和中断响应具有较强的时间可预测性 |
| 多任务 |
支持大量并发任务,通过优先级进行调度 |
| 抢占式调度 |
高优先级任务可以抢占低优先级任务 |
| 中断处理 |
提供较完善的中断管理机制 |
| 网络能力 |
提供TCP/IP、网络设备驱动等功能 |
| 多处理器支持 |
支持SMP、AMP等多核/多处理器架构 |
| 可靠性 |
常用于航空航天、工业控制、通信等高可靠场景 |
| 板级支持 |
通过BSP适配具体CPU和硬件平台 |
2.VxWorks基本结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ┌──────────────────────────────┐ │ 用户应用程序 │ │ 业务任务 / 状态机 / 控制算法 │ ├──────────────────────────────┤ │ VxWorks系统组件 │ │ 网络 / 文件系统 / IPC / I/O │ ├──────────────────────────────┤ │ VxWorks内核 │ │ 任务调度 / 信号量 / 消息队列 │ │ 中断 / 内存管理 / 定时器 │ ├──────────────────────────────┤ │ BSP │ │ CPU初始化 / 中断 / 时钟 / 驱动 │ ├──────────────────────────────┤ │ 硬件平台 │ │ CPU / RAM / Flash / 外设 │ └──────────────────────────────┘
|
其中几个概念特别重要:
- Kernel:负责任务调度、同步、IPC、中断、内存等。
- BSP(Board Support Package):负责让VxWorks运行在具体硬件板卡上。
- Driver:负责CPU、网卡、串口、SPI、I²C、PCIe等硬件设备。
- Task:VxWorks中的基本执行单元,类似Linux中的线程。
- Shell:可以在目标机上直接执行调试和系统管理命令。
3.VxWorks和Linux的区别
| 对比 |
VxWorks |
Linux |
| 定位 |
RTOS |
通用操作系统 |
| 实时性 |
强,强调确定性 |
普通Linux需要额外实时机制 |
| 内核 |
相对精简 |
功能非常庞大 |
| 任务模型 |
Task/Thread |
Process/Thread |
| IPC |
Semaphore、MsgQ等 |
Pipe、Socket、IPC、Futex等 |
| 驱动模型 |
BSP+Driver体系 |
LinuxDriver体系 |
| Shell |
VxWorksShell |
Bash等 |
| 应用场景 |
强实时、工业、航空航天、通信 |
手机、服务器、嵌入式、桌面等 |