DI RECENTE ACCOMAZZI...
CERCA
» Ricerca avanzata
MAILING LIST

Se vuoi iscriverti alla mailing list di Luca Accomazzi inserisci qui la tua mail:

Vuoi ricevere i messaggi immediatamente (50 invii / giorno) o in differita e in gruppo
(due invii / giorno)?

» Vuoi saperne di più?

Sotto la pelliccia di Snow Leopard

 

La notizia è stata riportata non soltanto dai siti web specializzati in Macintosh, ma un po' in tutto il mondo. Durante la conferenza sviluppatori 2008, Apple per bocca di Steve Jobs annuncia l'imminente versione 10.6 del suo sistema operativo, nome in codice Snow Leopard. Il comunicato stampa di Apple è stringato, e quelle poche righe di testo sono state incollate o parafrasate sino alla nausea dai cronisti. Nelle settimane successive all'evento, però, Apple ha quietamente rilasciato più informazioni tecniche a proposito della prossima versione del nostro sistema operativo. Oggi siamo in grado di approfondire l'annuncio.


Migliore gestione dello spazio disco

Mac OS X 10.5 per Macintosh deve molto allo sforzo che gli ingegneri Apple hanno dedicato ad iPhone. Il sistema di animazione offerto da Leopard, Core animation, era stato inizialmente concepito per dare vita all'interfaccia utente di iPhone e oggi viene allegramente usato da videogiochi e utility per Macintosh.
In Mac OS X 10.6 possiamo attenderci un ulteriore miglioria che discende direttamente dal lavoro svolto su iPhone. Il telefono di casa Apple naturalmente non può montare un disco rigido capiente come quello di un Mac e per questo motivo gli ingegneri hanno lavorato per rimpicciolire ai minimi termini le applicazioni che devono trovare spazio sul dispositivo. In Snow Leopard, dunque, i programmi applicativi (a cominciare da quelli prodotti da Apple stessa) occupano molto meno spazio: tra il 20% e l'80% in meno.
Francamente, gran parte di questo spazio è recuperabile anche in OS X 10.5 utilizzando un po' di buon senso. Si tratta innanzitutto di cancellare le localizzazioni dei programmi che non usiamo -- serve davvero a tutti noi la possibilità di visualizzare la barra dei menu di Anteprima in cinese?
Ulteriore risparmio si ottiene rimuovendo dalle applicazioni alcuni documenti -- di tipo NIB -- necessari durante lo sviluppo ma totalmente inutili quando il programma è in uso quotidiano. Il più importante esemplare di questa categoria si chiama designable.nib, ce n'è una copia per ogni lingua installata di ogni applicazione e può da solo occupare molti megabyte di spazio. Un esempio? La mia copia di Anteprima.app in Leopard 10.5 pesa 61,9 MB. Diventano 33,6 se rimuovo designable.nib e scendono a 12,3 MB se lascio soltanto le tre lingue che mi interessano. Qualche altro MB può venire risparmiato rimuovendo il codice PowerPC sui Mac basati su processori Intel o viceversa.
Snow Leopard aggiunge a queste ottimizzazioni di base diversi altri trucchi: per esempio, le icone dei programmi vengono registrate in formato TIFF compresso anziché TIFF non compresso. Rimuovendo le lingue inutilizzate dai programmi che possediamo si recupera spazio su disco. Snow Leopard lo farà automaticamente per noi.


QuickTime X

Anche per QuickTime X, la prossima versione del motore multimediale Apple, le novità sembrano concentrarsi sulla ottimizzazione dell'esistente e rimozione del surplus anziché sull'aggiunta di novità. La versione corrente di QuickTime, la 7.5, ha una lunga storia che nasce all'inizio degli anni Novanta: l'architettura nasce non semplicemente come un sistema capace di riprodurre filmati a schermo (come succede in Windows Media, RealOne o Flash Player) ma come un vero ambiente su cui gli sviluppatori possono basarsi per combinare audio, video, animazioni, sottotitoli -- e per sincronizzarli tra loro.
Negli anni, QuickTime ha accumulato ridondanze (ci sono più modi per ottenere lo stesso risultato) e sviluppato decine di metodi per comprimere e decomprimere video e audio. Quando si è trattato di realizzare iPhone, gli ingegneri di Apple hanno saggiamente mantenuto soltanto le capacità di riproduzione e si sono concentrati solamente sui metodi più moderni di compressione, come il giustamente famoso H.264. A questo punto hanno cominciato a lavorare per ottimizzare il codice che possedevano già, perché il processore di iPhone ovviamente è molto meno potente di quello usato nei Mac e ha bisogno di programmi più efficienti per riuscire a ottenere risultati comparabili.
Con QuickTime X, Apple decide di riportare sul Macintosh i buoni risultati ottenuti con iPhone. Gli efficientissimi decompressori riscritti per iPhone verranno dunque riportati su Mac, migliorandone le prestazioni.
I tecnici di Apple, trovandosi con le mani in pasta, ne approfitteranno per rimuovere dall'architettura QuickTime alcune procedure e metodi degli anni Novanta che non hanno più senso di esistere oggi. Di conseguenza potrà accadere che applicazioni multimediali con una storia ventennale alla spalle debbano venire parzialmente riscritti per risultare compatibili con Snow Leopard -- e se ciò non accadesse potrebbero smettere di funzionare.


