Nel panorama sempre più affollato dei kernel Unix-like, dove oltre 200 progetti competono su GitHub, emerge Ironclad OS con un approccio decisamente originale. Invece di utilizzare i linguaggi più popolari come C, C++ o il recente Rust, gli sviluppatori di Ironclad hanno scelto una strada diversa: Ada e il suo sottoinsieme formalmente verificabile SPARK.

Il progetto Ironclad OS si propone di creare un kernel compatibile con POSIX, progettato specificamente per sistemi embedded e applicazioni real-time con un footprint ridotto. Ma ciò che lo rende davvero speciale è l’attenzione alla sicurezza attraverso linguaggi di programmazione storicamente utilizzati in contesti mission-critical.
Ada e SPARK: I Nonni dei Linguaggi Sicuri
Mentre Rust riceve oggi tutta l’attenzione come linguaggio sicuro per la programmazione di sistema, Ada rappresenta il “nonno” di questa categoria. Sviluppato negli anni ’80, Ada è stato per decenni il linguaggio di riferimento per sistemi critici in ambito aerospaziale, militare e dei trasporti.
SPARK è un sottoinsieme di Ada che implementa il paradigma “design by contract” e permette la verifica formale del codice. Questo significa che è possibile dimostrare matematicamente l’assenza di determinati tipi di bug, un livello di garanzia che va oltre i normali test software.
Il team di Ironclad sta lavorando proprio sulla verifica formale del kernel, un obiettivo ambizioso che, se completato, metterebbe Ironclad in compagnia del prestigioso microkernel seL4, attualmente l’unico altro kernel formalmente verificato di cui si abbia notizia.
Caratteristiche Tecniche di Ironclad OS
Ironclad OS non è solo un esperimento accademico, ma un sistema progettato con caratteristiche concrete per applicazioni reali:
Mandatory Access Control (MAC)
Il kernel supporta il Mandatory Access Control, un sistema di sicurezza di livello enterprise utilizzato dalle grandi organizzazioni e raccomandato dal National Institute of Standards and Technology degli Stati Uniti. Il MAC garantisce che i controlli di accesso siano gestiti centralmente e non possano essere modificati dagli utenti, a differenza del tradizionale Discretionary Access Control.
Compatibilità POSIX
Nonostante l’approccio innovativo, Ironclad mantiene la compatibilità con lo standard POSIX, assicurando che le applicazioni Unix tradizionali possano funzionare senza problemi. Questa scelta pragmatica rende Ironclad utilizzabile in scenari reali sin da subito.
Orientamento Real-time
Il kernel è progettato per supportare applicazioni real-time, un requisito fondamentale per sistemi embedded industriali, automazione e controllo di processo.
Gloire: Il Sistema Operativo Completo
Un kernel da solo serve a poco senza un ecosistema software completo. Per questo motivo, il progetto Ironclad include anche Gloire, un sistema operativo completo costruito sopra il kernel Ironclad.
Il nome Gloire deriva dalla prima nave corazzata oceanica francese del 1859, un omaggio alla tradizione di innovazione tecnologica. Gloire utilizza strumenti GNU per garantire la compatibilità Unix tradizionale ed è costruito utilizzando mlibc, una libreria C standard proveniente dal progetto Managarm.
L’ambizione del team è notevole: stanno portando l’ambiente desktop MATE su Gloire, dimostrando che non si tratta solo di un sistema per server o dispositivi embedded, ma di una piattaforma potenzialmente utilizzabile anche come sistema desktop.
Il Ritorno di Ada nell’Attenzione degli Sviluppatori
Probabilmente grazie all’interesse generato da Rust per i linguaggi sicuri, anche Ada sta tornando sotto i riflettori. Nel 2025, Ada è rientrata nella top 20 dell’indice TIOBE, una classifica che misura la popolarità dei linguaggi di programmazione.
Questo rinnovato interesse è facilitato dalla disponibilità di GNAT, il compilatore Ada open source parte del progetto GNU, che rende il linguaggio accessibile a chiunque voglia sperimentare senza costi di licenza.
Una Tradizione Lunga e Ricca
L’utilizzo di linguaggi della famiglia Pascal per sistemi operativi Unix-like non è affatto una novità. La sintassi di Ada, con il suo forte sistema di tipi, è visibilmente ispirata a Pascal, e negli anni ’80 esistevano numerosi progetti simili:
- TUNIS dell’Università di Toronto, sviluppato in Concurrent Euclid
- AEGIS OS di Apollo Computer, implementato in Pascal e successivamente evoluto in Domain/OS
- EMBOS di Elxsi, un design microkernel precoce scritto in Pascal
- Topaz di DEC, un microkernel sperimentale in Modula-2+
- SPIN dell’Università di Washington, realizzato in Modula-3
- Chorus di INRIA, originariamente sviluppato in Pascal
Alcuni di questi progetti hanno avuto impatti significativi sull’industria: Apollo fu acquisita da Hewlett-Packard, il kernel Chorus finì in mano a Oracle e venne utilizzato in JavaOS di Sun Microsystems, mentre persone che lavorarono su Elxsi contribuirono all’invenzione dei certificati digitali e fondarono NexGen, poi acquisita da AMD.
Perché Ada Invece di Rust?
La domanda sorge spontanea: perché scegliere Ada quando Rust è il linguaggio del momento per la programmazione di sistema sicura? Le ragioni sono molteplici:
- Verifica formale: SPARK permette di dimostrare matematicamente proprietà del codice, andando oltre le garanzie offerte dal borrow checker di Rust.
- Maturità: Ada ha decenni di utilizzo comprovato in sistemi mission-critical, con toolchain stabili e ben documentate.
- Espressività: Il sistema di tipi di Ada e le sue capacità di programmazione generica offrono strumenti potenti per scrivere codice robusto.
- Ecosistema real-time: Ada ha un forte supporto per programmazione concorrente e real-time integrato nel linguaggio stesso.
Prospettive Future
Ironclad OS è ancora in fase di sviluppo attivo, con il progetto che è iniziato solo nel 2022. Tuttavia, gli obiettivi sono chiari e ambiziosi: creare un kernel sicuro, verificabile e adatto a sistemi critici dove l’affidabilità non è negoziabile.
Il supporto per il desktop MATE in Gloire dimostra che le ambizioni vanno oltre i sistemi embedded, puntando a creare una piattaforma versatile utilizzabile in diversi contesti.
Come Seguire il Progetto
Gli interessati possono seguire lo sviluppo di Ironclad OS attraverso:
- Il sito ufficiale ironclad-os.org con documentazione e aggiornamenti
- Il repository di Gloire su Codeberg per il sistema operativo completo
- Il blog del progetto che documenta i progressi tecnici
Ironclad OS rappresenta un’interessante alternativa nel panorama dei sistemi operativi Unix-like, dimostrando che non esiste un’unica strada verso la sicurezza del software. Mentre il mondo guarda a Rust come la soluzione moderna, progetti come Ironclad ricordano che linguaggi maturi come Ada hanno ancora molto da offrire, specialmente quando la verifica formale e la sicurezza certificabile sono requisiti fondamentali.
Per gli appassionati di Linux e sistemi operativi, Ironclad rappresenta un’opportunità per esplorare approcci diversi alla programmazione di sistema, imparando da decenni di esperienza nei settori più critici dell’informatica. Il futuro dei sistemi sicuri potrebbe non essere monolitico, ma composto da diverse soluzioni, ciascuna con i propri punti di forza per specifici contesti applicativi.