Quando si parla di sistemi operativi, spesso ci si concentra sul confronto diretto tra Windows e Linux. Invece, si tralasciano le differenze tra macOS e Linux. Si tratta di un confronto significativo per due piattaforme che in tanti, ancora oggi, ritengono simili a basso livello. A ragione? A torto? Scopriamolo insieme.
Ciò che fa ritenere che macOS e Linux abbiano tanto in comune è che entrambi i sistemi operativi supportano l’utilizzo dei comandi UNIX nella finestra del terminale. Windows invece no, a meno che non s’installi un componente come WSL (Sottosistema Windows per Linux) che, grazie alla virtualizzazione, permette di eseguire le principali distribuzioni Linux in finestra e consente addirittura un’interazione diretta con il file system della macchina host.
La nascita di macOS è legata a UNIX più che a Linux: ecco perché
La storia di macOS (che prima si chiamava Mac OS X) è interessante e affascinante. L’invenzione della piattaforma si deve al lavoro svolto da Steve Jobs e dalla sua NeXT Computer, quando l’indimenticabile e indimenticato CEO non lavorava nelle fila dell’azienda da lui cofondata (Jobs aveva lasciato Apple nel 1985). Tecnicamente, il sistema operativo basava il suo funzionamento sul kernel Mach e su BSD, a sua volta derivato da UNIX.
Il kernel Mach è un microkernel sviluppato presso la Carnegie Mellon University. Era pensato per essere leggero e modulare, con funzioni di base come la gestione della memoria e la gestione dei processi in spazi separati, che comunicano tra loro tramite messaggi.
BSD (Berkeley Software Distribution) è una famiglia di sistemi operativi UNIX-like sviluppata presso l’Università di Berkeley in California. BSD è noto per il suo contributo al software libero e open source: il suo kernel ha una lunga storia e integra funzionalità avanzate come il supporto per reti, file system e sicurezza.
In macOS, il kernel XNU (XNU is Not Unix) combina elementi del kernel Mach e di BSD, creando un ibrido che incorpora le caratteristiche di entrambi i mondi. Il kernel ibrido nato a valle del lavoro svolto da NeXT Computer, fornisce le funzionalità di basso livello necessarie per il funzionamento del sistema operativo ancora oggi utilizzato sui sistemi della Mela.
Il sistema operativo dal quale è nato macOS: NeXTSTEP
NeXTSTEP nacque nel 1988 come sistema operativo sviluppato dalla NeXT Computer incorporando “i fondamentali” del kernel Mach e di BSD. Non ottenne un gran successo ma il sistema operativo divenne significativo per i successivi passaggi, tanto che Apple acquisì NeXT nel 1997. È questo il motivo principale per cui macOS unisce componenti UNIX con un ampio ventaglio di tecnologie proprietarie Apple.
Le differenze tra kernel Linux e kernel macOS
Diversamente, il kernel Linux nacque nel 1991 per opera di Linus Torvalds. All’epoca studente, Torvalds era interessato a sperimentare con il sistema operativo UNIX, ma non poteva permettersi l’accesso a un sistema UNIX completo sul suo computer personale. Pertanto, decise di creare un sistema operativo UNIX-like che potesse davvero risultare compatibile con i suoi computer. A partire dal 1992, l’accoppiata GNU/Linux portò alla formazione di un sistema operativo completamente libero.
Di per sé, infatti, il kernel Linux non può, da solo, essere considerato un sistema operativo: ha bisogno di diversi componenti addizionali, ad esempio i desktop environment, per dichiararsi come tale. Le varie distribuzioni Linux sono veri e propri sistemi operativi che vengono incontro alle specifiche esigenze di ciascun utente: privato, professionale o aziendale. Di recente, per esempio, abbiamo parlato delle migliori distribuzioni Linux immutabili.
Mentre il kernel macOS combina le caratteristiche di un kernel a microkernel (Mach) con quelle di un kernel monolitico (BSD), su Linux si sfrutta unicamente un kernel monolitico.
Cos’è un kernel monolitico
In un kernel monolitico, tutte le funzionalità del kernel, come la gestione della memoria, la gestione dei processi, i driver di dispositivo e il file system, sono eseguite nello spazio del kernel stesso come un singolo blocco di codice. Queste funzionalità condividono lo stesso spazio di memoria e possono chiamarsi a vicenda in modo diretto, senza dover passare attraverso interfacce di sistema complesse. L’approccio utilizzato rende il kernel monolitico efficiente in termini di prestazioni, poiché le chiamate di sistema e le comunicazioni tra le diverse parti del kernel possono avvenire rapidamente e direttamente.
Tuttavia, il kernel monolitico può essere più complesso da gestire e mantenere rispetto ad altri tipi di kernel, poiché tutte le funzionalità sono integrate in un’unica unità. Inoltre, un errore in una parte del kernel può influenzare l’intero sistema, rendendo il kernel monolitico potenzialmente meno robusto in determinate situazioni rispetto ad altri tipi di kernel, come i microkernel o i kernel ibridi.
Cosa hanno in comune Linux e macOS
macOS utilizza componenti UNIX e Linux è stato costruito come alternativa a UNIX. Qualcosa in comune, quindi, ce l’hanno i due sistemi operativi. Entrambe le piattaforme, ad esempio, forniscono accesso a comandi UNIX, Bash/Zsh e altre shell. La shell predefinita può essere modificata dall’utente secondo le sue specifiche preferenze.
Per il resto, l’ecosistema software si sono evoluti in maniera davvero esplosiva nel corso degli anni, procedendo ovviamente su binari completamente diversi.
Approccio proprietario contro codice aperto
macOS è e resta un sistema operativo proprietario: gli utenti, gli esperti, gli sviluppatori e qualunque altro soggetto non hanno accesso al codice sorgente del sistema operativo Apple.
Una parte “del tutto” è disponibile, ad esempio le librerie GNU. Ed è anche possibile mettere le mani sul codice del kernel XNU utilizzato nello sviluppo dei sistemi operativi macOS e iOS. Tuttavia, non è possibile riutilizzare il codice per sviluppare un clone di macOS da installare su qualunque macchina, indipendentemente dalla configurazione hardware utilizzata. In un altro articolo abbiamo visto le differenze tra open source e software libero.
Ovviamente, la trasparenza fornita dal modello utilizzo da Linux offre indiscutibilmente maggiori vantaggi. Se non altro, la possibilità di accedere al codice su Linux senza svolgere faticose attività di reverse engineering, peraltro invise ad Apple, permette di individuare e risolvere ancora più rapidamente eventuali bug e problemi di sicurezza.
Utilizzo di macOS e Linux: quali sistemi li supportano
Inutile dire che macOS è progettato per funzionare esclusivamente su sistemi desktop e laptop Apple. Gli sviluppatori di Fedora Asahi Remix sono riusciti nell’intento di portare sull’hardware della Mela un sistema operativo alternativo che, addirittura, offre ad esempio prestazioni migliori con OpenGL rispetto a macOS. Tutto merito di un certosino lavoro di reverse engineering e sullo sviluppo di codice ex novo.
Linux è utilizzato invece praticamente ovunque. Soprattutto sui sistemi server, ma anche sui dispositivi per l’Internet delle Cose (IoT), sui single-board computer, su desktop e notebook oltre che in posti che non potreste nemmeno immaginare.
macOS vs Linux: il capitolo “esperienza utente”
macOS offre, com’è noto, un’interfaccia utente piacevole. È visivamente accattivante con animazioni piacevoli e scelte grafiche azzeccate. L’esperienza d’uso è gradevole, è semplice ed è uniforme, senza soluzione di continuità, sull’intera piattaforma.
Con Linux, viceversa, si ha la possibilità di scegliere la distribuzione che più è adatta alle proprie specifiche necessità. Su server si tende a non utilizzare distro Linux dotate di interfaccia grafica, e tutto si riduce alla CLI (command-line interface), anche perché gran parte degli amministratori che creano un server Linux, vi accedono da remoto tramite SSH.
L’esperienza d’uso, in generale, può variare – anche di molto – in base alla distribuzione prescelta e quindi al desktop environment che la accompagna. Distribuzioni come Pop!_OS, Ubuntu, Zorin OS ed Elementary OS, sono note per l’interfaccia convincente e adatta anche a chi proviene da Windows.
Nel 2019, Torvalds aveva sollecitato la scelta di un desktop environment comune tra le varie distribuzioni, iniziativa che aveva come obiettivo quello di far decollare le “quote di mercato” di Linux in ambiente desktop. Ma Linux è contraddistinto dalla massima “libertà di scelta” per gli utenti quindi quella proposta è rapidamente caduta nel dimenticatoio.
Da un lato macOS offre invece scarse possibilità di personalizzazione mentre Linux fa la parte del leone quando si desidera regolarne ogni singolo aspetto.
Ecosistema software e package manager
Un sistema operativo come macOS offre un’esperienza nativa di qualità, con applicazioni esclusive o strumenti realizzati da Apple. L’App Store è ricco e contiene applicazioni in grado di soddisfare qualsiasi esigenza. Alcuni programmi sono a pagamento ed esistono sia soluzioni in abbonamento che applicazioni professionali con canone da versare “una tantum”.
Per gli utenti che vogliono progettare, modificare video, foto e gestire flussi di lavoro creativi, la suite software di macOS è già un’ottima. Strumenti gratuiti come iMovie e Keynote abbinati a software di classe premium quali Final Cut Pro, Affinity Designer e altri, assicurano un editing di primo livello.
Per la piattaforma Linux, ci sono tutta una serie di software open source con licenza permissiva, che riescono a soddisfare anche gli utenti più esigenti. Oltretutto, la forza di Linux sta nei suoi package manager ossia i gestori di pacchetti che aiutano a trovare, installare e rimuovere rapidamente il software. Gli utenti possono beneficiare di opzioni quali Flatpak, Snap, Synaptic e così via, già incluse nelle varie distro.
Non potendo considerare l’App Store alla stregua di un package manager, gli utenti di macOS non hanno nulla su cui fare affidamento per impostazione predefinita. Mentre adesso anche in Windows le alternative si sprecano: Scoop è uno dei migliori package manager per Windows.
Un’opzione come Homebrew, tuttavia, semplifica la vita agli utenti macOS. Si tratta di un gestore di pacchetti open source progettato per macOS e Linux: semplifica il processo di installazione di software aggiuntivo fornendo un modo semplice per scaricare, compilare e installare pacchetti software dal sorgente o da repository dedicati.
Come usare Homebrew su macOS
Per beneficiare dei vantaggi di Homebrew e installare il package manager su macOS, è possibile aprire una finestra del terminale e digitarvi ciò che segue:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Ad installazione conclusa, si può installare subito i pacchetti software che più interessa. Ad esempio, per installare il celeberrimo editor di testo nano, basta digitare quanto segue:
brew install nano
Homebrew scarica automaticamente il pacchetto “nano” e tutte le sue dipendenze, lo compilerà se necessario e lo installerà sul sistema. L’aggiornamento di qualunque pacchetto installato è fattibile con un unico comando: brew upgrade
La rimozione dei pacchetti, invece, funziona semplicemente così: brew uninstall nano
In questo caso, Homebrew disinstalla l’applicazione nano, precedentemente caricata sul sistema macOS.
Gli aggiornamenti del sistema operativo
Apple non condivide specifiche date per il ritiro degli aggiornamenti destinati al suo sistema operativo macOS. È capitato più volte che, in passato, le ultime versioni di macOS siano diventate improvvisamente incompatibili con i sistemi hardware immessi sul mercato da Apple prima di una certa data. Possiamo soltanto limitarci a fare una semplice considerazione: in passato, le precedenti versioni di macOS erano supportate, mediamente, per circa 7 anni; oggi il periodo di supporto sembra essere sceso a 5 anni.
D’altro canto, Linux offre molteplici opzioni: innanzi tutto non lascia indietro i sistemi più vecchi. Si trovano sempre distro leggere capaci di funzionare su hardware ormai datato. Anzi, sono una vera e propria manna dal cielo per coloro che desiderano continuare a utilizzare sistemi ancora performanti, ad esempio quando il supporto di una specifica versione di Windows finisce e quella successiva non è più supportata (leggasi Windows 10 e Windows 11).
Inoltre, la maggior parte delle più note distro Linux sono disponibili anche in edizione LTS (Long Term Support) che, diversamente rispetto ai rilasci “normali”, assicurano fino a 5 anni di aggiornamenti. Se si prende il caso di Ubuntu, c’è anche un piano di abbonamento previsto da Canonical che permette di continuare a ricevere aggiornamenti di sicurezza per 10 anni.
Requisiti hardware per eseguire macOS e Linux
Qui non c’è partita. Con meno di 800 euro è possibile configurare un fiammante sistema top di gamma basato su Linux con 16 GB e 1 TB di unità SSD. Di contro, le configurazioni laptop di base in casa Apple partono con 8 GB di memoria RAM e 256 di storage interno ma non costano meno di 1.200 euro.
Per non parlare del fatto che, ad esempio, 8 GB di RAM su un MacBook Pro M3 sono davvero pochi e le prestazioni, anche quelle di base, tendono a risentirne in maniera evidente.
Credit immagine in apertura: Copilot Designer.