Ogni sviluppatore l'ha sentito, solitamente mormorato tra i denti alle due del mattino: "Funziona sulla mia macchina". Quando una build passa in locale ma fallisce in staging, incolpiamo istintivamente la versione del framework, una variabile d'ambiente mancante o lo stesso Docker. Più spesso di quanto ammettiamo, il colpevole è il sistema operativo. Percorsi dei file, chiamate di sistema, package manager e comportamento del kernel influenzano il modo in cui il codice viene eseguito. Scegliere il sistema operativo giusto non significa unirsi a una tribù. Significa rimuovere l'attrito tra il proprio laptop e la produzione.
Windows: Il generalista
Windows rimane la scelta predefinita per un semplice motivo: l'hardware funziona e basta. Colleghi una periferica e probabilmente esiste già un driver. Per gli sviluppatori che lavorano nell'ecosistema .NET, Visual Studio è ancora il gold standard. IntelliSense, gli strumenti di debugging e lo scaffolding dei progetti sembrano nativi perché sono stati costruiti per questa piattaforma.
Con Windows Subsystem for Linux 2, Microsoft ha colmato gran parte del divario tra Windows e i workflow basati su Unix. WSL2 esegue un vero kernel Linux all'interno di una VM utility leggera, il che significa che puoi invocare bash, usare apt ed eseguire Ubuntu senza dover ricorrere al dual-boot. L'integrazione è abbastanza fluida che molti sviluppatori dimenticano di non essere su un Linux nativo.
Ma l'astrazione ha dei limiti. Docker Desktop su Windows si affida a una VM Linux per il suo motore, e la traduzione del file system tra il kernel Windows NT e il container Linux introduce latenza. Le operazioni ad alto carico di I/O, come il montaggio di grandi directory node_modules o la compilazione all'interno di un volume, sono sensibilmente più lente rispetto all'esecuzione su Linux bare-metal. Anche gli aggiornamenti di Windows hanno l'abitudine di riavviare la macchina a metà di un compito, il che non è l'ideale quando sei immerso in una sessione di debugging.
Windows brilla per studenti, gamer e ingegneri che distribuiscono applicazioni .NET. Se hai bisogno di una macchina che faccia girare Steam dopo l'orario di lavoro e Visual Studio durante il giorno, questa è la scelta pratica.
Linux: Lo standard per i server
Se la produzione gira su Linux, sviluppare su Linux elimina le sorprese. Il sistema operativo è stato costruito per i server e le sue assunzioni di progettazione corrispondono a ciò che gli ambienti cloud si aspettano. La filosofia Unix di trattare tutto come un file significa che configurazione, dispositivi hardware e processi in esecuzione vivono tutti in qualche punto dell'albero del file system. Questa coerenza rende l'automazione semplice. Puoi scrivere script di deployment con bash, gestire i servizi con systemd e orchestrare i container senza dover tradurre tra due diverse architetture kernel.
Docker è stato costruito su primitive Linux. Namespace e cgroups sono nativi qui, quindi i container si avviano più velocemente e girano a una velocità più vicina al bare-metal rispetto ad altre piattaforme. L'overhead è minimo, i package manager sono maturi e puoi ridurre il sistema solo a ciò di cui hai bisogno. Un server Linux headless può girare per anni senza un riavvio.
Il compromesso è la rifinitura del desktop. Il supporto per il software commerciale è meno avanzato. Non troverai le app native di Adobe Creative Cloud e alcuni IDE proprietari o strumenti di collaborazione richiedono soluzioni alternative. La configurazione dell'hardware può richiedere pazienza. Schede Wi-Fi, adattatori Bluetooth e grafica ibrida a volte richiedono l'installazione manuale dei driver o modifiche ai moduli del kernel. I driver NVIDIA sono migliorati notevolmente, ma configurare correttamente CUDA richiede ancora la lettura di documentazione che presuppone che tu sappia muoverti nel terminale.
Ingegneri backend, professionisti DevOps e chiunque costruisca infrastrutture AI dovrebbero considerare Linux come la scelta predefinita. Quando il tuo ambiente di produzione esegue Ubuntu o RHEL, replicare tutto localmente fa risparmiare ore di debugging durante il deployment.
macOS: Unix raffinato
macOS si colloca in una via di mezzo che attira gli sviluppatori che desiderano un terminale che si comporti come Linux e una GUI che si comporti come un prodotto consumer. Sotto il cofano è un sistema operativo Unix certificato, il che significa che bash, zsh, make, ssh e git funzionano esattamente come ti aspetteresti su un server. Apple Silicon ha cambiato completamente i calcoli. I chip della serie M offrono prestazioni di classe desktop garantendo al contempo un'autonomia del laptop nell'intervallo tra le 10 e le 20 ore. Puoi compilare un progetto, eseguire uno stack locale e fare una videochiamata senza che le ventole si attivino.
Per gli sviluppatori mobile, macOS è imprescindibile. Xcode e il simulatore iOS girano solo su hardware Apple. L'ecosistema tende inoltre a favorire i workflow creativi e full-stack. I trackpad e i display sono eccellenti, e l'affidabilità della funzione sleep/wake significa che apri il coperchio e riprendi il lavoro istantaneamente.
Gli svantaggi sono il costo e la flessibilità. Si paga un sovrapprezzo per gli aggiornamenti di memoria e di archiviazione che sarebbero banali su un PC personalizzato o un ThinkPad. La gamma di hardware è limitata. Se hai bisogno di una GPU specifica per l'addestramento locale di modelli o di porte insolite per attrezzature di laboratorio, un Mac potrebbe non soddisfare le tue esigenze senza involucri esterni e dongle.
Sviluppatori full-stack, ingegneri iOS e fondatori di startup che danno valore alla portabilità spesso gravitano verso questa scelta. È una scelta costosa, ma che riduce al minimo gli attriti quotidiani.
Il sistema operativo è importante per l'IA?
Il modello in sé è indifferente. Un grande modello linguistico in esecuzione tramite Ollama, LM Studio o vLLM produce gli stessi token, indipendentemente dal fatto che il kernel sia stato compilato da Microsoft, Linus Torvalds o Apple. I tuoi strumenti contano molto più del tuo sistema operativo. Quando costruisci agenti IA, concentrati nel padroneggiare la gestione delle dipendenze di Python, i runtime di Node.js, Docker per ambienti riproducibili, le integrazioni API e la gestione della memoria per le finestre di contesto.
Detto questo, i sistemi di IA in produzione girano prevalentemente su Linux. I driver GPU per i datacenter di NVIDIA e il toolkit CUDA sono sviluppati e ottimizzati prioritariamente per Linux. Il sovraccarico di un desktop grafico viene eliminato, lasciando più VRAM e cicli di CPU per l'addestramento e l'inferenza. Se stai noleggiando potenza di calcolo in cloud, quasi certamente ti collegherai tramite SSH a un'istanza Linux. Per la sperimentazione locale, un MacBook con Apple Silicon è silenzioso ed efficiente dal punto di vista energetico, ma quando arriva il momento di addestrare a
