Context
Industriile safety-critical (auto, avioane, medical) au fost dominate de C și C++ timp de decenii. Codul trebuie să respecte standarde riguroase: MISRA C, ISO 26262 (auto), DO-178C (avioane). Orice bug poate ucide.
Rust promite să elimine o întreagă clasă de bug-uri (memorie, concurență) la nivel de compilator — nu prin reguli manuale ca MISRA. În 2026, această promisiune începe să devină realitate industrială.
Problema cu C în siguranță
C e un limbaj periculos:
// Clasicele bug-uri C pe care MISRA încearcă să le prevină
int *p = NULL;
*p = 5; // ❌ null pointer → crash
int buf[10];
buf[10] = 42; // ❌ buffer overflow → exploitabil
int *x = malloc(4);
free(x);
*x = 5; // ❌ use-after-free → exploitable
MISRA interzice aceste constructe prin reguli (~150 de reguli), dar:
- Regulile trebuie aplicate manual sau cu tool-uri scumpe
- Tool-urile nu prind tot (false positive + false negative)
- Nicio regulă MISRA nu poate garanta absența use-after-free la runtime
Rust face aceste verificări în compilator — garantat, fără tool-uri externe, fără falsă siguranță.
Ferrocene — primul compilator Rust certificat
Ferrocene e o distribuție a compilatorului Rust calificată pentru ISO 26262 (automotive) și IEC 61508 (industrial). Dezvoltată de compania germană Ferrocene (fostă parts of IT).
Ce oferă Ferrocene
| Caracteristică | rustc standard | Ferrocene | |---|---|---| | ISO 26262 (auto) | ❌ Necalificat | ✅ Certificat | | IEC 61508 (industrial) | ❌ | ✅ Certificat | | Toolchain calificat | ❌ | ✅ Documentație completă | | Versiuni LTS | ❌ | ✅ 2 ani de suport | | Cost | Gratis | ~€10k/an/licență | | Actualizări | Săptămânal | Controlat, testat |
De ce e necesar?
Pentru a folosi un compilator în domenii critice, trebuie să demonstrezi că compilatorul însuși nu introduce bug-uri. GCC are un "qualification kit" — un set de documente și teste care dovedesc asta. rustc nu avea. Ferrocene e primul care oferă acest kit pentru Rust.
Rust vs MISRA — comparație reală
| Problemă | MISRA (C) | Rust |
|---|---|---|
| Buffer overflow | Regula manuală (18.1) + tool | Garantat de compilator |
| Use-after-free | Regula (18.6) + tool | Garantat (borrow checker) |
| Null pointer | Regula (16.7) + verificări manuale | Opțional (Option<T>) |
| Data race | Reguli + tool-uri statice | Garantat (Send/Sync) |
| Alocare dinamică | Interzisă (regula 21.3) | Sigură (Box, Arc) |
| Cost tool-uri | $1k-50k/an (PC-lint, Coverity) | $0 (compilatorul) |
| Cost certificare | $50k-500k (per proiect) | ~€10k/an (Ferrocene) |
| Precedent | 50+ ani | ~5 ani în safety |
Unde se folosește azi
Automotive — Veoneer
Veoneer (producător de sisteme de siguranță auto) a demonstrat un sistem de frânare de urgență scris în Rust, rulând pe un microcontroller. Concluzia: Rust a prins bug-uri de memorie pe care MISRA + tool-urile nu le-au găsit.
Avionică — Collins Aerospace
Collins Aerospace (divizia de avionică a RTX) explorează Rust pentru sisteme de control al zborului — înlocuirea treptată a C-ului moștenit cu Rust în modulele noi.
Industrial — Siemens
Siemens explorează Rust pentru controlere PLC unde siguranța e critică și timpul de dezvoltare e limitat.
Provocări
| Provocare | Impact | |---|---| | Ecosistemul e tânăr | Drivere, BSP-uri, tooling — totul e mai puțin decât pentru C | | Cost Ferrocene | ~€10k/an — pentru proiecte mici e mult | | no_std | Embedded safety-critical înseamnă fără std — fără alloc, fără colecții | | Interop cu C | Majoritatea codului existent e în C — trebuie FFI | | Toolchain calificat | Doar Ferrocene, doar pentru câteva arhitecturi |
Concluzie
Rust nu va înlocui C în safety-critical peste noapte. Dar Ferrocene a deschis ușa. În 2026-2030, vom vedea primele produse safety-critical certificate scrise în Rust — probabil în automotive, unde presiunea pe costuri și siguranță e maximă. Pentru proiecte noi, fără cod moștenit, Rust e deja o alegere rezonabilă. Pentru certificări aerospațiale (DO-178C), C + MISRA rămâne standardul — dar pentru cât timp?