# Storia di macOS

macOS è il sistema operativo sviluppato da Apple Inc. per i computer Macintosh, nato nel 2001 per combinare le note caratteristiche dell'interfaccia utente del Mac OS classico con l'architettura di un sistema operativo di derivazione UNIX della famiglia BSD. A differenza dei suoi predecessori, è basato su una variante del sistema operativo Unix chiamato BSD e su una serie di librerie sviluppate dalla NeXT per il suo sistema operativo.

## L'influenza della politica

Quando i manager di Apple estromisero Steve Jobs dall'azienda nel 1985, egli decise di fondare, con Ross Perot e un piccolo gruppo di investitori, una nuova società con cui creare una nuova rivoluzione nel mondo dell'informatica, con il nome di NeXT. Pur essendo molto innovativo, il computer NeXT non ebbe il successo sperato e di conseguenza nel 1993 chiuse la divisione che si occupava dell'hardware, per concentrarsi sul software, sviluppando e migliorando così il suo sistema operativo NEXTSTEP che aveva già ricevuto notevoli apprezzamenti per la sua architettura, considerata avanzata e moderna. Jobs promosse la realizzazione di una serie di librerie dedicate alle applicazioni commerciali e un server applicativo chiamato WebObjects, che recepiva le necessità aziendali e permetteva di realizzare dei server web. NeXT riuscì a vendere diversi sistemi e a ritagliarsi una quota di mercato con le consulenze e l'assistenza, ma il suo successo rimase sempre molto modesto.
Nel 1996 Apple si trovava in una situazione difficile poiché il suo sistema operativo Mac OS appariva obsoleto e la possibilità di un aggiornamento completo, che avrebbe richiesto la riscrittura di una quantità rilevante di codice, risultava poco vantaggiosa. La società aveva quindi intrapreso la ricerca di un sistema operativo da acquistare per rimpiazzare Mac OS. Inizialmente si rivolse alla Be Incorporated interessata al suo sistema operativo BeOS ma, dopo una serie di riunioni favorevoli, la trattativa si arenò sul prezzo. Apple si rivolse allora a Jobs, acquistando il NEXTSTEP per utilizzarlo come base per il futuro sistema operativo. Il progetto fu chiamato Rhapsody e l'ingegner Avie Tevanian venne messo a capo del progetto. Jobs fu assunto in Apple come consulente ma, a causa della condizione economica di Apple, la quale aumentava i propri debiti, riuscì a convincere il consiglio di amministrazione a licenziare il CEO Gil Amelio e a farsi assumere come nuovo CEO ad interim fino a che la situazione economica non si fosse ristabilita. Jobs ricevette carta bianca: il suo unico obiettivo era far tornare l'Apple in attivo, mentre il consiglio di amministrazione avrebbe cercato un nuovo CEO.
Jobs iniziò ristrutturando la società dall'interno: eliminò tutti i progetti che non erano in grado di generare profitto nell'immediato (come i dispositivi Newton) e contemporaneamente fece concentrare il settore software sulla conversione del NeXTSTEP in un prodotto adatto agli utenti del Mac e all'hardware Macintosh. La sezione hardware fu incitata nel realizzare un prodotto nuovo e innovativo e nacque la famiglia iMac, che riscosse un corposo successo, risollevando le sorti della società. Nel 2001 venne presentato Mac OS X, che dopo una fase di rodaggio divenne un sistema solido e funzionale. OS X rese Apple il primo distributore di sistemi Unix, mentre l'idea di Jobs di integrare il computer con le periferiche domestiche fornì una marcia in più all'azienda, che seguendo questa filosofia lanciò l'iPod (che tuttavia non è il primo player MP3 della storia). Dopo il successo del Mac OS X Jobs fu acclamato dal consiglio di amministrazione, accettando di diventare CEO a tutti gli effetti.

## Dal punto di vista del sistema operativo

