Nel primo articolo di questa serie abbiamo introdotto l’architettura di macOS; passiamo adesso ad un argomento molto importante, l’interfaccia grafica di macOS! E’ sempre stata caratterizzata da uno stile inconfondible e totalmente user-friendly, tanto da aver ispirato la GUI di tanti altri sistemi operativi. La User Experience di macOS è caratterizzata principalmente da tre elementi.
Le componenti principali
- Aqua: è un marchio registrato da Apple, che identifica il tema e l’interfaccia grafica usata nel loro sistema operativo. Il primo processo eseguito in user mode dal sistema è launchd, il responsabile del caricamento della GUI; il processo principale che gestisce la GUI è WindowServer.
Il server della finestra viene avviato con l’argomento -daemon anche se in realtà tutto il lavoro sporco viene svolto dal Core Graphics X Server (abbreviato in CGXServer) che fa parte del framework CoreGraphic (che non è altro che Quartz, il famosissimo motore di rendering collocato direttamente sopra Darwin).Se volete eseguire il boot del sistema in single user mode, eseguite il comando subito sotto: sarà necessario decommentare la prima riga, rimuovendo il simbolo #.MacBook-Pro-di-Matteo:/ matteo$ cat /etc/ttys | grep console #console "/usr/libexec/getty std.57600" vt100 on secure console "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow" vt100 on secure onoption="/usr/libexec/getty std.9600"
Vi sconsiglio tuttavia di eseguire questa procedura a meno che non siate degli esperti di UNIX, prendete questa informazione a scopo puramente informativo. Se desiderate eseguire il sistema in single user mode affidatevi alla guida ufficiale Apple senza modificare nessun file di sistema.
- Quick Look: è una funzionalità introdotta a partire da macOS Leopard per abilitare una rapida anteprima all’interno del Finder, dove, piuttosto che eseguire un doppio click su di un file visualizzarlo, è sufficiente premere la barra spaziatrice per avere una rapida anteprima. E’ un’architettura estensibile, infatti i plugin che muovono Quick Look sono impacchettati con estensione .qlgenerator facilmente installabili trascinandoli all’interno della sua directory. Questi plugin non sono eseguibili standalone: implementano un QuickLookGeneratorPluginFactory, non dispongono di un classico punto di ingresso di tipo main(). La ciliegina sulla torta è che ad un plugin viene associato un unico tipo di file, tramite una relazione biunivoca uno a uno. Per visualizzare quali pacchetti .qlgenerator sono presenti all’interno della vostra macchina, potete provare a digitare nel terminale del vostro Macbook questi comandi:
MacBook-Pro-di-Matteo:MacOS matteo$ cd /Library/QuickLook/ MacBook-Pro-di-Matteo:QuickLook matteo$ ls iBooksAuthor.qlgenerator iWork.qlgenerator
- Spotlight: è la tecnologia di ricerca rapida introdotta da Apple con macOS Tiger. In Leopard venne perfettamente integrato all’interno del Finder e successivamente fu inglobato anche da iOS, a partire dalla versione 3.0. In macOS, l’utente interagisce con Spotlight eseguendo un click sull’icona della lente di ingrandimento che si trova nell’angolo destro della barra dei menu del sistema, oppure attraverso la combinazione di comandi da tastiera cmd + barra spaziatrice. Il cervello che muove Spotlight è un server di incizzazione, mds, che si trova nel framework Metadata (/System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds), che fa parte dei servizi di base del sistema. Ovviamente è un demone privo di interfaccia grafica; ogni volta che si verifica un’operazione su di un file il kernel lo notifica a questo demone attraverso un meccanismo denominato fsevents che tratteremo in un articolo futuro. Quando mds riceve la notifica di un operazione su un file, importa nel database i metadati del file notificato. L’operazione di estrazione e importazione dei metadati avviene tramite un altro processo (mdworker) che sfrutta degli importer di sistema situati in /System/Library/Spotlight/. Per avere un’idea degli importer di sistema disponibili, potete facilemnte eseguire questi comandi nel terminale:
MacBook-Pro-di-Matteo:/ matteo$ cd /System/Library/Spotlight/ MacBook-Pro-di-Matteo:Spotlight matteo$ ls Application.mdimporter Bookmarks.mdimporter Image.mdimporter PS.mdimporter iCal.mdimporter Archives.mdimporter Chat.mdimporter MIDI.mdimporter QuartzComposer.mdimporter iPhoto.mdimporter Audio.mdimporter CoreMedia.mdimporter Mail.mdimporter RichText.mdimporter iPhoto8.mdimporter Automator.mdimporter Font.mdimporter PDF.mdimporter SystemPrefs.mdimporter vCard.mdimporter
Una chicca: è possibile accedere alle funzionalità di Spotlight direttamente da linea di comando:
- mdls: mostra la lista dei metadati di un certo file.
- mdutil: molto utile per gestire il database del framework MetaData.
- mddiagnose: utility di diagnostica per Spotlight.
- mdimport: necessario per configurare ed eseguire dei test sui plugin di Spotlight.
- mdfind: esegue delle query, in pratica trova i file che corrispondono alla richiesta che effettuiamo.
Per avere una lista accurata e dettagliata dei comandi disponibili, potete partire da questo link. Nella sezione See Also, in basso, trovate i comandi correlati.
Anche per questo appuntamento è tutto: questi primi articoli sono più incentrati su macOS che iOS per mantenere una coerenza con gli argomenti trattati; sono dei passaggi necessari per parlare, in futuro, di entrambi i sistemi operativi simultaneamente. Nel prossimo articolo entreremo nel cuore di macOS, parlando di Darwin, denominato “The Unix Core”!