Menu
Coddy logo textTech

Cos'è un sistema operativo?

Un sistema operativo (SO) è il software che gestisce l'hardware di un computer ed esegue tutti gli altri programmi, dividendo tra loro processore, memoria e spazio di archiviazione e fornendo file, rete, input e output. Windows, macOS, Linux, Android e iOS sono sistemi operativi.

Di Kevin Spektor, Cofondatore e CTO

Aggiornato il 24 settembre 2026

Premi un tasto mentre è aperto un editor di testo. La tastiera invia un segnale elettrico, e un driver dentro il sistema operativo lo legge. Il sistema operativo capisce quale finestra è in primo piano, consegna il tasto a quel programma, e l'editor disegna la lettera. L'editor non parla mai con la tastiera. Salvare il file, riprodurre un suono e caricare una pagina web funzionano allo stesso modo: i programmi chiedono, e il sistema operativo fa il lavoro con l'hardware.

Cosa fa un sistema operativo

Un sistema operativo ha una manciata di compiti, e ogni programma del computer dipende da tutti:

  • Eseguire i programmi (gestione dei processi). Un portatile con 8 core di CPU può avere qualche centinaio di programmi e servizi in background in esecuzione. Lo scheduler del SO dà a ciascuno brevi turni su un core, cambiando molte volte al secondo, così sembrano girare tutti insieme.
  • Gestire la memoria. Ogni programma riceve il proprio spazio di indirizzi privato. Quando un programma legge memoria che non gli appartiene, il SO lo ferma; in C questo è il famoso segmentation fault.
  • Salvare i file. Il SO trasforma un disco, che memorizza solo blocchi numerati di byte, in cartelle e file con un nome, un caso da manuale di astrazione. Il formato si chiama file system: NTFS su Windows, APFS su macOS, ext4 sulla maggior parte dei sistemi Linux.
  • Parlare con l'hardware. I driver fanno da traduttori tra il SO e ogni dispositivo: scheda grafica, chip Wi-Fi, stampante, webcam.
  • Rete. Il SO implementa TCP/IP, così un programma può aprire una connessione verso un server senza sapere niente della scheda di rete.
  • Sicurezza e utenti. Account, password e permessi dei file decidono chi può leggere o modificare cosa.
  • L'interfaccia utente. Il desktop, le finestre e la barra delle applicazioni, oppure una shell testuale come Bash o PowerShell.

Il kernel e le chiamate di sistema

Il cuore di un sistema operativo è il kernel. Gira con il pieno controllo dell'hardware, mentre i programmi normali girano in una modalità limitata e non possono toccare direttamente i dispositivi. Quando un programma ha bisogno di qualcosa, fa una chiamata di sistema (system call): una richiesta al kernel come "apri questo file", "invia questi byte" o "avvia un nuovo processo".

Di solito non vedi le chiamate di sistema perché il tuo linguaggio le nasconde. open() e print() di Python finiscono in chiamate al kernel. Il modulo os ti permette di farle quasi direttamente:

L'ID del processo e il numero di core dipendono dalla macchina; l'ultima riga stampa sempre File size: 23 bytes. os.open restituisce un descrittore di file, un piccolo numero che il kernel usa per tenere traccia del file aperto, e os.write gli invia 23 byte. In C le stesse richieste sono quasi identiche, perché queste funzioni sono involucri sottili sopra le chiamate di sistema:

int fd = open("note.txt", O_WRONLY | O_CREAT | O_TRUNC, 0644);
write(fd, "saved by a system call\n", 23);
close(fd);

Su Linux puoi osservare ogni chiamata di sistema che un programma fa con strace python3 script.py.

Esempi e tipi di sistemi operativi

Sistema operativoDove giraKernel
Windows 11La maggior parte dei PC fissi e portatiliWindows NT
macOSComputer Mac di AppleXNU (Darwin)
Linux (Ubuntu, Fedora, Debian e altri)La maggior parte dei server e delle macchine cloud, alcuni desktopLinux
AndroidLa maggior parte degli smartphone nel mondoLinux
iOSiPhoneXNU (Darwin)
ChromeOSChromebookLinux

Oltre a questi sistemi di uso generale esistono i sistemi operativi real-time come FreeRTOS e Zephyr, che girano sui microcontrollori di elettrodomestici, sensori e macchine industriali e garantiscono una risposta entro un tempo fisso. Molti piccoli dispositivi usano sistemi embedded costruiti per un unico scopo.