Nel 1986 NeXT, basandosi sul kernel Mach e sul sistema BSD, sviluppò il sistema operativo NEXTSTEP, e in seguito OpenStep, mentre Apple cercava di riprendersi dall'insuccesso del Lisa e cercava di recuperare mercato spingendo il marketing del Macintosh. Nel corso degli anni, NeXTSTEP venne portato dalla piattaforma 68k a quella Intel e vi furono versioni dimostrative funzionanti su PA-RISC, SPARC e 88k, a dimostrazione di un'ottima capacità di adattamento e di una valida portabilità su sistemi diversi.
A metà del 1997 Jobs ritornò in Apple e collaborò con il team di sviluppo che si occupava del porting e dell'incorporazione della tecnologia NeXT nel sistema operativo MacOS. Nel 1998 Jobs diventa CEO e annuncia che il progetto Rhapsody era diventato il progetto Mac OS X. Nel gennaio 1999 viene distribuito il primo prodotto del progetto Mac OS X, il macOS Server. Nel 2000 viene distribuita una beta pubblica e il 21 marzo viene infine distribuito il Mac OS X Cheetah, la prima versione del nuovo sistema operativo. La versione Mac OS X Puma viene distribuita pochi mesi dopo. Nel 2002 viene distribuita la versione Mac OS X Jaguar e nel 2003 la versione Mac OS X Panther. La versione Mac OS X Tiger è stata distribuita il 29 aprile 2005 mentre il 26 ottobre 2007 Mac OS X Leopard. Perfezionamento di quest'ultima è la versione OS X Snow Leopard, distribuita il 24 agosto 2009, seguita a distanza di due anni dalla versione OS X Lion, distribuita per la prima volta esclusivamente online sul Mac App Store il 20 luglio 2011. L'11 giugno 2012, alla conferenza inaugurale della WWDC a San Francisco, è stata annunciata la versione OS X Mountain Lion, uscita il 26 luglio 2012. Il 10 giugno 2013, alla conferenza inaugurale della WWDC a San Francisco, è stata annunciata la versione OS X Mavericks, uscita il 22 ottobre 2013. Il 2 giugno 2014, alla conferenza inaugurale della WWDC a San Francisco, è stata annunciata la versione OS X Yosemite, uscita il 16 ottobre 2014. L'8 giugno 2015 alla conferenza inaugurale della WWDC a San Francisco, è stata annunciata la versione OS X El Capitan, uscita il 30 settembre 2015. Il 13 giugno 2016 al Keynote inaugurale della WWDC a San Francisco, è stata annunciata la versione 10.12, "macOS Sierra", nella stessa presentazione è stato annunciato il cambiamento del nome del sistema operativo da OS X a macOS. Questa versione è stata pubblicata il 20 settembre 2016.

## Dalla prospettiva della GUI

Fin dall'inizio della propria storia Apple si è preoccupata di sviluppare prodotti innovativi. Nel 1980, dopo la visita allo Xerox PARC, Jobs decise che un computer basato su una interfaccia grafica (GUI), come lo Xerox Alto del 1973, sarebbe stato più semplice da utilizzare per l'utente medio. L'azienda arrivò anche a dividere le forze su due progetti contemporaneamente, il Lisa dedicato agli utenti professionali e il progetto Macintosh, nato con ambizioni inferiori e di costo inferiore. Alla fine Lisa si dimostrò un computer dotato di S.O. solido ma senza mercato, invece i computer Macintosh si dimostrarono un successo commerciale, pur dotati di un S.O. poco avanzato. Apple si preoccupò di rendere l'interfaccia utente funzionale, pratica e coerente, ma non si focalizzò nel migliorare le basi del S.O. arrivando al punto di trovarsi con un'interfaccia utente altamente usabile, ma con un sistema operativo piuttosto arcaico e limitato. L'avvento del Mac OS X risolse questo problema: il sistema operativo acquisì la solidità di un sistema Unix, mentre l'interfaccia - derivata dalla decennale esperienza di Apple in questo settore - risultò essere la migliore sul mercato come integrazione e semplicità.

## Prospettiva dei linguaggi/ delle terze parti

La possibilità di programmare in modo nativo il Mac OS X in linguaggio C, C++, Objective C, Java, Ruby e Python ha avuto delle ricadute positive sugli sviluppatori. L'adozione di standard internazionali rende molto semplice il porting di programmi Unix, e gli sviluppatori apprezzano che Apple, piuttosto che sviluppare linguaggi o dialetti propri come fa Microsoft, abbia deciso di non introdurre queste variazioni nel codice destinato ai suoi prodotti.

## La visione d'insieme

Apple, basandosi sulla sua esperienza nel campo delle GUI e utilizzando la tecnologia NeXT, ha realizzato un sistema UNIX-based e quindi molto più solido del precedente Mac OS "Classic".
Mantenendo lo spirito del progetto BSD, ha distribuito il codice della sua versione di Darwin BSD, e dell'Objective C. Apple, pur mantenendo diverse caratteristiche del precedente sistema operativo, ha rinnovato corposamente l'OS X. Da un confronto eseguito dagli ingegneri Apple, è risultato come la versione 10.0 e la 10.6 non abbiano nessuna riga di codice in comune. Una critica alla società è stata riguardo alla licenza Apple (APSL), che non risultava compatibile con le licenze standard del mondo Open source. Apple ha però distribuito una seconda versione della licenza, che rimuove molti dei vincoli presenti nella precedente licenza e che oggi trova un numero maggiore di sostenitori, dal momento che è considerata quasi equivalente ad altre licenze utilizzate nel mondo open source.

