macOS è il sistema operativo sviluppato da Apple per i computer Macintosh. Mac OS X, come tutti i moderni sistemi operativi, è strutturato a livelli - e, nella fattispecie, da cinque livelli. La suddivisione in livelli è una scelta molto comune tra i moderni OS, poiché consente uno sviluppo rapido del sistema operativo e permette di renderlo quasi totalmente indipendente dall'hardware. Inoltre, questa soluzione fornisce un'architettura estremamente logica e consente di ottenere un sistema efficiente, visto che i singoli moduli possono essere analizzati e riprogettati in modo da eliminare il più possibile gli eventuali "colli di bottiglia".

Livello utente

Questo livello è l'unico ad essere direttamente accessibile dall'utente. Alcune componenti di questo livello formano l'interfaccia grafica che l'utente utilizza, mentre altre rappresentano delle linee guida che i programmatori devono seguire per uniformare l'interfaccia grafica dei loro programmi all'interfaccia grafica del sistema operativo - e, quindi, alle aspettative dell'utente.

Aqua Aqua è la tecnologia che racchiude la rappresentazione dell'interfaccia grafica. Questa tecnologia racchiude i temi utilizzati dall'interfaccia grafica per disegnare le finestre che compongono le applicazioni e il sistema operativo. Aqua è anche un insieme di linee guida che i programmatori devono seguire per uniformare le loro applicazioni al sistema operativo. Accessibilità Questa componente raccoglie tutte le tecnologie che il sistema operativo utilizza per facilitare l'utilizzo del computer agli utenti disabili - dall'utilizzo di un programma per ingrandire lo schermo al riconoscimento vocale. AppleScript AppleScript è il linguaggio standard di scripting utilizzato da Mac OS X e dalle sue applicazioni per automatizzare le operazioni ripetitive. Bundle e Package I Bundle e i Package sono i contenitori di software autoinstallanti di Mac OS X. I Bundle vengono usualmente utilizzati per installare e gestire i componenti interni del sistema operativo (come i salvaschermo, le librerie, i plug-in o altro), mentre i package vengono utilizzati per l'installazione delle applicazioni. Il sistema tiene traccia dei Bundle e dei package installati tramite un database interno. Cambio utente rapido Il Mac OS X consente a un utente di utilizzare il computer anche quando un altro utente risulta collegato al computer. L'avvio del nuovo utente, infatti, non sospende i processi del vecchio utente. Quando un nuovo utente si intende collegare al sistema Cambio utente rapido provvede a creare l'ambiente per il nuovo utente e a tenere traccia di tutte le risorse condivise in modo da evitare blocchi del sistema dovuti all'accesso scorretto a risorse condivise. Localizzazione Mac OS X supporta molteplici lingue e tutti i maggiori stili di scrittura del pianeta. Tutti i componenti raccolti sotto questa denominazione si preoccupano di gestire i vari linguaggi del sistema operativo comprese le peculiarità di scrittura (se da destra verso sinistra o viceversa, dall'alto verso il basso o l'opposto) e le notazioni standard della data, dei numeri e così via. Esiste, quindi, una componente del sistema operativo che provvede a selezionare la localizzazione migliore tra quelle disponibili. Autoconfigurazione del Software Per cercare di semplificare il normale utilizzo del computer, il sistema operativo dispone di una componente che quando installa un programma provvede a memorizzare i file che il programma è in grado di manipolare in modo da associarli automaticamente alle estensioni corrette. Provvede, dunque, a integrare le funzionalità del programma nel sistema operativo (sempre che il programma possa fornire funzioni al sistema operativo).

Livello Applicazioni