La tabella mostra che uno stesso kernel può alimentare prodotti molto diversi. Android e ChromeOS usano entrambi il kernel Linux con il proprio software sopra, e iOS condivide il kernel con macOS.

Perché il sistema operativo conta quando programmi

Un programma compilato è costruito per un solo sistema operativo. Un .exe di Windows non gira in modo nativo su Linux, nemmeno sullo stesso computer, perché il formato del file e le chiamate di sistema sono diversi. Ecco perché le pagine di download offrono versioni separate, e perché esistono ambienti di runtime come la JVM, Node.js e CPython: vengono costruiti una volta per ogni sistema operativo così il tuo codice non deve esserlo. Vedi ambiente di runtime.

Qualche piccola differenza trapela comunque. Esegui questo codice e confrontalo con quello di un amico su un altro sistema:

Su Linux e macOS stampa:

Path separator: '/'
Line ending: '\n'
projects/notes/todo.txt

Su Windows il separatore è '\\' (una sola barra rovesciata), il fine riga è '\r\n', e il percorso diventa projects\notes\todo.txt. Usare os.path.join (o pathlib) invece di scrivere / a mano è ciò che fa funzionare uno script su tutti e tre.

Falsi miti comuni

  • "Linux è un sistema operativo." A rigore, Linux è un kernel. Una distribuzione Linux come Ubuntu aggiunge la shell, gli strumenti di sistema, un gestore di pacchetti e di solito un desktop per formare un sistema operativo completo. Nel linguaggio di tutti i giorni si chiamano entrambi Linux.
  • "Il BIOS fa parte del sistema operativo." Il firmware BIOS o UEFI sta sulla scheda madre. Controlla l'hardware e poi carica il sistema operativo dal disco, e a quel punto il suo compito principale è finito.
  • "Il desktop è il sistema operativo." Il desktop è un programma che gira sopra il kernel. I server di solito funzionano senza alcun desktop, controllati solo tramite una shell testuale.
  • "Le app parlano con l'hardware." I programmi normali non hanno il permesso di farlo. Ogni lettura di file, pacchetto di rete e pixel sullo schermo passa per il sistema operativo, ed è per questo che un'app che va in crash di solito non si porta dietro tutto il computer.

Cosa leggere dopo

Il sistema operativo è il livello più basso; l'ambiente di runtime sta tra esso e il tuo codice. La protezione della memoria è ciò che produce un segmentation fault, e la pagina sul byte spiega l'unità che il SO usa per file e memoria. Per controllare un sistema operativo dalla sua shell testuale, prova il corso sul terminale.

Domande frequenti

Un computer può funzionare senza sistema operativo?
Sì, ma solo i dispositivi semplici con un unico scopo. Un microcontrollore come quello di una scheda Arduino esegue un solo programma direttamente sull'hardware, senza alcun sistema operativo. Un computer di uso generale ne ha bisogno per eseguire più programmi, gestire i file e usare i driver del suo hardware.
Quali sono i 5 sistemi operativi più diffusi?
Windows, macOS e Linux sui computer, e Android e iOS su telefoni e tablet. Android ha il maggior numero di dispositivi al mondo, Windows domina su PC fissi e portatili, e Linux fa girare la maggior parte dei server e delle macchine cloud.
Quali sono i principali tipi di sistemi operativi?
I libri di testo li raggruppano in vari modi. Le categorie comuni sono desktop, mobile, server, real-time (che garantiscono una risposta entro un tempo fisso, come FreeRTOS), embedded (integrati nei dispositivi) e sistemi distribuiti che dividono il lavoro tra più computer. Gli elenchi più vecchi includono anche i sistemi batch e a condivisione di tempo (time-sharing).
Come faccio a sapere quale sistema operativo ho?
Su Windows, apri Impostazioni, poi Sistema, poi Informazioni sul sistema, oppure esegui winver. Su un Mac, apri il menu Apple e scegli Informazioni su questo Mac. Su Linux, esegui cat /etc/os-release in un terminale, e uname -r mostra la versione del kernel.
Cos'è un sistema operativo in parole semplici?
È il programma che fa funzionare il computer per conto di tutti gli altri programmi. Le app gli chiedono di salvare un file, mostrare una finestra o collegarsi a Internet, e lui fa il lavoro con l'hardware. È software, caricato dal disco all'accensione del computer.
Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA