Ciao, e benvenuto nella seconda puntata della settantesima stagione. Nella prima abbiamo detto che il sistema operativo è l'amministratore che spartisce una macchina scarsa fra tanti programmi. Ma sorge subito una domanda scomoda: chi gli dà l'autorità? Se il sistema operativo è un programma come gli altri, cosa gli permette di comandare, e cosa impedisce agli altri programmi di fare di testa loro? La risposta è la struttura più importante di tutte, quella su cui poggia il resto della stagione. C'è un confine, e divide il mondo in due.
Partiamo dai due mondi, perché il processore stesso li tiene separati. Il processore, il chip che esegue il codice, può funzionare in due modalità diverse. Una è la modalità privilegiata, dove il codice può fare tutto: parlare direttamente coi dispositivi, toccare qualunque zona di memoria, dare ordini alla macchina. L'altra è la modalità limitata, dove il codice può fare i suoi calcoli, ma non può toccare l'hardware né la memoria altrui. Non è una regola morale: è il silicio stesso che si rifiuta di eseguire certe istruzioni quando è in modalità limitata.
Vediamo chi abita ciascuno dei due mondi, perché è tutta lì la sicurezza. Nel mondo privilegiato vive un solo programma: il cuore del sistema operativo, il nucleo. È lui, e solo lui, ad avere le chiavi di tutto. Nel mondo limitato vivono tutti gli altri: il tuo editor, il browser, il gioco, il tuo codice. Girano in una specie di stanza protetta, con le pareti alzate, da cui non possono uscire per conto proprio. Questa divisione è ciò che rende un computer moderno affidabile: un programma qualunque, anche scritto male o cattivo di proposito, non può mandare in crash la macchina intera, perché semplicemente non ne ha il potere.
E qui arriva la domanda cruciale. Se un programma normale vive rinchiuso nella stanza limitata, come fa a fare qualcosa di utile? Salvare un file richiede di toccare il disco. Mandare un messaggio richiede la rete. Sono tutte cose che vivono nel mondo privilegiato, dietro il muro. La risposta è il concetto più importante di questa puntata, la chiave di volta di tutto: la chiamata di sistema. È l'unica porta ufficiale nel muro tra i due mondi. Il programma non scavalca il muro: bussa a quella porta, e chiede al nucleo di fare per lui la cosa che lui non può fare da solo.
Nota con cura come funziona questo passaggio, perché è più elegante di quanto sembri. Quando il tuo programma vuole salvare un file, non tocca il disco: prepara la richiesta e fa una chiamata di sistema. In quell'istante succede una cosa precisa: il controllo passa dal tuo programma al nucleo, e insieme il processore scatta dalla modalità limitata a quella privilegiata. Ora il nucleo, con i suoi poteri, controlla se la richiesta è lecita, e la esegue. Poi fa il percorso inverso: rimette il processore in modalità limitata e restituisce il controllo al tuo programma, con il risultato in mano. La porta si apre, entri accompagnato, fai la tua commissione, e vieni riaccompagnato fuori. Non resti mai solo dentro la stanza dei bottoni.
C'è una ragione profonda per cui la porta è una sola e sempre sorvegliata, ed è la stessa idea che governa la sicurezza ovunque. Se ci fossero mille modi per un programma di entrare nel mondo privilegiato, ci sarebbero mille modi per abusarne. Con una porta sola, il nucleo può controllare ogni singola richiesta: chi la fa, se ne ha diritto, se i dati sono validi. È il punto in cui il sistema operativo esercita davvero il suo ruolo di amministratore, perché è lì che può dire di no. Ogni volta che un programma vuole toccare il mondo reale, deve passare da quel controllo. Il muro non serve a tenere i programmi prigionieri: serve a proteggere tutti gli altri da ciascuno.
Voglio lasciarti con l'immagine che rende tutto chiaro, quella di un teatro. Il mondo limitato è il palcoscenico: lì recitano i programmi, ognuno la sua parte, sotto gli occhi del pubblico. Il mondo privilegiato è il dietro le quinte, dove ci sono le macchine sceniche, le luci, i comandi veri. Un attore non può andarsene dietro le quinte a manovrare i riflettori quando vuole: ci sono i tecnici per quello. Se gli serve un cambio di luce, lo chiede, e qualcuno dietro le quinte lo esegue. La chiamata di sistema è esattamente quella richiesta: il modo civile, e sicuro, con cui chi sta sul palco ottiene ciò che solo il retro può dare.
Per oggi ci fermiamo qui. Abbiamo trovato la struttura che regge tutto: un confine che divide la macchina in due mondi. Il processore stesso ha due modalità, una privilegiata che può fare tutto e una limitata che può solo calcolare. Nel mondo privilegiato vive un solo programma, il nucleo del sistema operativo; nel mondo limitato vivono tutti gli altri, chiusi in una stanza protetta da cui non possono uscire da soli. L'unica porta nel muro è la chiamata di sistema: il programma bussa, il nucleo verifica ed esegue, e il processore scatta di modalità e torna indietro. Una porta sola, sempre sorvegliata, è ciò che rende il tutto sicuro. Nella prossima puntata: il processo. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.