I ricercatori del centro studi di Microsoft a Redmond si sono posti una domanda interessante: come sarebbe il software se fosse pensato fin dall’inizio per essere affidabile e sicuro? La risposta è un sistema operativo e una piattaforma chiamata Singularity il cui codice sorgente è a disposizione di ricercatori e università .
Il progetto si basa su un approccio originale all’isolamento dei processi.
In primo luogo, invece di usare le risorse hardware per isolare i processi, Singularity usa un verificatore statico del codice, innestandosi su un filone aperto da Java. Il sistema operativo è scritto in un’estensione C#, quindi l’isolamento dallo strato hardware fornito dalla macchina virtuale diventa una parte dell’equazione.
Le applicazioni destinate all’esecuzione su Singulrity sono divise in una serie di componenti che girano in processi separati, chiamati Sip (Software Insulated Processes).
L’isolamento fra i processi è garantito dalla macchina virtuale dall’analisi statica, quindi se un componente va in errore tutto il resto del sistema funziona, un po’ come quando si rompe l’autoradio di una macchina i freni continuano a funzionare.
Tanti componenti che collaborano hanno evidentemente bisogno di comunicare e il secondo punto in cui sono intervenuti i ricercatori Microsoft è proprio la comunicazione fra processi. Singolarity si fonda su canali di comunicazione specificati in modo che un’analisi statica dei programmi permetta di assicurare la correttezza della comunicazione fra programmi impedendo l’invio di comunicazioni che possono causare un errore.
Il terzo pilastro della sicurezza di Singularity è una dichiarazione di intenti che accompagna il programma e che indica al sistema operativo quali diritti di accesso richiede il programma stesso, descrivendo i componenti dell’applicazione e il modo in cui collaborano. Questo dà al sistema strumenti ulteriori per scoprire quando il comportamento del software non è quello previsto da chi lo ha creato.
Come anticipato, Singularity è disponibile in formato sorgente. Secondo Microsoft Research, il progetto è abbastanza piccolo e stabile da consentire la sperimentazione di innovazioni in poco tempo, quindi dovrebbe essere uno strumento interessante in ambiente universitario e per gli hobbisti appassionati.
Per saperne di più e scaricare il codice ci si può collegare al sito di riferimento di Singularity.