sabato 22 settembre 2007

LINA: il sistema operativo virtuale

Far girare un'applicazione nativa Linux direttamente in Windows e Mac, senza nessuna modifica o ricompilazione, questo è quanto promette LINA.

LINA, che sta per LINA is not an acronym, è un software open source con un obbiettivo davvero ambizioso: prendere un programma sviluppato su Linux in C e C++ per il momento, ma successivamente anche Python, Perl, Ruby, Java, C#/Mono (e altri imprecisati, comunque tutti verranno dotati delle librerie di supporto a LINA), e farlo girare così com'è anche su Windows e Mac.

Non solo: l'applicazione avrà lo stesso look and feel delle applicazioni native. Se il programma Linux gira in Windows, sarà indistinguibile da tutti gli altri programmi Windows, in Mac invece assumerà l'aspetto tipico di un programma Mac. Questo perché LINA permetterà all'applicazione di usare le librerie native del sistema operativo sottostante.

Come fa LINA ad ottenere questo risultato?
Tramite un LINA Runtime Environment. Questo strato software che si interpone fra programma Linux e sistema operativo Windows o Mac, si comporta un po' come la Virtual Machine di Java (JVM): fornisce un ambiente virtuale uniforme e cross-platform in cui eseguire i programmi.

Ma la differenza fra la JVM e LINA è enorme: la JVM fornisce una macchina virtuale che esegue bytecode, un codice intermedio fra il linguaggio di programmazione e il linguaggio macchina, l'unico che il processore, Intel, AMD o altro, comprende ed esegue davvero. LINA invece è ad un livello di astrazione superiore perché non simula una macchina virtuale: è il primo software a fornire un intero sistema operativo virtuale cross-platform.

E' in questo sistema operativo virtuale che le applicazioni, native in Linux, girano nel momento in cui si trovano su Windows o Mac, con tutti i rallentamenti che ne derivano per via dell'overhead nel far girare LINA più l'applicazione al suo interno. Ed infatti gli stessi sviluppatori di LINA dichiarano una velocità della applicazioni linalizzate (si potrà dire? Vabbeh, virtualizzate!) ridotta della metà rispetto all'applicazione originale, ma contano nelle prossime versioni di avvicinarsi alla velocità di quelle native.

LINA se ho capito bene, si avvia su tutti gli UNIX, compresi Solaris e BSD, ma è stato testato solo su Fedora7, OpenSUSE 10.2, Ubuntu 7.04, Windows XP, Windows 2003, Windows Vista e Mac OS X. Su Mac sono supportate entrambi le piattaforme, Intel e PPC, mentre i 64 bit dei processori Intel/AMD non sembra lo siano, almeno nella versione iniziale; idem per il supporto alla grafica 3D.

L'idea di fornire un sistema operativo virtuale cross-platform è davvero interessante, ma sarà anche realizzabile? Dopo quattro anni di sviluppo, ora girano le applicazioni Linux con interfaccia a linea di comando. La vera sfida è far funzionare ovunque anche i programmi con normale interfaccia grafica; ci riusciranno?

In Java per avere una Virtual Machine stabile e performante (relativamente) ci sono voluti anni, e dietro a spingere c'era Sun. Qui la speranza è la community, sono gli stessi sviluppatori di LINA a dirlo: “LINA is a community-driven project”. Vedremo; solo il tempo come sempre, potrà dirci come stanno le cose. Nel mentre però, nessuno se ne abbia se un pò campanilisticamente, mi tengo stretto il fido VirtualBox! ;-)

@:\>