**DIFFERENZE TRA macOS E Linux: SCOPRIAMOLE INSIEME**
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É
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é…
# 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.
…