La GUI di macOS: quali sono le componenti principali?

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.

ios macos spotlight quicklook darwin GUI

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”!

HotAcquista iPhone 15 su Amazon!
Approfondimenti