## Versioni
### Pre-System 6

* System 1.0
* System 2.0
* System 3.0
* System Tools 4.0 (System 3.2, Finder 5.3)
* System Tools 5.0 (System 4.2, Finder 6.0)
Tutte queste versioni erano in grado di eseguire al massimo un'applicazione per volta, sebbene alcune applicazioni fossero in grado di dare l'illusione di convivere con altre applicazioni, utilizzando una procedura di scambio tra applicazione attiva e applicazione dormiente (vedi MultiFinder per ulteriori informazioni). Il System 1.0 e 2.0 furono distribuiti insieme al Macintosh 128K e al Macintosh 512K ed utilizzavano un File system chiamato MFS (Macintosh File System) per organizzare i dati. Il System 3.0 introdusse HFS (Hierarchical File System - File System gerarchico), questo File System introduceva una reale gestione gerarchica dei dati. La precedente versione non possedeva la gestione gerarchica e il Finder la simulava con degli indici e delle tabelle. Il System 4.0 venne introdotto col Mac Plus (aggiunse il supporto per lo SCSI, AppleTalk, etc), e il System 5.0 venne distribuito col Mac SE e Macintosh II.
Una significativa miglioria del System 5.x giunta con l'avvento del colore sui Macintosh è stato QuickDraw, che venne presentato col Macintosh II nel 1986. Questa tecnologia (e le sue API) estese le capacità del sistema operativo di elaborare la grafica e, sebbene per Apple la maggior parte degli utenti non se ne rese conto, rappresentava un significativo miglioramento dell'architettura grafica del System; la sua utilità sarebbe emersa totalmente con l'arrivo delle schede grafiche di terze parti.

### System 6

Il System 6 aggiunse il MultiFinder, che rimpiazzava il precedente Finder con una versione notevolmente migliorata, in grado di eseguire più programmi contemporaneamente. Il tempo macchina veniva diviso tra l'applicazione in esecuzione e le applicazioni dormienti; questa tecnica di gestione è chiamata multitasking cooperativo e, sebbene sia un notevole miglioramento rispetto al passato, è un multitasking poco efficiente, dato che sono le applicazioni a decidere quando distribuire il processore e non il sistema operativo, pertanto un applicativo mal scritto potrebbe mettere in crisi il computer. La tecnologia alla base del MultiFinder era già presente nel precedente sistema operativo, ma fu con la sesta revisione che si diffuse il suo utilizzo.
* System 6.0 (Finder 6.1)
* System 6.0.5
* System 6.0.6
* System 6.0.7 (vari bug)
* System 6.0.8 (aggiunta la compatibilità con la condivisione dei file e delle stampanti del System 7)

### System 7

