Google Chrome OS è il sistema operativo che Google lancerà nel 2010. Sarà un sistema operativo dedicato ai netbook e che utilizzerà il web come piattaforma applicativa: i programmi saranno utilizzati all'interno del browser Chrome incluso nel sistema. Dallo scorso novembre il codice sorgente dal quale Google costruirà il sistema operativo è stato rilasciato con licenza open source (la licenza principale è la BSD license) ed è stato chiamato Chromium OS (Chromium è il codice sorgente utilizzato per il browser Chrome).
Poiché non esistono ancora, ad oggi, versioni di Chrome OS, l'unico modo per provare il sistema è compilarlo dal codice sorgente di Chromium OS ed installarlo su uno dei computer compatibili oppure utilizzarlo all'interno di una macchina virtuale VMware o Virtualbox. Esistono già online diverse immagini del sistema operativo da utilizzare con uno di questi ultimi due software.
In questo articolo vedremo invece come compilare una versione funzionante di Chromium OS su Linux a partire dal codice sorgente open source. Alla fine del processo di installazione si potrà copiare l'immagine del sistema operativo su una chiavetta USB (almeno 4 GB) per eseguire attraverso di essa l'avvio del computer, oppure creare un'immagine per il Vmware player o per Virtualbox così da usare il nuovo sistema operativo di Google direttamente sul proprio desktop.
Per completare i passi, ricavati dalla guida ufficiale, abbiamo usato la versione server di Ubuntu 9.10 (Karmic Koala) in versione 32 bit, installata senza nessun pacchetto di programmi. La compilazione del sistema richiede dalle 2 alle 5 ore, in base all'hardware e alle procedure che si decide di utilizzare, ma è molto semplice grazie ad un gran numero di script messi a disposizione direttamente da Google. Nel nostro caso il sistema è stato compilato con successo al primo colpo. L'unica attenzione è di avere a disposizione almeno 13 GB di spazio sul disco rigido.
Tutti i comandi vanno eseguiti da un account ordinario, penseranno gli script a chiedere la password di root. Passiamo subito a verificare i prerequisiti.
Prerequisiti
Per prima cosa creiamo una directory in cui andremmo ad includere tutti i file che serviranno per la compilazione del sistema operativo. Consigliamo vivamente di creare la directory nella directory radice del proprio account (create un nuovo account nel caso non voleste toccare il vostro): gli script e i comandi che useremo faranno sempre riferimento a questo percorso. Ricordiamo che il percorso a partire dalla directory radice del proprio account si può sintetizzare utilizzando il carattere tilde (~) che si può utilizzare con la combinazione di tasti AltGr + ^ oppure con la combinazione ALT + 126 (sul tastierino numerico). Per tornare alla directory radice basta inoltre scrivere cd
e premere Invio.
# Torniamo alla directory radice del nostro account $ cd # Creiamo la directory per il codice sorgente del sistema operativo $ mkdir ossource
Installiamo a questo punto tutti i pacchetti che sono necessari alla compilazione del codice sorgente. Il processo è semplificato da uno script fornito da Google che si trova all'indirizzo http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh.
# Torniamo alla directory radice del nostro account (se non ci siamo già) $ cd # Scarichiamo lo script dai server di Google $ wget http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh # Eseguiamo lo script $ sh install-build-deps.sh
Lo script installerà alcuni pacchetti comuni di sviluppo (python, perl, gcc e così via) e diverse librerie. Inoltre chiederà la password di root e bloccherà due volte lo script. La prima per chiedere se installare i simboli di debug: se non avete esigenze specifiche rispondete no premendo il tasto n
sulla tastiera; la seconda per chiedere di installare Gold, un linker più veloce di quello standard (ld): rispondere sì premento il tasto y:
Dal pacchetto di Google mancano un paio di programmi che ci saranno indispensabili durante il processo. Installateli con il seguendo comando
$ sudo apt-get install git-core zip qemu
Sarà necessario anche installare i tool che ci consentiranno di scaricare il codice sorgente dagli archivi di Google. Il percorso di questi pacchetti deve essere incluso anche nel path di Linux in modo da poterli richiamare da qualsiasi punto del sistema operativo. Da notare una cosa: il cosiddetto apice inverso (`) richiesto da un paio di comandi successivi si ottiene con la combinazione di tasti AltGr + ' oppure con la combinazione ALT + 96 (sul tastierino numerico).
# Torniamo alla directory radice del nostro account (se non ci siamo già) $ cd # Installiamo il pacchetto dei tool di sviluppo $ svn co http://src.chromium.org/svn/trunk/tools/depot_tools # Aggiungiamo il percorso al path di Linux (attenzione: prima e dopo pwd ci sono gli apici inversi) $ export PATH=`pwd`/depot_tools:"$PATH" # Includiamo il path anche al login (attenzione: prima e dopo pwd ci sono gli apici inversi) $ echo PATH=`pwd`/depot_tools:$PATH >> $HOME/.profile
Il codice sorgente del sistema operativo
Preleviamo per prima cosa il codice sorgente di Chromium OS che andremo a compilare più avanti. Per farlo scaricheremo l'ultima versione dei pacchetti dai server di Google attraverso il software git. Il procedimento porterà via una trentina di minuti.
# Portiamoci nella directory per il codice sorgente creata poco sopra $ cd ~/ossource # Configuriamo git $ gclient config http://src.chromium.org/git/chromiumos.git # Scarichiamo il codice sorgente $ gclient sync
Per lavorare con più comodità, creiamo un link simbolico alla directory che contiene il codice sorgente di Chromium OS:
$ ln -s ~/ossource/chromiumos.git ~/chromiumos
La compilazione di Chromium OS avviene all'interno di un ambiente sviluppo esterno a quello che si utilizza tradizionalmente all'interno del sistema operativo. L'ambiente "chroot" deve contenere anche i pacchetti di compilazione specifici per l'ambiente, diversi da quelli che sono presenti nel sistema operativo. I due comandi che seguono mettono a punto il sistema proprio per questo scopo.
# Portiamoci nella directory degli script di Chromium OS $ cd ~/chromiumos/src/scripts # Eseguiamo lo script per scaricare i pacchetti per l'ambiente di sviluppo (20 minuti ca.) $ ./make_local_repo.sh # Generiamo l'ambiente chroot (10 minuti ca.) $ ./make_chroot.sh
Aggiunta del browser
Il browser, il vero cuore del sistema operativo di Google, è un componente esterno al sistema che deve essere aggiunto a parte. Lo si può fare in due modi: o compilandolo dal codice sorgente oppure includendo una versione già compilata messa a disposizione da Google.
Il primo metodo garantisce di avere a disposizione l'ultima versione stabile del browser ma è molto più lento (la compilazione porta via anche un paio d'ore) e non garantisce il corretto funzionamento del sistema: nelle nostre prove, sebbene il sistema e il browser fossero stati compilati senza errori, Chrome OS dopo il login non riusciva a caricare il browser. Il secondo metodo è molto più veloce, ma la versione del browser che si utilizzerà sarà quella compilata da Google, non quella più recente (la versione disponibile al momento di scrittura di questo articolo è del 23 novembre).
Primo metodo: compilazione da codice sorgente
Per scaricare il codice sorgente ci si porti con il browser alla pagina http://build.chromium.org/buildbot/archives/chromium_tarball.html e si scarichi la versione offerta dal link (nel nostro caso era chromium.r33673.tgz) includendola nella directory radice del nostro account. Poi si eseguano i seguenti comandi:
# Torniamo alla directory radice del nostro account (se non ci siamo già) $ cd # Scarichiamo il file da Internet (l'indirizzo va verificato) $ wget http://build.chromium.org/buildbot/archives/chromium.r33802.tgz # Estraiamo il contenuto del file (il nome va modificato a seconda del file scaricato) $ tar xzf chromium.r33802.tgz # Creiamo un link simbolico verso la sua directory sorgente $ ln -s ~/home/chrome-svn/tarball/chromium ~/chromium
È bene a questo punto aggiornare i pacchetti di Chromium per avere sempre a portata di mano quelli più stabili e adatti alle proprie necessità. Per fare ciò si deve entrare nella directory appena creata e configurare il software Git.
# Entriamo nella directory di Chromium $ cd ~/chromium/ # Sincronizziamo i pacchetti specificando che ci serviranno per compilare Chromium all'interno di Chromium OS $ gclient sync --deps="unix,chromeos" --force
È arrivato il momento di compilare Chromium, il browser che sarà incluso in Chromium OS. Il processo è molto lungo e potrà portare via anche un paio d'ore. Al termine la compilazione produrrà un file zip che verrà automaticamente spostato nella directory ~/chromiumos/src/build/x86/local_assets. Se non si desidera attendere, è sempre possibile scaricare Chromium con il secondo metodo descritto poco più avanti.
# Entriamo nella directory degli script di Chromium OS $ cd ~/chromiumos/src/scripts # Lanciamo la compilazione del browser $ ./build_chrome.sh --chrome_dir ~/chromium
Secondo metodo: aggiunta software già compilato
Il secondo metodo è molto più semplice e veloce. Basta aprire la directory online all'indirizzo http://build.chromium.org/buildbot/archives/ e scaricare l'ultima versione in formato zip di Chromium per il Chromium OS. Nel nostro caso il file era chiamato chromium-chromiumos-r32516.zip. Questo file andrà poi spostato nella directory ~/chromiumos/src/build/x86/local_assets (che dovrà essere eventualmente creata) e rinominato in chrome-chromeos.zip.
# Scarichiamo il file da Internet (cambiare il nome se necessario) $ wget http://build.chromium.org/buildbot/archives/chromium-chromiumos-r32516.zip # Crea directory ~/chromiumos/src/build/x86/local_assets/ $ mkdir -p ~/chromiumos/src/build/x86/local_assets/ # Spostiamolo nella directory di destinazione rinominandolo $ mv chromium-chromiumos-r32516.zip ~/chromiumos/src/build/x86/local_assets/chrome-chromeos.zip
Avviare la compilazione
Non ci resta ora che avviare la compilazione del sistema operativo. Il procedimento si avvia all'interno dell'ambiente chroot attraverso uno file presente nella directory degli script e porterà via circa un'ora e venti minuti. Tra le opzioni che è possibile impostare prima di avviare la compilazione c'è quella che consente di creare un account locale che consente di eseguire il login anche se non si è in presenza di una connessione ad Internet e quella che consente di creare la password personalizzata dell'account di test (che risponde al nome di chromeos), altrimenti impostata dal sistema.
# Entriamo nella directory degli script $ cd ~/chromiumos/src/scripts # Entriamo nell'ambiente di compilazione $ ./enter_chroot.sh # Abilitiamo l'account locale (opzionale: sostituire a USERNAME il nome account) $ ( cd ../platform/pam_google && ./enable_localaccount.sh USERNAME ) # Modifichiamo la password di account di test (opzionale, va specificata la password quando richiesto) $ ./set_shared_user_password.sh # Avviamo tutti i passaggi di compilazione $ ./build_all.sh # Al termine usciamo dall'ambiente chroot $ exit
Distribuzione del sistema
Una volta compilato, il sistema può essere distribuito in diversi modi. I due più semplici sono attraverso una chiavetta USB per eseguire il boot del computer da questo dispositivo oppure attraverso un'immagine per software di virtualizzazione come VMWare o VirtualBox.
Copia su chiavetta USB
Eseguire le seguenti istruzioni
# Usciamo, se vi siamo ancora, dall'ambiente di sviluppo (il prompt mostra la scritta (chroot)) $ exit # Verifichiamo il nome dispositivo USB $ sudo fdisk -l # Copiamo l'immagine sul dispositivo USB $ ./image_to_usb.sh
Lo script copierà l'ultima immagine disponibile nella directory ~/chromiumos/src/build/images/ e la copierà sulla chiavetta USB che, per impostazione predefinita, risiede al percordo /dev/sdb. Se si volesse cambiare l'immagine da copiare o il percorso del dispositivo USB si dovrà usare la seguente sintassi modificando i valori SUBDIR con la directory in cui è conservata l'immagine e USBKEYDEV con il percorso del dispositivo.
$ ./image_to_usb.sh --from=~/chromiumos/src/build/images/SUBDIR --to=/dev/USBKEYDEV
Dopo aver copiato l'immagine sulla chiavetta USB sarà possibile avviare da essa il netbook, eventualmente modificando dal Bios l'ordine di boot del sistema.
Copia su immagine VMware
Eseguire le seguenti istruzioni
# Usciamo, se vi siamo ancora, dall'ambiente di sviluppo (il prompt mostra la scritta (chroot)) $ exit # Copiamo l'immagine $ ./image_to_vmware.sh
Anche in questo caso si possono personalizzare sia l'immagine da copiare (predefinita: l'ultima disponibile) sia il nome del file di destinazione (predefinito: ide.vmdk) usando la seguente sintassi e sostituendo i valori personalizzati a SUBDIR e FILENAME.
$ ./image_to_vmware.sh --from=~/chromiumos/src/build/images/SUBDIR --to=~/chromiumos/src/build/images/SUBDIR/FILENAME.vmdk
L'immagine così creata potrà essere utilizzata su VMWare o su Virtualbox. In questo secondo caso, quello consigliato, è necessario creare una macchina Linux e aggiungervi come hard disk il file .vmdk appena creato.
Cancellazione dell'ambiente di sviluppo
Per cancellare l'ambiente di sviluppo appena creato, e liberare spazio su disco, va eseguito il comando ./make_chroot.sh --delete da eseguire dalla directory degli script:
# Usciamo, se vi siamo ancora, dall'ambiente di sviluppo (il prompt mostra la scritta (chroot)) $ exit # Entriamo nella directory degli script $ cd ~/chromiumos/src/scripts # Cancelliamo l'ambiente di sviluppo $ ./make_chroot.sh --delete