Rust în siguranța funcțională — Ferrocene, MISRA și certificări

Rust începe să pătrundă în industrii unde C domina de 50 de ani: automotive, avionică, medical.

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?