Per sviluppare applicazioni per Mac OS X il programmatore dispone di diverse tecnologie utilizzabili. Alcune tecnologie svolgono compiti simili pur essendo progettate per affrontare un problema da punti di vista differenti Carbon La tecnologia Carbon è stata sviluppata per permettere alle applicazioni progettate per Mac OS 9 di essere utilizzate con Mac OS X con minime correzioni. Questa tecnologia per ragioni di compatibilità non si avvantaggia di molte delle caratteristiche del Mac OS X Cocoa Questa tecnologia è rivolta allo sviluppo di applicazioni native per Mac OS X. È progettata per sfruttare al pieno le tecnologie incluse nel sistema operativo. I programmi sviluppati con le librerie Cocoa non sono compatibili con i sistemi operativi precedenti a Mac OS X Java Il sistema operativo supporta nativamente le applicazioni Java e le Applet Java. Questo componente provvede ad avviare la Java virtual machine e a gestire le comunicazioni tra la Java virtual machine e il sistema operativo. WebObjects WebObjects è un insieme di programmi e librerie utilizzabili per sviluppare applicazioni native per il Web. BSD e X11 Il nucleo del Mac OS X è basato su BSD, questo componente provvede a gestire le chiamate dei programmi BSD e a indirizzarle correttamente. X11 è un'estensione grafica utilizzata dei programmi BSD per visualizzare un'interfaccia grafica. È concettualmente simile a Quartz solo che è meno sofisticata. Per la visualizzazione si basa sulle primitive di Quartz per fornire all'utente una rappresentazione grafica coerente con le applicazioni native per Mac OS X.

Grafica e multimedia Durante lo sviluppo di Mac OS X Apple ha posto molta attenzione nel sottosistema grafico. Infatti il livello dedicato alla gestione della grafica e più in generale del multimedia è composto da molte tecnologie che sono state sviluppate per ottenere il miglior risultato possibile nel loro campo di applicazione.

Quartz Quartz è l'insieme delle tecnologie che si occupano del disegno e della gestione dell'interfaccia grafica del Mac OS X. La tecnologia Quartz è basata sul formato PDF per consentire una resa grafica elevata e indipendente dal dispositivo di visualizzazione. QuickTime QuickTime è la tecnologia sviluppata da Apple per manipolare i dati multimediali. Viene utilizzata per visualizzare filmati, immagini, suoni e altro. Può essere utilizzata per effettuare conversioni e per creare streaming audio e video. OpenGL OpenGL è la tecnologia standard sviluppata per la visualizzazione della grafica tridimensionale. Include una serie di effetti applicabili sulle immagini. Viene utilizzata anche dal sottosistema Quartz per accelerare alcune operazioni grafiche demandandole alla scheda grafica. Testo e Font Il sistema operativo dispone di una serie d componenti dedicati alla visualizzazione e alla elaborazione dei font. I componenti supportano anche la codifiche unicode a 16 bit per permettere di rappresentare correttamente lingue come il cinese o il coreano, lingue dotate di migliaia di simboli diversi. ColorSync ColorSync è la tecnologia sviluppata da Apple per gestire i colori. Ogni dispositivo di ingresso (scanner, videocamere, fotocamere, ecc) e ogni dispositivo di uscita (monitor, stampante, ecc.) è dotato di una particolare rappresentazione dei colori. Lo spazio cromatico gestibile dal monitor è diverso dallo spazio cromatico gestibile dalla stampante e quindi per evitare di ottenere dei colori in stampa diversi da quelli visualizzati a monitor è stato sviluppato ColorSync. Il componente provvede utilizzando i profili colore dei singoli dispositivi a adattare i colori rappresentati a video con i colori stampati. Core Audio Questo componente si preoccupa di gestire l'audio del computer. Permette di adattare l'audio prodotto dai programma con le reali capacità audio del computer e provvede a miscelare più canali, a generare effetti audio, ecc. Riproduttore DVD Questo componente fornisce le capacità di riprodurre i filmati DVD a tutte le applicazioni che lo utilizzano. Stampa Questo sottosistema provvede a gestire le stampanti installate. È in grado di gestire stampanti remote, di effettuare conversioni se necessario e di gestire la coda di stampa. Il sottosistema si occupa di gestire i fax ricevuti e si interfaccia a CUPS o a i driver proprietari sviluppati dai produttori delle stampanti. QuickDraw Questa tecnologia si occupa di manipolare e visualizzare la grafica delle applicazioni che utilizzano Classic. In realtà la tecnologia QuickDraw non manipola direttamente la grafica ma unicamente converte le chiamate QuickDraw in chiamate al sottosistema Quartz che provvederà a elaborarle.

