Ciao, e benvenuto nella terza puntata della settantesima stagione. Abbiamo il confine tra i due mondi e la porta che li collega. Ora entriamo nel primo, e forse più importante, degli oggetti che il sistema operativo inventa per gestire la macchina. È l'astrazione centrale, quella intorno a cui gira tutto il resto: il processo. Se capisci bene cos'è un processo, hai in mano metà del sistema operativo.
Partiamo da una distinzione che sembra un dettaglio e invece cambia tutto: la differenza tra un programma e un processo. Un programma è una cosa morta. È un file sul disco, una ricetta scritta, una sequenza di istruzioni che sta lì ferma. Un processo, invece, è quel programma quando prende vita, quando viene caricato ed eseguito. È la ricetta contro il piatto che stai cucinando davvero. Lo stesso programma può dare origine a tanti processi diversi: apri tre finestre dello stesso editor, e hai un programma solo sul disco, ma tre processi vivi, ognuno per conto suo.
Vediamo di cosa è fatto un processo, perché è più di un semplice codice in esecuzione. Un processo si porta dietro tutto il suo mondo. Ha la sua zona di memoria, dove tiene i dati su cui sta lavorando. Ha il suo punto esatto nell'esecuzione, cioè a che istruzione è arrivato. Ha lo stato dei suoi calcoli in corso, i valori che sta maneggiando in quell'istante. Ha la lista delle risorse che sta usando: quali file ha aperto, quali connessioni. Tutto questo insieme, questa fotografia completa del programma vivo, è il processo. Non è solo cosa sta facendo, è tutto ciò che gli serve per farlo. È questo insieme che il sistema operativo deve conoscere e custodire per ogni programma vivo.
E qui torna l'illusione della prima puntata, resa concreta. A ogni processo il sistema operativo fa credere una cosa meravigliosa e falsa: tu sei solo. Hai il processore tutto per te. Hai il tuo spazio di memoria, che nessun altro può vedere né toccare. È come se ognuno vivesse nel suo appartamento, con le porte chiuse, ignaro che nello stesso palazzo ci sono decine di altri inquilini che vivono la stessa identica illusione. Questa finzione ha un nome tecnico importante: isolamento. Ogni processo è isolato dagli altri, e questo è ciò che rende la macchina robusta.
Nota perché questo isolamento è un regalo enorme, non un dettaglio noioso. Immagina se non ci fosse. Un programma pieno di bug potrebbe scrivere per sbaglio nella memoria di un altro, e mandarlo in tilt. Un programma malevolo potrebbe spiare i dati di tutti gli altri, le tue password, i tuoi documenti. Basterebbe un solo programma difettoso per far crollare l'intero sistema, come una tessera che ne trascina mille. L'isolamento tra processi è il muro che impedisce tutto questo. Se un tuo programma va in crash, muore da solo, nel suo appartamento, senza portarsi dietro gli altri. È una delle ragioni per cui un computer moderno non si blocca tutto ogni volta che un'applicazione fa i capricci. Prova a ricordare i sistemi di trent'anni fa, dove un solo programma impazzito bastava a portarsi via tutto: quell'incubo è finito proprio grazie all'isolamento.
C'è un altro pezzo importante, perché i processi non sono isole del tutto mute: a volte devono collaborare. Il tuo browser che manda i dati a un altro programma, due parti di un'applicazione che si scambiano informazioni. Ma se ognuno è chiuso nel suo appartamento isolato, come parlano tra loro? Non sfondando i muri, che vanificherebbe tutto. Parlano attraverso canali ufficiali che il sistema operativo mette a disposizione, e sorveglia: cassette postali, tubi che collegano due stanze, bacheche condivise. È lo stesso principio della porta unica di prima. La comunicazione tra processi è permessa, ma sempre mediata, mai fatta scavalcando le pareti.
Voglio lasciarti con l'immagine che tiene insieme tutto, quella degli attori in camerino. Pensa al processo come a un attore che si prepara per la sua scena. Non è solo la battuta che dirà, il codice: è tutto il suo stato. Il costume che indossa, cioè i dati in memoria. Il punto del copione a cui è arrivato. Gli oggetti di scena che ha in mano. Se l'attore deve interrompersi e tornare più tardi, gli basta che qualcuno annoti tutto questo, per poterlo far riprendere esattamente da dove aveva lasciato. Quel qualcuno è il sistema operativo, e quell'annotazione è il segreto della prossima puntata, quando vedremo come un solo palcoscenico riesce a ospitare tanti attori insieme.
Per oggi ci fermiamo qui. Abbiamo incontrato l'astrazione centrale del sistema operativo: il processo. Un programma è una ricetta morta sul disco; un processo è quella ricetta viva, in esecuzione, e dallo stesso programma nascono tanti processi distinti. Un processo si porta dietro tutto il suo mondo: la sua memoria, il punto in cui è arrivato, lo stato dei calcoli, le risorse aperte. A ognuno il sistema operativo regala l'illusione di essere solo, con la macchina tutta sua, ed è l'isolamento a rendere la finzione sicura: un programma che crolla muore da solo, senza trascinare gli altri. Quando i processi devono parlarsi, lo fanno per canali ufficiali e sorvegliati. Nella prossima puntata: un palco, tanti attori. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.