Il System 7 fu una versione del Mac OS con maggiori innovazioni rispetto al passato. Sebbene il nucleo del sistema operativo non fosse modificato rispetto alle versioni precedenti, Apple apportò alle funzioni di alto livello un numero elevatissimo di modifiche che cambiarono profondamente l'interazione del sistema operativo con le periferiche ed i programmi. Il System 7 consolidò le precedenti versioni e rese il Mac OS un sistema stabile e completo. Rese la gestione degli indirizzi a 32 bit completa, operazione necessaria per poter utilizzare più memoria. Le precedenti versioni utilizzavano 24 bit per gli indirizzi e i rimanenti come selettori. Il vecchio metodo di indirizzamento era un metodo intelligente con i primi Macintosh che disponevano di una quantità limitata di memoria, ma per gli ultimi Macintosh costituiva una limitazione. Apple invitò gli sviluppatori a seguire la nuova convenzione e dunque a rimuovere il codice che utilizzava la vecchia modalità, visto che non sarebbe stata supportata in futuro.
Malgrado le versioni 8.x e 9.x apportarono vari cambiamenti, il sistema operativo rimase essenzialmente lo stesso nelle fondamenta.
* System 7 (distribuito nel 1991; integra il MultiFinder nel OS)
* System 7.0.1 (distribuito col Macintosh LC II e la famiglia Quadra)
* System 7• (perfezionamenti del System 7) -- miglioramenti dal 7.0 al 7.0.1
* System 7.1
* System 7.1 Pro (versione 7.1.1, combinata con PowerTalk, Speech Manager & Macintalk, Thread Manager)
* System 7.1.2 (prima versione con i PowerMac)
* System 7.5 (lo slogan non ufficiale per questa versione era "System 7.5 Sucks Less" trad. "System 7.5 consuma di meno"—uno slogan analogo fu utilizzato da alcuni sviluppatori Microsoft per Windows 95)
* System 7.5.1
* System 7.5.2 (prima versione con PowerMac con schede di espansione PCI)
* System 7.5.3
* System 7.5.3 Update 2.0 (perché non è stata chiamata 7.5.4?)
* System 7.5.5
* Mac OS 7.6 (nome formalmente modificato per via del programma di cloni avviato dall'Apple. In realtà è un System 7.5.x con un nome diverso nello splash screen)
* System 7.6.1

### Mac OS 8

Il Mac OS 8.x nacque come una versione di transizione tra le precedenti versioni del Mac OS e il progetto Copland, sebbene durante il suo percorso le diverse esigenze costrinsero Apple a cancellare Copland. Comunque il Mac OS 8.x ricevette dal progetto Copland alcune tecnologie che furono integrate nel S.O. La GUI fu modificata e questa nuova versione consentiva un certo grado di personalizzazione all'utente. Questa funzione venne ottenuta aggiungendo un livello ulteriore al motore di disegno del sistema operativo e aggiungendo un nuovo pannello delle preferenze. Mac OS 8 introduceva anche il nuovo File System HFS+, che apportava delle significative modifiche la precedente HPS. La nuova versione si è rivelata talmente valida che viene utilizzata tuttora dall'ultima versione del sistema operativo. Venne modificata anche la gestione della rete e della condivisione delle stampanti. Nonostante i diversi miglioramenti apportati, la base del Mac OS non era cambiata e corrispondeva ancora a quella del System 7.
* Mac OS 8.0
* Mac OS 8.1 (ultima versione che funziona su Mac con processore m68k o PowerPC; prima versione delle API Carbon)
* Mac OS 8.5 (prima versione funzionante solo su Mac dotati di processori PowerPC)
* Mac OS 8.6 (aggiunto il nanokernel)

### Mac OS 9

Il Mac OS 9.x è un'evoluzione del Mac OS 8 senza grosse innovazioni. In effetti l'unica ragione del passaggio da 8 a 9 nella numerazione fu quello di non spaventare eventuali utenti che vedendo il sistema operativo passare dalla versione 8 alla 10 (macOS) potessero pensare a un salto troppo brusco del S.O. Il System 9 conteneva una serie di tecnologie atte a facilitare il passaggio dal precedente al Mac OS X. Conteneva anche delle tecnologie del Mac OS X che incluse nel 9 per consentire agli sviluppatori di abituarsi al loro utilizzo, sempre nell'ottica di facilitare agli sviluppatori la transizione dei programmi. Una tecnologia molto importante è quella delle librerie Carbon, che i programmatori dovevano utilizzare se volevano che i loro programmi funzionassero anche su Mac OS X. Un'altra caratteristica del Mac OS 9 era la possibilità di funzionare in modalità Classic sotto Mac OS X in modo che gli utenti non perdessero il patrimonio di programmi accumulati per via del passaggio a Mac OS X. La modalità Classic, si trattava però di una emulazione e quindi i programmi funzionanti dentro Classic non erano in grado di utilizzare le caratteristiche del Mac OS X, essendo confinato in una "scatola" dalla quale non potevano uscire.
* Mac OS 9.0
* Mac OS 9.0.2
* Mac OS 9.0.3
* Mac OS 9.0.4
* Mac OS 9.1
* Mac OS 9.2
* Mac OS 9.2.1
* Mac OS 9.2.2

### macOS

Il macOS è una versione totalmente nuova del Mac OS, è basato sul sistema operativo di tipo Unix OpenStep di NeXT. In aggiunta alle librerie originali di OpenStep, OS X aggiunge le librerie Carbon per consentire ai programmi sviluppati con il vecchio paradigma di continuare a funzionare e di avvantaggiarsi di alcune delle innovazioni apportate dal nuovo sistema operativo. Il sistema include il programma Classic, che creando una emulazione dei vecchi Macintosh, permette anche ai vecchi programmi non compatibili con Carbon di continuare a funzionare.
* Mac OS X DP1 (Prima anteprima per sviluppatori)
* Mac OS X DP2
* Mac OS X DP3
* Mac OS X DP4
* Mac OS X Public Beta
* Mac OS X 10.0 (Cheetah)
** Mac OS X 10.0.0
** Mac OS X 10.0.1
** Mac OS X 10.0.2
** Mac OS X 10.0.3
** Mac OS X 10.0.4
* Mac OS X 10.1 (Puma)
** Mac OS X 10.1.0
** Mac OS X 10.1.1
** Mac OS X 10.1.2
** Mac OS X 10.1.3
** Mac OS X 10.1.4
** Mac OS X 10.1.5
* Mac OS X 10.2 (Jaguar)
** Mac OS X 10.2.0
** Mac OS X 10.2.1
** Mac OS X 10.2.2
** Mac OS X 10.2.3
** Mac OS X 10.2.4
** Mac OS X 10.2.5
** Mac OS X 10.2.6
** Mac OS X 10.2.8
** Mac OS X 10.2.8 build 6R73
* Mac OS 10.3 (Panther)
** Mac OS X 10.3.0
** Mac OS X 10.3.1
** Mac OS X 10.3.2
** Mac OS X 10.3.3
** Mac OS X 10.3.4
** Mac OS X 10.3.5
** Mac OS X 10.3.6
** Mac OS X 10.3.7
** Mac OS X 10.3.8
** Mac OS X 10.3.9
* Mac OS 10.4 (Tiger)
** Mac OS X 10.4.1
** Mac OS X 10.4.2
** Mac OS X 10.4.3
** Mac OS X 10.4.4 (Prima versione ufficiale anche per Intel)
** Mac OS X 10.4.5
** Mac OS X 10.4.6
** Mac OS X 10.4.7
** Mac OS X 10.4.8
** Mac OS X 10.4.9
** Mac OS X 10.4.10
** Mac OS X 10.4.11
* Mac OS 10.5 (Leopard)
** Mac OS X 10.5.1
** Mac OS X 10.5.2
** Mac OS X 10.5.3
** Mac OS X 10.5.4
** Mac OS X 10.5.5
** Mac OS X 10.5.6
** Mac OS X 10.5.7
** Mac OS X 10.5.8
* OS X 10.6 (Snow leopard)
** Mac OS X 10.6.1
** Mac OS X 10.6.2
** Mac OS X 10.6.3
** Mac OS X 10.6.4
** Mac OS X 10.6.5
** Mac OS X 10.6.6
** Mac OS X 10.6.7
** Mac OS X 10.6.8
* OS X 10.7 (Lion)
** Mac OS X 10.7.1
** Mac OS X 10.7.2
** Mac OS X 10.7.3
** Mac OS X 10.7.4
* OS X 10.8 (Mountain Lion)
** OS X 10.8.1
** OS X 10.8.2
** OS X 10.8.3
** OS X 10.8.4
** OS X 10.8.5
* OS X 10.9 (Mavericks)
** OS X 10.9.1
** OS X 10.9.2
** OS X 10.9.3
** OS X 10.9.4
** OS X 10.9.5
* OS X 10.10 (Yosemite)
** OS X 10.10.1
** OS X 10.10.2
** OS X 10.10.3
** OS X 10.10.4
** OS X 10.10.5
* OS X 10.11 (El Capitan)
** OS X 10.11.1
** OS X 10.11.2
** OS X 10.11.3
** OS X 10.11.4
** OS X 10.11.5
** OS X 10.11.6
* macOS 10.12 (Sierra)
** macOS 10.12.1
** macOS 10.12.2
** macOS 10.12.3
** macOS 10.12.4
** macOS 10.12.6
* macOS 10.13 (High Sierra)
** macOS 10.13.1
** macOS 10.13.2
** macOS 10.13.3
** macOS 10.13.4
** macOS 10.13.5
** macOS 10.13.6
* macOS 10.14 (Mojave)
** macOS 10.14.1
** macOS 10.14.2
** macOS 10.14.3
** macOS 10.14.4
* macOS 10.15 (Catalina)
** macOS 10.15.1
** macOS 10.15.2
** macOS 10.15.3
** macOS 10.15.4
* macOS 11.0 (Big Sur)
** macOS 11.0.1
** macOS 11.1
** macOS 11.2
** macOS 11.2.1
** macOS 11.2.2
** macOS 11.2.3
** macOS 11.3
** macOS 11.3.1
** macOS 11.4
** macOS 11.5
** macOS 11.5.1
** macOS 11.5.2
** macOS 11.6
** macOS 11.6.1
** macOS 11.6.2
* macOS 12 (Monterey)
* macOS 13 (Ventura)
* macOS 14 (Sonoma)
* macOS 15 (Sequoia)