Migliore parallelismo

Se possedete un Macintosh con processore Intel, oppure un G5, allora il vostro computer possiede almeno due unità di elaborazione, cioè è dotato di circuiteria che può lavorare su due (o più -- sino ad otto) applicazioni contemporaneamente. Mac OS X approfitta di questo stato di cose e distribuisce automaticamente il carico di lavoro sui processori disponibili. Per esempio, se teniamo aperte contemporaneamente Time Machine, Safari e Mail potremmo ritrovarci con un nucleo di elaborazione che lavora sul primo compito e il secondo nucleo che si divide tra gli altri. Sin qui, tutto bene. I problemi nascono quando noi stiamo sfruttando intensamente una singola applicazione: se stiamo applicando un filtro sulla intera libreria iPhoto, oppure quando iDVD sta comprimendo un video per stiparlo su un disco, può succedere che l'intero carico di lavoro finisca per pesare su un singolo processore e che altri sette restino fermi a girare i loro immaginari pollici. Per un programmatore infatti era difficilissimo scrivere una applicazione che riesca a sfruttare tutta la potenza di calcolo divisa sui vari processori. In Snow Leopard le cose diverranno più semplici se il programmatore adotterà lo Open Compute Language (in sigla, OpenCL) di Apple. Questo linguaggio, che non va confuso con il popolare sistema OpenGL per lavorare in grafica, è una estensione del popolarissimo linguaggio C, di gran lunga il più usato dai programmatori professionisti. Chi scrive codice in OpenCL può sostanzialmente dire al sistema operativo "ho bisogno di fare queste sedici cose, arrangiati un po' tu". Su un Mac Pro da otto nuclei di elaborazione, Snow Leopard si può preoccupare di assegnare due compiti a ogni nucleo. Su un portatile MacBook con due nuclei, ciascuna unità di elaborazione potrebbe vedersene assegnati otto. In realtà, le cose vanno anche meglio di così, perché OpenCL considera e sfrutta anche la scheda grafica. In effetti, le moderne schede che equipaggiano i nostri Mac sono dotate di grandi capacità di elaborazione. Non sono flessibili e generaliste come il processore centrale: si tratta di unità specializzate nel macinare numeri, processare tabelle, computare vettori, cioè quelle operazioni che permettono di mostrare velocemente punti colorati a video. Ma non è poco, e i programmi che debbono elaborare audio, video e foto trarrebbero un gran vantaggio dalla capacità di caricare la scheda video con parte del lavoro numerico da sbrigare. Qualche numero: un moderno MacBook Pro ha "soltanto" due nuclei Intel sulla processore centrale Core Duo, ma è dotato di ben 32 coprocessori grafici sulla scheda grafica Nvidia 9600. In altre parole, un programma che oggi gira su MacBook Pro e lavora su una traccia audio usando un singolo nucleo di elaborazione può teoricamente diventare 34 volte più veloce se lo sviluppatore lo ritocca per sfruttare OpenCL. Nella pratica, ci si aspetta una velocizzazione di due o tre volte.

OpenCL è basato su LLVM, un ottimizzatore di codice binario che prende un programma compilato e ne risistema le istruzioni in modo da facilitarne l'esecuzione al processore, introdotto in Leopard 10.5. Gli ingegneri di Apple l'hanno creato cercando di renderlo simile per sintassi e modo di uso alla summenzionata libreria OpenGL. La speranza è di renderne immediato e comprensibile l'uso per gli sviluppatori di videogiochi -- un genere di programmi che sembra non aver mai sufficiente potenza di elaborazione a disposizione.

L'architettura che permette a OpenCL di funzionare in modo efficace è stata chiamata da Apple Grand Central. L'idea di base è semplice. Una applicazione creata per Mac OS X versioni da 10.0 a 10.5 è una sequenza di istruzioni che vengono eseguite dalla prima sino all'ultima, linearmente. Immaginate per esempio iMovie impegnato nell'applicare una nuova colonna sonora, o un effetto visuale, al un filmato. La medesima applicazione Mac ottimizzata per Snow Leopard, come abbiamo detto, verrà parcellizzata dal suo sviluppatore in più compiti che possono venire eseguiti simultaneamente. Tornando al nostro esempio, applicare una dissolvenza in iMovie è un lavoro parcellizzabile, perché ogni fotogramma può venire elaborato come lavoro individuale.
Il programmatore usa istruzioni OpenCL per confezionare ogni compito in un pacchetto. I pacchetti da elaborare viaggiano dentro Grand Central e raggiungono uno smistatore, il Grand Central Dispatch, che inoltra ciascuno di essi al nucleo di elaborazione più adatto a completarlo. Se necessario, Grand Central Dispatch ricompila il compito che trova dentro al pacchetto usando un "compilatore just in time" -- una tecnologia popolarizzata quindi anni fa dal linguaggio Java. Per esempio, Grand Central potrebbe decidere che il pacchetto "aumenta il volume della canzone del 10%" è ottimale per il processore della scheda grafica, mentre conviene affidare il lavoro "impagina i sottotitoli" a un processore Intel.


