VxWorks — RTOS-ul standard în avionică și apărare

VxWorks e cel mai utilizat RTOS comercial în sisteme critice: F-16, F-35, B-2, Patriot.

Ce este VxWorks?

VxWorks e un RTOS comercial dezvoltat de Wind River Systems (subsidiara Intel, acum deținută de Aptiv). E standardul de facto în industria militară, aerospațială și industrială — practic fiecare avion de luptă american construit după 1990 rulează VxWorks.

Lansat în 1987, VxWorks e unul dintre cele mai vechi RTOS-uri comerciale încă active. A evoluat de la un microkernel simplu pentru embedded la un sistem complet cu SMP, protecție de memorie, virtualizare și certificări multiple.

Unde se folosește

Avioane militare

| Platformă | Sistem | |---|---| | F-16 | Control zbor, avionică | | F-35 Lightning II | Sisteme de misiune, senzori, fuziune date | | B-2 Spirit | Sisteme de navigație | | Eurofighter Typhoon | Control zbor | | Dassault Rafale | Avionică | | Drone Predator / Reaper | Control misiune |

NASA și spațiu

  • Mars Reconnaissance Orbiter — controlul orbitei
  • Curiosity Rover — subsisteme
  • SpaceX Dragon — inițial (tranziție la Linux)
  • Stația Spațială Internațională — experimente

Altele

  • Automotive: sisteme de frânare, airbaguri, ADAS
  • Industrial: robotică, controlere PLC, SCADA
  • Medical: pompe de infuzie, aparatură de diagnostic
  • Telecom: stații de bază 5G, routere

Arhitectură

Nucleu — VxWorks Kernel

Nucleul oferă:

  • Scheduling preemptiv cu prioritate (256 de nivele)
  • Round-robin între task-uri de aceeași prioritate
  • Rate Monotonic pentru task-uri periodice
  • SMP (Symmetric Multi-Processing) pe nuclee moderne
  • Protecție de memorie (MMU-based, separă task-urile)

VxWorks 7

Versiunea curentă (VxWorks 7) e modulară:

┌──────────────────────────────────────────┐
│           Aplicații utilizator            │
├──────────────────────────────────────────┤
│  POSIX PSE-52  │   Wind River API        │
├──────────────────────────────────────────┤
│  VxWorks Kernel (scheduler, IPC, MMU)    │
├──────────────────────────────────────────┤
│  BSP (Board Support Package)             │
├──────────────────────────────────────────┤
│  Hardware                                │
└──────────────────────────────────────────┘

Caracteristici cheie

| Caracteristică | Descriere | |---|---| | Protecție memorie | MMU separă task-urile (procese vs thread-uri) | | SMP | Suport pentru procesoare multi-nucleu | | POSIX | PSE-52 (real-time POSIX profile) | | Network stack | IPv4/IPv6, TCP, UDP, TLS, IPsec | | USB stack | Host și device, USB 3.0 | | Graphics | OpenGL, DRM, frame buffer | | Virtualizare | Hypervisor integrat | | Certificări | DO-178C, IEC 61508, ISO 26262 |

Certificări — ce le face speciale

Avantajul principal al VxWorks față de RTOS-urile open-source e certificarea. Pentru industrii critice, autoritățile cer demonstrații riguroase că software-ul e sigur.

| Certificare | Industrie | Nivel VxWorks | |---|---|---| | DO-178C | Avionică | Level A (cea mai înaltă) | | IEC 61508 | Industrial | SIL 3 | | ISO 26262 | Automotive | ASIL D | | IEC 62304 | Medical | Clasa C | | Common Criteria | Securitate | EAL 4+ |

Costul certificării e un motiv major pentru care VxWorks domină în aceste domenii — odată ce un sistem e certificat pe VxWorks, schimbarea RTOS-ului înseamnă recertificare completă, care poate costa milioane de dolari și lua ani.

VxWorks vs alte RTOS-uri

| Caracteristică | VxWorks | RTEMS | FreeRTOS | Linux RT | |---|---|---|---|---| | Licență | Proprietar ($) | BSD | MIT | GPL | | Cost | $10k-50k+ / an | Gratis | Gratis | Gratis | | Dimensiune | 50-500 KB | 50-500 KB | 10-100 KB | 5-50 MB | | SMP | ✅ (nativ) | ✅ (experimental) | ❌ | ✅ | | Protecție memorie | ✅ (MMU) | ❌ (opțional) | ❌ | ✅ (complet) | | POSIX | PSE-52 | Parțial | ❌ | Complet | | DO-178C | ✅ Level A | ❌ | ❌ | ❌ | | Ecosistem | Matur, complet | Limitat | IoT | Vast | | Suport | Profesional | Open-source | Open-source | Open-source |

Exemplu — task VxWorks

#include <vxWorks.h>
#include <taskLib.h>

void senzor_task(void) {
    while (1) {
        data = citeste_senzor();
        if (data > prag) {
            msgQSend(queue, &data, sizeof(data), 0);
        }
        taskDelay(sysClkRateGet() / 100);  // 10 ms
    }
}

void init(void) {
    taskSpawn("senzor", 100, 0, 4096, senzor_task, 0,0,0,0,0,0,0,0,0,0);
}

Workbench — Mediul de dezvoltare

Wind River Workbench e IDE-ul oficial bazat pe Eclipse. Oferă:

  • Debugging la nivel de task și sistem
  • Analiză în timp real (utilizare CPU, memorie, stack)
  • Profiling și trace de evenimente
  • Simulator integrat (VxWorks Simulator)
  • System Viewer — vizualizare în timp real a scheduling-ului

Workbench e unul dintre punctele forte ale ecosistemului VxWorks — pentru inginerii care dezvoltă sisteme critice, productivitatea contează mai mult decât costul licenței.

Critici

  • Cost: Licențele încep de la $10,000/an, pot ajunge la sute de mii
  • Vendor lock-in: Odată ce alegi VxWorks, e greu să schimbi
  • Closed source: Nu poți inspecta sau modifica kernelul
  • Ecosistem: Limitări în biblioteci și tool-uri moderne
  • Dimensiune: Mai mare decât FreeRTOS, nu rulează pe MCU-uri mici

Concluzie

VxWorks rămâne alegerea dominantă pentru sisteme critice unde certificarea și fiabilitatea sunt mai importante decât costul. Faptul că rulează în F-35, Mars Reconnaissance Orbiter și sute de alte sisteme unde o eroare e inacceptabilă spune totul despre maturitatea sa. Pentru proiecte unde bugetul permite, VxWorks e încă standardul de aur — nu pentru că e cel mai bun tehnic, ci pentru că e cel mai sigur dovedit.