Servizi per le applicazioni Questo livello è composto da servizi forniti dal sistema operativo alle applicazioni. Questi servizi hanno lo scopo di consentire una più stretta integrazioni tra le applicazioni e il sistema operativo. Questo servizi sono nati nell'ottica di rendere più semplice e comodo l'utilizzo del computer per l'utente.

Contatti Il sistema operativo mette a disposizione delle applicazioni un servizio centralizzato di recupero e gestione delle informazioni. Questo servizio che si basa sull'omonimo programma provvede a organizzare tutti i contatti dell'utente. Disc Recording Questo insieme di librerie permettono agli applicativi di manipolare e gestire direttamente i dispositivi ottici riscrivibili come CD e DVD senza doversi preoccupare delle problematiche tecniche dato che queste sono gestite dal sistema operativo. Help Mac OS X include un gestore delle guide in linea centralizzato. Questo consente all'utente di effettuare direttamente le ricerche in tutte le guide in linea installate e non soltanto in quella dell'applicazione in uso. Human Interface Toolbox L'Human Interface Toolbox è una raccolta di oggetti (Toolbox) che possono essere utilizzati dai programmatori per realizzare interfacce grafiche conformi agli standard Aqua con semplicità. Image Capture Image Capture è un componente che si preoccupa di gestire l'acquisizione di immagini da scanner o da fotocamera. Utilizzando questa libreria i programmatori non si devono preoccupare di gestire direttamente l'acquisizione delle immagini dato che viene gestito e processato in automatico dal sistema operativo. Ink Questo componente si preoccupa di gestire il riconoscimento della scrittura a mano libera. Se l'utente collega al computer una tavoletta grafica il sistema riconosce la presenza del dispositivi e attiva il componente Ink. Questo componente provvede a gestire la tavoletta grafica e a riconoscerne i comandi. Keychain Services Il sistema operativo fornisce un servizio di raccolta e gestione delle informazioni sensibili dell'utente. Questo componente gestisce le password, gli account e tutte le informazioni riservate che l'utente crea quando utilizza internet o durante il normale utilizzo del computer. Il servizio fornisce (dietro autentificazione) le informazioni richieste ai programmi. Launch Services Questo servizio provvede a attivare il programma appropriato quando l'utente effettua un doppio click su un file contenente dati. Open Directory Open Directory è una tecnologia che provvede a fornire un metodo standard e trasparente per recuperare e gestire informazioni presenti in locale o su server remoti. Il servizio si avvale di plug-in che provvedono a gestire i singoli protocolli. Apple fornisce plug-in per LDAPv2, LDAPv3, NetInfo, AppleTalk, SLP, SMB, DNS, Microsoft Active Directory, Rendezvous e altri. Ulteriori protocolli possono essere gestiti con l'aggiunta di ulteriori plug-in. Bonjour Questo servizio fornisce l'implementazione Apple della tecnologia Zeroconf, una tecnologia per l'autoconfigurazione delle reti locali e l'individuazione delle macchine disponibili. Search Kit Questo insieme di librerie forniscono un motore di ricerca veloce e efficiente da utilizzare nelle applicazioni. Il motore di ricerca gestisce le lingue e gli alfabeti gestiti da Mac OS X e è in grado di indicizzare e analizzare elevate molti di dati in tempi rapidi. Viene utilizzato dal Finder, dal programma di posta Mail e da Contatti. Security Services