Monitoraggio attività qui mostra un Mac con due nuclei occupato ad eseguire un picco di elaborazione sul primo (collinetta in verde) mentre il secondo è più libero.

When I'm 64

In Mac OS X 10.4 Apple permise per la prima volta agli sviluppatori di usare più di 2 GB di memoria in una applicazione. In termini tecnici: Tiger 10.4 fu il primo sistema operativo Apple a 64 bit. Con Leopard 10.5 Apple ha rilasciato un sistema operativo universale. In sostanza questo significa che, quando viene caricato da disco, Leopard decide se il particolare Mac su cui gira sia una macchina PowerPC o Intel, 32 bit o 64 bit, e si configura in modo ottimale. Noi prendiamo tutto questo per scontato, ma Windows Vista non è assolutamente in grado di funzionare in modo simile, e pare che anche la prossima versione di Windows attesa per il 2010 non ci riuscirà.
Snow Leopard fa un altro passo avanti sulla strada dell'elaborazione a 64 bit. Questa volta sarà disponibile a 64 bit anche il nucleo del sistema operativo, e inoltre tutte le applicazioni Apple saranno distribuite in versione universale, cioè sia 32 che 64 bit. Ne deriveranno due vantaggi. Primo, oggi in Leopard un Mac Pro con 4 GB di RAM finisce per caricare due copie della piattaforma Cocoa: una copia a 64 per le applicazioni che possono sfruttare quella tecnologia e una seconda copia a 32 bit per tutte le altre. Sotto Snow Leopard, il sistema sarà interamente a 64 bit. Secondo vantaggio: le prestazioni per il software ricompilato a 64 bit (per esempio le applicazioni fornite con il sistema operativo, come Mail o Anteprima) aumentano del 15% circa. Ancora una volta, vale la pena di fare un paragone con Windows Vista: la versione cosiddetta a 64 bit di quel sistema operativo in realtà internamente memorizza tutti i dati i 32 bit e solo gli indirizzi dei dati sono stipati in 64 bit. Questo compromesso permette a Microsoft di sfruttare tutta la memoria su PC che dispongono di 4 GB o più, senza costringere la casa di Bill Gates a mettere le mani nel codice di Windows. Apple, invece, ha già modernizzato il suo sistema e ora godrà dei vantaggi prestazionali che sono inevitabili quando si permette al processore di elaborare 64 bit di informazione alla volta anziché solo 32.


Tutto il resto

Altre novità previste per Snow Leopard sono l'autosostituzione di lettere in simboli (per esempio, (c) diventa ©); la auto-attivazione e disattivazione dei font (come avveniva in FontReserve sotto Mac OS 9); la gestione di nuovi gesti a più dita sul trackpad dei portatili compatibili (come MacBook Air); la nuova versione 1.4 della architettura di stampa CUPS; migliore compatibilità (in lettura e scrittura) con il sistema di archiviazione documenti ZFS; supporto completo per l'architettura Exchange di Microsoft; Safari 4 permetterà di registrare su disco una copia delle pagine web che funzionano come applicazioni, e di usarle quando siamo sconnessi da Internet (un esempio? Google Apps)


Snow Leopard: i dubbi

Snow Leopard girerà solo su processori Intel, e chi usa un PowerPC sarà tagliato fuori.
Può darsi, anzi è probabile, ma non è ancora detto. Le versioni pre-beta distribuite agli sviluppatori certamente girano solo su Intel, ma non è detta l'ultima parola. Che verrà  pronunciata l'otto giugno 2009 alla presentazione che terrà Phil Schiller.

Snow Leopard girerà solo su sistemi con processore a 64 bit
È assolutamente falso. Come Leopard stesso, anche OS X 10.6 sfrutta i 64 bit quando li trova ma lavora benone a 32 bit (su processori Intel più vecchi e su macchine con 3 GB o meno di memoria RAM). Ci saranno miglioramenti prestazionali sui sistemi a 64 bit -- circa il 15%.


Questo articolo fa parte di uno dei miei percorsi. Se vuoi saperne di più su questo argomento, visita il resto del percorso cliccando qui.