Capitolo 1
Dottor Unix e mister Darwin
Lanciamo il browser e apriamo la pagina del sito Apple all’indirizzo
http://www.apple.com/it/macosx/what-is-macosx/core-foundation.
html (oppure l’equivalente http://xrl.us/bgxk4z per non dover copia-
re un indirizzo troppo lungo).
Apple magnifica le fondamenta Unix di solidità comprovata e contemporaneamente tecnologie evolute, capaci di scatenare tutta la potenza di
Mac.
Solido ed evoluto formano davvero un’accoppiata promettente, che
fa pensare a un grande lavoro di programmazione e progettazione; e
questo lavoro c’è stato, ma in termini diversi da quelli che viene più
immediato pensare.
Il sistema operativo con cui Apple ha fatto ingresso nel terzo millennio, infatti, contiene tecnologie modernissime, frutto di gran lavoro
anche molto recente da parte degli sviluppatori di software di Cupertino (cittadina californiana sede del quartier generale di Apple). Ma le
fondamenta Unix, quelle di solidità comprovata, risalgono a non meno
di quaranta anni fa.
Apple, una delle società più longeve nella storia della moderna informatica, è nata il primo aprile del 1976 e come tale è (non di poco) più
giovane di Unix.
Anche se tutto questo riguarda solo relativamente l’uso concreto del
Terminale, è importante capire come si è arrivati a Mac OS X e il ruolo
che in esso gioca Unix, proprio perché è quest’ultimo che si va direttamente a solleticare dal Terminale in questione. E il vero capolavoro
di Apple sta nell’avere saputo fondere un pezzo di storia informatica
talmente vecchio da rasentare l’archeologia, con software modernissi-
Pocket Cofano Libr.indb 1
22-04-2010 13:17:41
2
Capitolo 1
mo e con un’interfaccia grafica per la quale l’azienda è riconosciuta al
vertice mondiale della categoria.
Salterà fuori qualche sorpresa e si vedrà che, in effetti, Apple ha giocato il ruolo del dottor Frankenstein nel creare Mac OS X; un insieme
composito di tecnologie. E l’utente medio, di quella parte fondamentale che è Unix, sa poco o nulla.
Questo libro serve a mettere in chiaro le cose: prima di tutto getta luce
su… come dire… l’albero genealogico di Mac OS X.
I nostri primi quarant’anni
Se consideriamo i primissimi sforzi che sono culminati con la nascita di Unix presso i laboratori dell’azienda telefonica americana AT&T
(http://www.bell-labs.com) e oggi di Alcatel-Lucent, rischiamo le celebrazioni del cinquantennale, perché risale ai primi anni sessanta l’esigenza di un sistema operativo efficiente nel fornire servizi di timesharing, la cui risposta ha finito per essere, più tardi, proprio Unix.
Chi ha time non aspetti sharing
In inglese, time significa tempo e sharing significa condivisione. Quaranta e più anni fa, il tempo da condividere era il tempo… macchina. I
computer erano pochi, costosissimi, grossi come monolocali e accessibili solamente a pochi specialisti in camice bianco.
Quella piccola fetta di popolazione che poteva approfittarne (studenti universitari, ricercatori, tecnici aziendali, programmatori, ingegneri)
era tuttavia sempre più numerosa. Per ogni computer pronto a offrire i
propri servigi, decine di potenziali utilizzatori bussavano alla sua porta,
seduti davanti alla tastiera di un cosiddetto terminale stupido: un computer abbastanza simile a quelli attuali, a parte lo schermo a tubo catodico, visto che i cristalli liquidi dovevano ancora arrivare. Niente mouse
(Douglas Engelbart era solo agli inizi dei suoi rivoluzionari esperimenti di interfaccia, nel segreto del Palo Alto Research Center di Xerox) e
niente disco rigido; il terminale era stupido proprio perché conteneva
unicamente la memoria RAM sufficiente per dialogare con il computer
centrale; niente altro.
Tanti utilizzatori per ogni computer, dunque. Per forza di cose occorreva un sistema operativo capace di distribuire in modo efficace ed efficiente le scarse risorse di calcolo tra tutti gli utenti collegati contempo-
Pocket Cofano Libr.indb 2
22-04-2010 13:17:41
Dottor Unix e mister Darwin
3
raneamente. Ciascun utilizzatore interagiva con il computer centrale
unicamente tramite la tastiera e digitando comandi testuali. Niente
menu a tendina, niente pulsanti su cui fare clic. Tutto era digitare un
comando e premere Invio, per aspettare la risposta. La tecnica del time
sharing è nata proprio per fornire risposte corrette e veloci a tutti gli
utenti collegati simultaneamente a un unico computer; Unix è nato
proprio per risolvere questo problema. Qualcuno si starà già interrogando sulla natura del Terminale di Mac OS X, ma prima di arrivarci c’è
ancora qualcosa da raccontare.
Erano in Multics, ne rimase Unix
Altra caratteristica di quei tempi pionieristici era il fatto che non solo
ogni computer aveva il proprio sistema operativo, ma che sistemi operativi diversi non erano in grado di parlarsi. Niente protocolli comuni di
rete; Internet era un sogno lontano. Peggio ancora: spesso nemmeno i
computer dello stesso produttore erano in grado di dialogare.
Per arginare la Babele informatica, alcuni ricercatori dei Bell Labs e di
General Electric si unirono nel 1965 a un’iniziativa del Massachusetts
Institute of Technology, il prestigioso MIT, chiamata Multics per Multiplexed Information and Computing Service: una risposta davvero efficace al problema del time sharing.
Fin troppo ambizioso come obiettivo per le possibilità del momento;
il lavoro del folto gruppo non portava risultati. A un certo punto i Bell
Labs decisero di ritirare il proprio appoggio al progetto e, come accade
sovente nella storia dell’informatica moderna, a segnare il progresso
furono i ribelli. In questo caso Ken Thompson, Dennis Ritchie, Doug
McIlroy e J. F. Ossanna, del Bell Labs Computing Science Research Center di Murray Hill, nello Stato del New Jersey. L’istituzione rinunciava.
Loro no.
La legge del più comodo
Multics, da un certo punto di vista, funzionava. Per i quattro dei Bell
Labs era una gran comodità, che permetteva di collaborare con profitto. Purtroppo, per quanto efficace, era inefficiente e troppo costoso. Il
problema di Thompson e compagni divenne nel tempo riuscire a garantire la sopravvivenza del loro conveniente ecosistema.
Arriviamo così al 1969, in cui i nostri iniziarono a perorare l’acquisto di
un nuovo computer di scala media per cui loro stessi avrebbero scritto
Pocket Cofano Libr.indb 3
22-04-2010 13:17:42
4
Capitolo 1
il sistema operativo (sì, erano proprio altri tempi). Le varie proposte
non vennero mai proprio respinte, ma nemmeno palesemente accettate. Nel tentativo di ottenere un’approvazione, i quattro escogitavano
soluzioni sempre più creative, con complicati schemi di leasing, cambi
merce, affitti, pagamenti differiti e quant’altro, ma nulla pareva smuovere l’ufficio acquisti.
Diventava sempre più chiaro che il centro non voleva assumersi la responsabilità della spesa (ai tempi ingente) di un nuovo computer, né
rischiare di veder nascere un secondo progetto Multics senza costrutto e che il loro Multics, così comodo, non sarebbe durato. Serviva una
buona idea. O un passo in avanti decisivo.
Fu Thompson a prendere la decisione: scrivere comunque un nuovo sistema operativo e creare un ambiente che favorisse il lavoro successivo.
Lui, Ritchie e Rudd Canaday cominciarono nella primavera del 1969 a
discutere delle caratteristiche del nuovo sistema. Prendevano appunti
su decine e decine di fogli, ogni giorno. Giunta la sera, Canaday riordinava gli appunti e chiamava il servizio di dettatura in dotazione ai
laboratori Bell (altri tempi, dicevamo). Leggeva gli appunti e il giorno
dopo arrivava il dattiloscritto.
I documenti risultanti erano pieni di strafalcioni tecnici inseriti dalle
volonterose, ma poco preparate, dattilografe e in particolare gli acronimi venivano quasi scientificamente frullati fino a diventare misteri
fonetici. Ma vennero ugualmente distribuiti ai ricercatori coinvolti e diventarono presto la documentazione di lavoro ufficiale per un nuovo
progetto.
Con la scusa di giocare
Nel proprio tempo libero, Ken Thompson aveva realizzato Space Travel, un videogioco a tema spaziale che simulava il moto dei pianeti nel
sistema solare e permetteva di navigare nello spazio, nonché di posarsi
sulla superficie della Luna e dei pianeti.
Passatempo che non creava problemi, non fosse stato per il costo, esoso, del tempo macchina del computer GE 635 che lo ospitava.
Alla ricerca di soluzioni, Thompson scoprì un computer PDP-7, fabbricato da Digital Equipment (poi assorbita da Compaq, in seguito acquisita da Hewlett-Packard), pochissimo usato e molto conveniente. Una
casa ideale per Space Travel, che tuttavia andava riscritto. Ricordate? I
computer, negli anni sessanta, non si parlavano.
Pocket Cofano Libr.indb 4
22-04-2010 13:17:42
Dottor Unix e mister Darwin
5
La circostanza si rivelò ideale per acquisire padronanza del sistema di
programmazione del PDP-7 e la riscrittura di Space Travel, oltre ad assicurare altre ore di relax per Thompson, diede vita a un’ampia base di
software scritto e di competenze.
Le nozioni apprese e l’ampio tempo macchina di cui disponevano portarono a una decisione ovvia: realizzare il loro nuovo sistema operativo
proprio sul PDP-7. Senza quel videogioco chissà come sarebbe andata.
La vera nascita di Unix
Nell’estate del 1969, le tante chiacchierate iniziarono a concretizzarsi grazie al lavoro di Thompson sul “suo” PDP-7. A ciascun elemento
fondamentale dell’insieme (sistema operativo, shell, editor, assembler
e così via) venne dedicata una settimana di sviluppo. Al lavoro di routine si aggiungevano anche varie innovazioni (per l’epoca), come l’idea
dei processi, piccoli programmi in esecuzione contemporanea visibile
e invisibile all’utente. Altra innovazione fu la creazione di un piccolo
insieme di programmi destinati all’utente, che servivano a cancellare,
copiare, stampare, modificare i documenti. Arrivò anche un programma in grado di interpretare la sintassi dei comandi per passarla al computer centrale: appunto, la shell.
Terminato il lavoro… venne riscritto tutto da capo, in forma sempre
più simile a un sistema operativo completo e compiuto. Soprattutto,
anche in questa situazione quasi inedita per l’epoca, l’insieme degli
strumenti sviluppati permetteva al sistema di mantenersi, ossia era
possibile fare manutenzione e creare nuovi strumenti senza bisogno
di apporti esterni; il sistema operativo bastava a se stesso.
Mancava solo il nome. Fu in pieno 1970 che Brian Kernighan suggerì
Unix: un nome che faceva professione di modestia nei confronti del
Multics da cui tutto era partito e che, tuttavia, lasciava trasparire anche
una certa irriverenza nei confronti del vecchio genitore. Unix come uno
al posto di molti; sì, ma anche come unico.
Lavorare sul serio
Anche il PDP-7 iniziava a divenire obsoleto, ma stavolta Thompson e
compagni avevano un asso nella manica, sotto forma di un sistema
operativo pronto da usare. Doug McIlroy e Lee McMahon, due responsabili di reparto, videro i vantaggi potenziali della nuova creatura e sostennero l’opportunità di spendere 65.000 dollari per l’acquisto di un
Pocket Cofano Libr.indb 5
22-04-2010 13:17:42
6
Capitolo 1
nuovo PDP-11, che arrivò a fine estate 1970. Ma era talmente sovraccarico di lavoro che non c’era spazio sufficiente sui dischi; così il trasferimento di Unix sulla nuova macchina non ebbe inizio fino a dicembre.
L’apparente intoppo giocò solo a favore di Unix: nel frattempo, tutti
ebbero modo di rendersi conto della sua efficacia. Arrivò persino un
cliente, sebbene interno: il reparto brevetti dei Bell Labs. Il reparto era
alla ricerca di un sistema che semplificasse la stesura delle domande
di brevetto. Il Computing Science Research mise Unix a disposizione
di tre dattilografi che passavano la giornata a scrivere domande, utilizzando però gli strumenti di elaborazione del testo forniti dall’ambiente Unix.
Finì che il reparto brevetti adottò Unix. Fu solo il primo di molti altri
gruppi interni ai Bell Labs. Gli sforzi di Thompson e compagni avevano
avuto successo e il gruppo guadagnò abbastanza credibilità da farsi
accettare la proposta di acquisto di un computer ancora più potente,
uno dei primissimi PDP 11/45 in uscita dalla fabbrica.
I quattro ricercatori, partiti dal desiderio di non perdere la comodità
del loro sistema di lavoro, avevano piantato le radici di un albero destinato a portare frutti, saporiti e in gran numero. Non a caso l’analogia
è quella di un albero, perché il prossimo capitolo della storia di Unix
parla proprio di rami… e anche di qualche bastonata.
La diaspora di Unix
Le buone idee hanno la caratteristica di non poter essere controllate:
se sono buone, si diffondono. Tra il 1976 e il 1977 Ken Thompson prese
un riposo sabbatico di sei mesi e lo passò a insegnare come visiting professor (docente di passaggio) all’università di California Berkeley (UCB).
Ovviamente insegnò Unix, che intanto continuava a sviluppare come
quella che sarebbe diventata la sesta versione del sistema operativo.
Unix piacque moltissimo e la comunità accademica avviò il passaparola sulle virtù del nuovo sistema. Alla fine del periodo sabbatico, Thompson tornò ai Bell Labs, ma gli studenti e i docenti di Berkeley continuarono a lavorare su Unix, fino a creare una propria versione, detta
Berkeley Software Distribution o BSD versione 4.2. Ricordate questa
sigla, ci riguarderà da vicino.
Intanto Unix mise il naso anche fuori da laboratori e atenei. La UCB
aveva avviato un Computer System Research Group che ottenne un
finanziamento dalla DARPA, destinato a sostenere la creazione di una
Pocket Cofano Libr.indb 6
22-04-2010 13:17:42
Dottor Unix e mister Darwin
7
versione di Unix destinata alle aziende che lavoravano per DARPA (Defense Advanced Research Projects Agency, agenzia per i progetti di ricerca avanzata destinati alla Difesa americana). Come ricorda Dennis
Ritchie, le licenze Unix arrivarono dai Bell Labs, ma il software veniva
da Berkeley, dove una comunità attivissima gettava le fondamenta del
protocollo TCP/IP, la base delle comunicazioni su Internet.
Vendete e moltiplicatevi
Le aziende si accorsero presto che i nuovi programmatori arrivavano
freschi di college parlando delle meraviglie di questo Unix. Nacque un
mercato per programmi commerciali funzionanti su Unix; AT&T aprì
una branca aziendale dedicata all’informatica per vendere, tra l’altro, il
proprio Unix System V; nascevano versioni sempre diverse di Unix per
i clienti aziendali e istituzionali più disparati; soprattutto, la vendita di
computer Unix diventò lucrosa per varie aziende, come Sun Microsystems (oggi di proprietà di Oracle), SGI, Hewlett-Packard, NCR e IBM.
Capite che cosa stava succedendo?
Di versione in diversione
Una buona idea si diffonde, ma può sfuggire al controllo degli autori.
In ogni college qualificato, in ogni azienda motivata, in ogni laboratorio
attrezzato, chiunque potesse si dedicava a Unix, migliorandolo, espandendolo, scrivendo software, revisionando codice, lavorando per ridefinire i limiti tecnici di utilizzo. Tra il 1975 e il 1989 si contarono non
meno di otto versioni diverse di Unix, accademiche e commerciali, di
AT&T o di Berkeley. Per contare solo quelle importanti; le diramazioni
minori del codice erano innumerevoli.
Thompson e compagni avevano effettivamente creato un sistema
operativo che bastava a se stesso. Fin troppo, tanto che si moltiplicava
selvaggiamente, senza alcun organismo che fosse in grado di controllarne la crescita.
Le guerre di Unix
AT&T decise di normalizzare la situazione e intrecciò un’alleanza con
Sun Microsystems allo scopo di creare, si perdoni il bisticcio, un unico
Unix che riunisse le migliori caratteristiche delle versioni che sbocciavano ovunque.
Pocket Cofano Libr.indb 7
22-04-2010 13:17:42
8
Capitolo 1
Metà del mercato plaudì; l’altra si sentì minacciata dal rischio che l’alleanza finisse per prendere il controllo del “proprio” Unix. I dissenzienti
crearono nel 1988 Open Systems Foundation (OSF), con l’intento di
definire uno Unix “aperto”, che fosse adottabile da una comunità la più
vasta possibile, cui aderirono numerose aziende che avevano sviluppato autonomamente varianti e migliorie a Unix.
AT&T rispose coalizzando le aziende fedeli e formando Unix International, esattamente con lo stesso obiettivo, però partendo dalla propria
visione di Unix.
Ebbe inizio una competizione aspra e con vari colpi bassi per il predominio nel mondo Unix. Da un certo punto di vista si poteva essere
soddisfatti di uno sviluppo positivo: se non altro, le alternative di Unix
ora erano solamente due. Da un altro punto di vista, però, due versioni
erano comunque troppe per una crescita armoniosa e condivisa del
sistema.
Nel 1991 AT&T vendette azioni a undici altre aziende e, nel corso
dell’operazione, rese indipendenti le proprie iniziative commerciali
Unix. L’anno dopo Novell si offrì di acquistarle e l’affare andò in porto
nel 1993.
Nel frattempo il Bell Labs Computing Science Research Center aveva
continuato lo sviluppo di Unix, per arrivare alla versione 10.
Novell cedette nel 1994 il marchio Unix a un nuovo consorzio, X/Open
Company, oggi denominato The Open Group, e il codice sorgente e il
prodotto risultante Unixware a Santa Cruz Operation, che si tenne il
codice, ma cedette a The Open Group il marchio Unixware.
Nessuno ha vinto, ma almeno si è passati da grandi guerre a piccole
scaramucce.
Dove andare oggi
Per sapere che cosa sia Unix oggi, bene o male, esiste un indirizzo univoco: http://www.unix.org, la sede di The Open Group.
Lì si può studiare la Single Unix Specification e analizzare la certificazione Unix 03, quella che Apple tiene a mostrare sul sito di Mac OS X
per evidenziare come il proprio sistema abbia tutti i crismi per potersi
dire fondato su Unix.
Se il dipanarsi pluridecennale della vicenda di Unix sembra complicato, beh, qui si è semplificato allo spasimo. Per capire appieno che
Pocket Cofano Libr.indb 8
22-04-2010 13:17:42
Dottor Unix e mister Darwin
9
cosa sia stato lo sviluppo di Unix bisogna aprire il browser alla pagina
http://www.levenez.com/unix/ e passare il mouse sulla striscia bianca
che compare poco dopo l’inizio della pagina, sotto la scritta Unix Timeline. Il vertiginoso grafico che appare può essere scaricato in formato
PDF per essere esaminato nei dettagli e rendersi conto di quanto sforzo di programmazione il mondo abbia messo dentro Unix in questi
quarant’anni. Nella stessa pagina c’è il link a un diagramma analogo,
che rappresenta la storia di Windows; ci perdoni l’autore, che ha fatto
del proprio meglio, ma confrontato con quello di Unix fa al massimo
tenerezza. Chi è curioso di sapere come si possa realizzare un grafico
del genere, troverà tutte le risposte che desidera su http://www.levenez.com/gen/build.html).
Ora però è tempo di riprendere con più rigore la strada che ci porta
verso Mac OS X e il Terminale. Essa ha origine da una delle diramazioni
della Berkeley Software Distribution, chiamata FreeBSD, e porta a Mac
OS X passando per un fallimento di Steve Jobs, cofondatore e attuale
amministratore delegato di Apple. Le sorprese non sono ancora finite.
Da FreeBSD a Darwin (via NeXT)
Mac OS X è una ricetta composta da una quantità insospettabile di
ingredienti. Il suo “gusto” Unix è dovuto a FreeBSD, nato ufficialmente il
primo novembre del 1993 grazie al coordinamento di Jordan Hubbard,
Nate Williams e Rodney W. Grimes e… all’invenzione del nome a opera
di David Greenman. FreeBSD nasce da un ramo di una ennesima versione di Unix, detta 386SD, innestata sopra lo Unix coltivato all’università di California Berkeley (4.3BSD-Lite o Net/2) e concimato con ulteriore codice proveniente dalla Free Software Foundation (http://www.
fsf.org) fondata nel 1985 per sostenere la causa del software libero.
Dopo alcune revisioni, dovute alla necessità, neanche a dirlo, di evitare problemi di copyright, FreeBSD si confermò come software libero a
partire dalla versione 2.0 del gennaio del 1995.
Figura 1.1 Il marchio rappresentativo di FreeBSD.
La figura stilizzata è quella della testa di un diavoletto.
Pocket Cofano Libr.indb 9
22-04-2010 13:17:42
10
Capitolo 1
Oggi FreeBSD è uno Unix potente ed evoluto, per quanto riservato a
persone esperte. Può essere scaricato e usato gratuitamente dal sito
http://www.freebsd.org. Più rilevante per la nostra narrazione è che in
FreeBSD 2.0 fosse presente la revisione di un sistema di gestione della memoria virtuale realizzata presso l’università Carnegie Mellon, un
ateneo da cui arriva una tecnologia (e una persona) che sarà cruciale
per Apple. E prima ancora per…
NeXT: il futuro passato di Steve Jobs
Cofondatore di Apple, Steve Jobs assunse John Sculley nei primi anni
ottanta perché alla giovane Apple serviva un amministratore delegato di professione e Sculley, come vicepresidente della immensa Pepsi
e favorito per la successione alla guida suprema (il suocero), era sulla carta una delle figure migliori. Sculley arrivò e decise che la mossa
decisiva da compiere per risanare Apple fosse licenziare Jobs. Che il
13 settembre 1985 venne costretto a lasciare l’azienda dal consiglio di
amministrazione, schieratosi con Sculley nella resa dei conti.
Jobs decise di ricominciare, assieme a vari transfughi di Apple, fondando NeXT, azienda che avrebbe realizzato stazioni di lavoro per gli ambiti didattici superiori.
I prodotti hardware di NeXT, NeXTcube e NeXTstation, hanno segnato
la storia dell’informatica. Per esempio, Tim Berners-Lee creò, nel 1991,
il primo server web e il primo browser su una stazione NeXT. John Carmack iniziò proprio su NeXT la rivoluzione dei videogiochi che portò agli sparatutto in prima persona, first-person shooter, a partire da
Wolfenstein 3D e Doom. Questi sistemi furono però un sostanziale fallimento dal punto di vista commerciale: in dieci anni di attività, l’azienda
ha venduto un totale di 50.000 computer; cifra che la Apple attuale
totalizza in circa due giorni.
Il software ebbe sorte migliore. Profondamente innovativo nel suo utilizzo della programmazione a oggetti, il sistema operativo NeXTSTEP e
l’ambiente di sviluppo software OpenStep sopravvissero alla dismissione dell’attività hardware.
Tra i talenti a disposizione di Jobs in NeXT figurava Avidas “Avie” Tevanian, programmatore formatosi all’università Carnegie Mellon, dove
aveva lavorato alla realizzazione di un kernel (nucleo fondamentale di
sistema operativo) chiamato Mach. Come in certi gialli d’autore, abbiamo finalmente collocato tutti i pezzi del puzzle, in preparazione del
gran finale.
Pocket Cofano Libr.indb 10
22-04-2010 13:17:42
Dottor Unix e mister Darwin
11
La seconda venuta
Nel 1996, Apple, in grave crisi strategica e alle prese con un impossibile
rinnovamento radicale del sistema operativo Mac OS, decise di ripartire da un’acquisizione importante, su cui basare un sistema operativo
con tutte le caratteristiche necessarie per affrontare il XXI secolo.
La storia di Apple chiuse il cerchio, nel momento in cui le alternative
considerate erano proprio NeXT di Steve Jobs e Be, l’azienda fondata
da Jean-Louis Gassée, enfant prodige francese che aveva scalato la gerarchia di Apple proprio mentre Jobs cadeva in disgrazia e a sua volta
forzato ad andarsene a seguito del fiasco commerciale di Macintosh
Portable.
Al termine di un confronto che farebbe la felicità di uno sceneggiatore
cinematografico, il 20 dicembre 1996 Apple scelse ufficialmente NeXT
e pagò 429 milioni di dollari agli investitori iniziali, più 1,5 milioni in
azioni a Steve Jobs. Il quale, prima come consulente e poi come amministratore delegato, pilotò la rinascita di Apple, che continua ancora
oggi.
Nello scegliere NeXT e Jobs, Apple ha fatto un affare straordinario. Sotto la nuova guida del proprio fondatore, l’azienda è passata da una capitalizzazione di mercato di 10 miliardi di dollari del 1996 agli odierni
200 miliardi di dollari. Ma ci interessa di più il lato software, ora che abbiamo allineato tutti i componenti che formano il moderno Mac OS X.
Mescolare e servire in guscio
Per costruire il suo nuovo sistema operativo, Apple aveva a disposizione la base di codice esistente di Mac OS, il kernel Mach sviluppato
da Tevanian, il sistema operativo e l’ambiente di programmazione di
NeXT e la libertà di usare parti a piacere di un sistema operativo libero
come FreeBSD.
Da una sapiente unione di queste componenti, integrate con tecnologie aggiuntive (come il linguaggio di programmazione Java e il
software di rappresentazione grafica OpenGL), nasce Mac OS X. Dove
si può giocare all’infinito a tracciare alberi genealogici: per esempio,
l’attuale Apple Store (http://store.apple.com/it oppure, per i nostri
lettori svizzeri, http://store.apple.com/ch-fr) usa come motore WebObjects, potentissimo database sviluppato da NeXT; l’architettura Cocoa utilizzata nell’ambiente di programmazione Xcode, incluso in tutti
i Mac, discende da OpenStep; il linguaggio di scripting AppleScript è
Pocket Cofano Libr.indb 11
22-04-2010 13:17:42
12
Capitolo 1
Figura 1.2 Gli strati di Mac OS X: sopra le fondamenta open source di Darwin,
che unisce FreeBSD e kernel Mach, poggiano le tecnologie create da Apple
(QuickTime) e da NeXT (Cocoa), più il meglio del software aperto (OpenGL e Java).
nato nel 1990 con System 7 di Apple e così via. Il Terminale? Fa parte di
qualsiasi sistema Unix che si rispetti. Agli inizi della nostra narrazione
costituiva l’unico modo per colloquiare con il computer. Oggi l’odierna
interfaccia grafica si fa preferire da praticamente chiunque, ma la possibilità di impartire comandi testuali è (lo si vedrà nel resto di questo
libro) preziosissima e non va trascurata.
L’interfaccia spartana e a tratti bizzarra utilizzata a questo scopo si chiama shell (guscio) ed è la stessa che troviamo, non imprevedibilmente,
in FreeBSD e altri Unix. La sua lunga storia, che abbiamo sintetizzato
all’estremo nelle pagine precedenti, aiuta a capirne meglio la funzione
e lo spirito; è per questo che l’abbiamo raccontata.
Ha una shell anche Windows, per quanto non sia un sistema Unix. E
anche Linux, il sistema operativo libero che (per qualcuno sembrerà un
eresia) non è un sistema Unix. Non in senso stretto, almeno.
Due parole su Linux
A partire dai primi anni novanta, l’avvento di Internet ha favorito come
mai prima la collaborazione tra programmatori di tutto il mondo e la
nascita del movimento del software libero, free software, che si pone
come obiettivo la fornitura a tutti di sistema operativo e programmi
Pocket Cofano Libr.indb 12
22-04-2010 13:17:43
Dottor Unix e mister Darwin
13
non solo gratuiti, ma anche disponibili a chiunque li voglia migliorare o
arricchire, a patto che la stessa disponibilità valga anche per le migliorie e gli arricchimenti, cioè che il codice sia sempre e comunque aperto
a chiunque, condizione riassunta dal termine open source.
Nel 1991 uno studente finlandese, Linus Torvalds, si trovò a frequentare all’università di Helsinki lezioni di programmazione basate su
MINIX, un sistema operativo con scopi didattici scritto da Andrew S.
Tanenbaum. MINIX aveva una filosofia costruttiva simile a Unix, senza
però esserne una variante vera e propria; piuttosto era un’imitazione
nata appunto per favorire l’insegnamento della programmazione,
attraverso funzioni specifiche. Torvalds iniziò a scrivere un kernel che
potesse diventare un’alternativa a MINIX e, senza neanche crederci
troppo, scrisse un messaggio in una mailing list chiedendo una mano
a chi fosse interessato. In breve tempo nacque attorno a lui una comunità formidabile di programmatori che lavoravano a Linux, come
venne battezzato il sistema in omaggio all’ideatore, su base volontaria
da tutto il mondo. Oggi Linux (http://www.linux.org) è installato in un
computer desktop su 100; ma due server web su tre utilizzano Apache,
programma open source nato nella comunità dei programmatori liberi,
e sovente utilizzano proprio Linux.
Il travaso continuo di codice ed esperienze tra i programmatori fa sì che
i sistemi operativi come Linux, pur non essendo Unix in senso stretto,
si comportino in modo estremamente simile e per questo siano detti,
per l’appunto, Unix-like. Molti strumenti, a partire dalla shell, sono praticamente identici nell’uso. Inoltre, se il software proprietario (sviluppato in segreto all’interno di un’azienda) presenta certi vantaggi (per
esempio la capacità di pianificarne gli sviluppi nel tempo) il software
libero, sviluppato da chiunque lo voglia, ne presenta altri. Per esempio,
la sicurezza del software libero è tipicamente superiore, perché qualsiasi programmatore può mettere alla prova il codice e, se trova un
problema, lavorare per risolverlo.
Mentre Microsoft è rimasta ferma alla logica proprietaria in voga negli
anni ottanta, Apple ha capito la lezione e ha lavorato per coniugare il
meglio delle due filosofie.
In continua evoluzione
Mac OS X è di serie in tutti i Mac e si compra nei negozi. Certe sue parti,
come l’infrastruttura QuickTime per il trattamento dei media, sono proprietarie; il loro sviluppo è responsabilità diretta e unica di Apple.
Pocket Cofano Libr.indb 13
22-04-2010 13:17:43
14
Capitolo 1
Le fondamenta del sistema operativo sono invece open source, liberamente scaricabili da chiunque sotto il nome di Darwin. Scaricare e
installare Darwin, per poi installare un’interfaccia grafica libera come
KDE o Gnome, porta a un risultato simile a quello che si avrebbe installando Linux, senonché il codice non è quello di Linus Torvalds,
bensì quello assemblato ed elaborato da Apple seguendo la strada
avventurosa descritta fino a qui. Gli interessati potranno scaricare gratuitamente Darwin dalla pagina http://www.opensource.apple.com/ e
scoprire tra l’altro che la stessa base di codice dà origine a iPhone OS,
il sistema operativo impiegato su iPhone, iPod touch e iPad. Potranno
inoltre esaminare i progetti open source messi in cantiere da Apple alla
pagina http://www.macosforge.org.
Darwin, sistema operativo open source, è l’esito più moderno dell’evoluzione di Apple e di Unix, paradossalmente proprio in virtù di una
storia così antica e intricata. La shell, cioè il Terminale, ne è parte integrante e dalle prossime pagine ci concentreremo su quella. Con il
vantaggio di sapere da dove viene e a che cosa è servita, informazioni
che ci aiuteranno al momento di scoprire come ci tornerà utile.
Un’ultima curiosità riguarda il nome Darwin. È stato coniato quando
in Apple era il momento dei nomi in codice concernenti la natura e
l’evoluzione. L’interfaccia di programmazione in voga in quel momento si chiamava Carbon (carbonio, l’elemento fondamentale per la vita
sulla Terra) e i nomi che contraddistinguono le versioni di Mac OS X
appartengono a grandi felini (l’ultimo, Mac OS X 10.6, è Snow Leopard,
successore di Leopard, giunto dopo Tiger). Nessuno ha mai spiegato ufficialmente il perché, ma Apple detiene da molti anni l’indirizzo Internet http://mammals.org (mammifero), quasi ad alludere a un’identificazione del proprio codice come la “forma di vita software” più evoluta
sul nostro pianeta. Ma questa è solo una supposizione dell’autore.
Figura 1.3 Hexley, la mascotte di
Darwin, tradisce la sua origine sin…
dalle corna. Ricordate che il simbolo
di FreeBsd è un diavoletto?
Pocket Cofano Libr.indb 14
22-04-2010 13:17:43