Un mondo… virtualizzato…
Ormai, i tre più diffusi sistemi operativi girano in pratica sulla stessa architettura (in pratica processori Intel/AMD, con Bios o EFI per la motherboard).
Come saprete, però, non è possibile far girare semplicemente un programma compilato per Windows su Mac, o sul Linux, o viceversa, anche se il codice di base del programma è lo stesso, visto che il processore principale ha la stessa architettura, per una serie di motivi (riassumendo, in maniera molto rozza, i diversi sistemi operativi mettono a disposizione una serie di funzioni già definite per fornire alcune funzionalità di base ai programmi, in modo che abbiano lo stesso aspetto grafico, o anche per comunicare tra loro, o con l’hardware, etc, ma queste funzioni sono diverse per ogni sistema operativo, anche se simili).
Da tempo si è tentato di avere una tecnologia adatta a creare programmi che potessero funzionare, una volta compilati, non solo su qualsiasi sistema operativo, ma perfino su hardware diversi, senza dover creare diverse versioni dello stesso programma, Java (popolarissima, attualmente, per creare giochi per i telefoni cellulari, o online), con lo svantaggio però di avere basse prestazioni, visto che in pratica viene emulato (simulato…) sia l’ambiente software che l’hardware.
Un’altra soluzione, adottata inizialmente in Linux, e poi portata anche in altri ambienti (compreso Mac OS X) per permettere l’esecuzione di programmi Windows sotto altri sistemi operativi, è Wine, che in pratica permette di simulare, virtualizzandolo, il solo ambiente software di Windows (in pratica quelle funzioni predefinite di cui parlavo prima, e poco altro), lasciando al vero hardware l’esecuzione del codice principale del programma. In questo modo un programma per Windows può essere eseguito senza modifiche sotto Linux. Questo però non funziona ancora benissimo, visto che molte funzioni di Windows sono “segrete”, e il lavoro degli sviluppatori di Wine è fatto senza alcun aiuto da parte di Microsoft, per cui procede a rilento. Se solo Microsoft (che tra l’altro ultimamente sembra aver preso in considerazione l’idea di adottare standard aperti e, se non di supportare, almeno di non contrastare l’open source) rendesse disponibili le specifiche complete di queste funzioni, l’integrazione potrebbe essere completa.
Qualcosa di simile si è fatta anche per implementare in altri ambienti le specifiche OpenStep, alla base del sistema grafico di Mac OS X (quelle che Apple chiama Cocoa, per intenderci), anche se più che altro sotto forma di ambiente grafico da utilizzare sotto Linux.
Il progetto più recente però è il promettente LINA, che ha lo scopo di permettere l’esecuzione di programmi (sia testuali che grafici) compilati per Linux, sotto Windows, Mac OS X e altri ambienti.
Sarebbe bello un mondo dove ognuno, con suo sistema operativo preferito (o quello che gli viene imposto o comunque trova nell’ambiente di lavoro), possa utilizzare qualunque programma per qualunque piattaforma, o almeno Windows, Linux e Mac, con un calo di performance tascurabile (visto che l’hardware sarebbe lo stesso)…





