Quante volte vi è venuto il dubbio che il sistema operativo che state usando sul PC non sia l'ottimale per le vostre esigenze? Avete mai avuto la curiosità di provare a lavorare in ambienti PC diversi dal solito? Vorreste tanto poter usare quella certa applicazione che non è disponibile per il vostro sistema? A questo – e molto altro – esiste una soluzione che sta iniziando a prendere piede nei laptop e desktop di ultima generazione.
Amato. Odiato. Semplicemente sopportato. A volte persino oggetto di culto. Comunque sempre più presente nella nostra vita quotidiana. È il personal computer, uno strumento che per la crescente importanza assunta nel lavoro, nel tempo libero e persino nella socializzazione delle persone, presenta un impatto che viene spesso paragonato a quello che l'automobile ha avuto sulla società di quarant'anni fa.
Sarebbe una ben strana automobile, però, il nostro PC. A seconda del modello acquistato ci permetterebbe infatti di percorrere alcune strade e non altre, obbligandoci spesso a modificare percorsi ormai abituali perché divenuti incompatibili... con il carburante appena aggiunto nel serbatoio.
Tale infatti è la gabbia che nel mondo informatico viene creata dal sistema operativo, il software fondamentale sul quale si basano le applicazioni che a nostra volta utilizziamo per lo svolgimento delle normali attività quotidiane. Preferire un determinato sistema operativo a scapito di un altro equivale oggi a compiere una scelta di campo capace di influire significativamente sulla futura possibilità di utilizzare o meno certe tecnologie, di restare più o meno vincolati alle tattiche commerciali dei produttori, di sfruttare o sprecare gli investimenti (di tempo, denaro e competenze) che occorre dedicare prima di mettere a punto un workflow efficace per il proprio lavoro.
Quanto possa essere determinante a lungo termine la scelta iniziale del sistema operativo appare ormai chiaro anche a chi non abbia mai seguito da vicino le vicissitudini del mercato informatico. La maturità ormai raggiunta da due sistemi di derivazione Unix come MacOS X e Linux e i molti dubbi che circondano Windows Vista fanno sì che l'acquisto di un nuovo PC diventi oggi occasione per prendere in considerazione le alternative disponibili, ciascuna ispirata a una propria filosofia d'uso, con i relativi vantaggi e difetti.
Spesso, tuttavia, cambiare non è così facile. L'ostacolo è rappresentato dal software applicativo che già si possiede: ne esiste una versione adatta al sistema operativo al quale si vorrebbe passare? La licenza è trasferibile oppure occorre comprarne una nuova, sostenendo una nuova spesa? Cosa succede con le vecchie applicazioni ancora utili, magari essenziali, ma i cui produttori non esistono più? E cosa fare di tutto il patrimonio di dati salvati in formati proprietari? Può essere importato da altre applicazioni, può essere convertito in altri formati? Sono problemi all'ordine del giorno, che spesso possono ostacolare anche il semplice passaggio a una versione più aggiornata del medesimo OS, o sistema operativo.
Una soluzione sia pur parziale che ha trovato larga diffusione negli ultimi anni è quella di installare sul medesimo computer più sistemi operativi e selezionare quello desiderato al momento del boot. Questo metodo, che prende il nome di dual-boot o multi-boot, in realtà non fa che suddividere il disco fisso del PC in più partizioni sulle quali vengono installate altrettante istanze indipendenti di uno o più sistemi operativi; un apposito codice denominato boot loader si incarica, all'accensione del computer, di presentare all'utente un menu dal quale scegliere l'istanza desiderata per quella sessione di lavoro. È la logica che risiede alla base di programmi come Boot Camp, LILO e GRUB, per citare alcuni tra i boot loader più conosciuti. Un comodo escamotage che rende indubbiamente più versatile il singolo PC permettendo di lavorare ora con Mac, ora con Windows o Linux, ma che costringe a riavviare la macchina ogni volta che occorra passare da un OS all'altro.
Molto più pratico è invece riuscire a far coesistere contemporaneamente più sistemi operativi nel corso della medesima sessione, magari scambiando dati tra applicazioni residenti all'interno di OS differenti. A questo scopo circolano sul mercato numerosi emulatori, programmi che replicano al loro interno l'ambiente software (e a volte anche hardware) di un sistema operativo o di un intero computer. Pur avendo avuto molta fortuna nel ridare vita alle vecchie macchine a 8 e 16 bit degli anni Ottanta – come lo ZX Spectrum, il Commodore 64, le console per videogame o i giochi da bar – gli emulatori introducono un appesantimento tale da non permettere di lavorare con praticità e stabilità sulle attuali generazioni di sistemi operativi desktop.
La soluzione però esiste, e si basa su una tecnologia che risale alla fine degli anni Sessanta. È la tecnologia degli hypervisor e delle Virtual Machine.
Nel luglio 1966 IBM annunciava l'uscita del nuovo modello “67” della propria linea di mainframe System/360. Per la prima volta veniva resa disponibile alla clientela commerciale la possibilità di virtualizzare le risorse di un computer: era l'epoca dei calcolatori funzionanti in time sharing, e la capacità di associare a ogni utente una propria istanza di sistema operativo fisicamente separata dalle altre era un accorgimento che incrementava di un intero fattore il grado di robustezza e affidabilità della macchina. Per fare un esempio, un team di sviluppatori poteva finalmente condurre test ed esperimenti su un'unità S/360 senza preoccuparsi che un crash potesse influire sulle applicazioni degli altri utenti. La presenza di un particolare modulo software denominato hypervisor permetteva infatti di creare Virtual Machine, o VM, copie virtuali di ogni risorsa hardware – memoria, storage, capacità di I/O – in grado di far credere a ogni sistema operativo installato di esserne l'unico, esclusivo “proprietario” senza alcuna consapevolezza dell'esistenza di altri OS funzionanti in parallelo.
Con fortune alterne, la tecnologia degli hypervisor e delle Virtual Machine si è successivamente evoluta arrivando prima su costosi server UNIX di fascia alta come quelli di HP, Silicon Graphics e Sun Microsystems, e quindi sulle più economiche e diffuse architetture x86 che oggi dominano il segmento dei personal computer. L'arrivo sul mercato dei processori multi-core, con la loro potenza di calcolo spesso superiore a quanto necessario per il normale lavoro da parte dell'utente, ha permesso di assorbire il costo in termini di performance richiesto dagli hypervisor allargandone sempre più gli ambiti di applicazione. Tanto che nel 2005 i due principali fabbricanti di microprocessori x86, Intel e AMD, hanno annunciato apposite estensioni (note rispettivamente come Vanderpool e Pacifica) che hanno lo scopo di semplificare a livello hardware alcune parti dell'architettura x86 difficilmente virtualizzabili in software, migliorando così le prestazioni delle Virtual Machine.
Gli hypervisor per PC sono programmi installabili sul sistema operativo principale della macchina, detto “host”, che consentono di far girare al loro interno sistemi operativi differenti (o altre istanze del medesimo OS), detti “guest”. In altre parole, un utente Mac potrà far girare Ubuntu Linux come guest all'interno di una finestra Mac; un utente Windows potrà far girare due istanze di XP e una di FreeBSD in altrettante finestre di Vista; un utente Fedora Linux potrà avere una finestra con Windows XP e una seconda finestra con SuSE Linux e così via. Dal pannello di controllo dell'hypervisor sarà poi possibile determinare quali risorse hardware rendere visibili a ciascuna Virtual Machine, configurando ad esempio connessioni di rete e porte USB secondo necessità.
Rispetto al multi-boot il vantaggio di questa soluzione è evidente: poiché i sistemi operativi girano contemporaneamente all'interno di finestre dell'OS host, l'utente può passare da un guest all'altro esattamente come se si trattasse di normali applicazioni. In uno scenario di questo genere diviene finalmente possibile sperimentare e mescolare sistemi operativi differenti per ottenere la combinazione ottimale per il proprio lavoro. Un fotografo potrà ad esempio avvalersi di Linux come host approfittando delle sue caratteristiche di stabilità e sicurezza, e nel contempo lavorare con Photoshop (un applicativo ancora non disponibile per Linux) su un guest Windows XP. Oppure un Web designer potrà verificare in tempo reale la compatibilità dei propri siti su una moltitudine di sistemi operativi e browser senza bisogno di cambiare computer. La possibilità di spostare dati e file da una Virtual Machine all'altra e la presenza della funzione “snapshot”, che crea un'immagine dello stato di una VM in un dato momento consentendo di riutilizzarla in un secondo momento o di caricarla su un PC differente, sono altre due caratteristiche di grande utilità nel lavoro quotidiano.
Ma la virtualizzazione ha vantaggi in serbo anche per chi non è interessato a lavorare con più sistemi operativi. In questo caso si possono dedicare più istanze del medesimo OS ad attività differenti – applicazioni primarie, navigazione Internet, gioco, sviluppo, utilizzo da parte di famigliari – avendo la certezza che eventuali problemi di una VM non influiranno sul funzionamento delle altre, e che sarà sempre possibile ricreare un guest da zero (in pratica reinstallare il sistema operativo) senza impatti sugli altri. Una soluzione particolarmente attraente per gli utenti Windows che possono finalmente sentirsi liberi di installare e provare tutto il software che desiderano senza più preoccuparsi degli effetti sul registry o sulla crescita incontrollata di DLL e altri file di sistema.
Sul prossimo numero di Osservatorio Digitale vedremo un po' più da vicino quali sono i requisiti tecnici per utilizzare un hypervisor sul proprio PC e quali sono i prodotti che offrono il miglior mix di flessibilità, semplicità di installazione e facilità d'uso.
(fine prima parte)
Credits immagini:
1 - Courtesy of International Business Machines Corporation. Unauthorized use not permitted.
2 - Courtesy Innotek