← Tutti gli episodi
Copertina di I processi: i programmi in esecuzione
Stagione 16 · Episodio 009

I processi: i programmi in esecuzione

26 agosto 2026 5:12
0:00 5:12

Ciao, e benvenuto nella nona puntata della sedicesima stagione. Finora abbiamo parlato molto di file, che sono le cose ferme, immagazzinate sul disco. Oggi parliamo invece di ciò che si muove, di ciò che è vivo dentro la macchina: i programmi in esecuzione. Perché un programma fermo su disco è una cosa, ma un programma che sta effettivamente girando, facendo qualcosa in questo momento, è un'altra cosa, e ha un nome preciso: il processo. Oggi capiamo cosa sono i processi e come il sistema li governa.

Partiamo dalla distinzione fondamentale, che è più profonda di quanto sembri. Un programma, come file sul disco, è qualcosa di fermo e passivo: è come una ricetta scritta in un libro, un insieme di istruzioni che stanno lì, inerti, in attesa. Quando invece avvii quel programma, e comincia a girare davvero, nasce un processo: è la ricetta mentre viene effettivamente cucinata, le istruzioni che vengono realmente eseguite, passo dopo passo, in questo istante. Il programma è il potenziale, fermo; il processo è l'atto, vivo. Ogni volta che qualcosa gira sulla tua macchina, dal più piccolo comando al più grande servizio, è un processo in esecuzione.

Ora, ecco un fatto che sorprende sempre: in un computer, in ogni momento, girano tantissimi processi contemporaneamente, molti più di quanti immagini. Non solo i programmi che hai avviato tu, ma anche una moltitudine di processi di sistema che lavorano nell'ombra per far funzionare tutto: gestiscono la rete, tengono l'orario, sorvegliano l'hardware, e mille altre cose. Un sistema tipico ha in esecuzione decine o centinaia di processi nello stesso istante, un formicaio brulicante di attività, quasi tutta invisibile. Ciò che vedi in superficie è solo una piccola parte di tutto ciò che sta accadendo dentro la macchina in ogni momento.

E qui torna in gioco il sistema operativo, con uno dei suoi compiti più importanti, che riprende la seconda puntata. Se tanti processi vogliono girare insieme, ma il processore può fare veramente una cosa alla volta, o poche, come si fa? Il sistema operativo fa il giocoliere: dà a ogni processo un pezzetto di tempo del processore, a turno, passando rapidissimamente dall'uno all'altro, così in fretta che a noi sembra che girino tutti insieme. È come un cuoco solo che gestisce dieci pentole, dando a ciascuna un po' di attenzione a rotazione, tanto velocemente da tenerle tutte in cottura. Il sistema operativo orchestra questo balletto, decidendo a chi dare il processore e per quanto, tenendo in vita tanti processi su risorse limitate.

Un aspetto importante, che riprende sia i permessi sia i container, è che i processi sono tenuti separati e protetti l'uno dall'altro. Il sistema operativo fa in modo che ogni processo viva nella sua bolla, con la sua fetta di memoria, senza poter pasticciare con la memoria degli altri processi. Se un processo va in crisi e si blocca, gli altri continuano tranquilli, protetti dalla loro separazione. Ricordi i container di Docker, quelle bolle isolate? L'isolamento dei container si costruisce proprio sopra questa capacità di Linux di tenere separati i processi: i container sono, nel profondo, processi resi ancora più isolati. La separazione dei processi è un mattone su cui poggiano cose che abbiamo studiato.

Vediamo ora cosa puoi fare, tu, con i processi, perché è parte del lavoro quotidiano. Dalla riga di comando, puoi guardare quali processi stanno girando, come sbirciare l'elenco di tutto ciò che è vivo nella macchina in quel momento, con quante risorse ciascuno sta consumando. Puoi avviare nuovi processi, lanciando programmi. E puoi fermare un processo, dirgli di terminare, cosa utilissima quando qualcosa si è bloccato o sta consumando troppo e va interrotto. Osservare, avviare, fermare: sono le azioni di base con cui gestisci la vita dei programmi sulla tua macchina. Per chi amministra server, saper vedere cosa sta girando e intervenire sui processi è un'abilità quotidiana ed essenziale.

C'è un'ultima distinzione utile che voglio darti, perché è comodissima nella pratica: un processo può girare in primo piano oppure sullo sfondo. In primo piano significa che occupa la tua riga di comando, e tu aspetti che finisca prima di poter fare altro: è come una conversazione che ti tiene impegnato finché non si conclude. Sullo sfondo, invece, il processo va avanti per conto suo, silenziosamente, mentre tu continui a usare la riga di comando per altre cose: è come mettere qualcosa a cuocere e nel frattempo dedicarti ad altro. Questa capacità di mandare i processi sullo sfondo è ciò che ti permette, per esempio, di avviare un servizio che deve restare in funzione a lungo, e poi continuare a lavorare mentre quello gira.

Per oggi ci fermiamo qui. Un programma fermo su disco è passivo, come una ricetta; quando lo avvii e comincia a girare, nasce un processo, la ricetta in cottura, l'atto vivo. In ogni momento girano tantissimi processi insieme, molti invisibili, e il sistema operativo fa il giocoliere, dando a ciascuno un po' di processore a turno, così in fretta da sembrare simultanei. I processi sono tenuti separati e protetti, e su questa separazione poggia l'isolamento dei container. Puoi osservarli, avviarli e fermarli, e mandarli in primo piano o sullo sfondo. Nella prossima e ultima puntata tiriamo le somme e guardiamo lontano. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.