giovedì 12 febbraio 2026

Corso Fondamenti di Informatica e Reti: 7 Il Web il Cloud la Sicurezza

🔐 7 Il Web, il Cloud e la Sicurezza

Differenza tra Internet e Web

Capire la differenza tra Internet e Web è come distinguere tra la rete autostradale e le auto che la percorrono. Internet è l’infrastruttura: cavi sottomarini, antenne, router, data center e protocolli che stabiliscono come i dispositivi si parlano tra loro. È una gigantesca rete di reti, nata negli anni ’70 per collegare università e centri di ricerca, poi allargata al mondo intero. Ogni volta che inviamo un messaggio, avviamo una videochiamata o ascoltiamo musica in streaming, i dati viaggiano a pacchetti lungo questa infrastruttura, passando di nodo in nodo, finché raggiungono la destinazione. Il viaggio è orchestrato da regole condivise, come l’IP per gli indirizzi e il TCP per assicurarsi che nulla vada perso per strada.

Il Web, invece, è un servizio che vive sopra Internet. È l’insieme di pagine e applicazioni raggiungibili tramite un browser, collegate tra loro da link, scritte con linguaggi come HTML, CSS e JavaScript, e consegnate al nostro schermo attraverso il protocollo HTTP. Possiamo immaginare il Web come il traffico di contenuti che scorre su quelle autostrade: articoli, video, mappe, negozi online. Internet potrebbe esistere senza Web, perché ospita anche email, chat, videogiochi online, trasferimenti di file e mille altri servizi; ma il Web senza Internet non avrebbe dove viaggiare. È interessante ricordare che Internet ha radici più antiche, mentre il Web è un’idea relativamente recente, proposta nel 1989 da Tim Berners-Lee al CERN per rendere semplice la condivisione di documenti tra scienziati: un’idea che ha cambiato il modo in cui troviamo informazioni e interagiamo ogni giorno.

Per capire cosa accade quando digitiamo un indirizzo, proviamo a seguire il percorso di una singola pagina. Scriviamo nel browser un URL: il computer chiede a un sistema chiamato DNS di tradurre quel nome in un indirizzo numerico comprensibile alla rete. Ottenuto l’indirizzo, invia una richiesta al server che ospita il sito; il server risponde con il codice della pagina e con le istruzioni su dove prendere immagini, fogli di stile, script. Il browser, come un bravo regista, mette insieme tutti i pezzi e ce li mostra. Se la connessione è protetta, tutto avviene all’interno di un canale cifrato, invisibile a curiosi e intercettatori.

Cos’è il Cloud Computing

Quando si parla di “cloud”, si pensa a qualcosa di impalpabile; in realtà il cloud è estremamente concreto: sono computer veri, piazzati in grandi data center sparsi per il mondo, che possiamo usare a distanza attraverso Internet. È come avere un ufficio in affitto sempre aperto, senza dover comprare scrivanie, server, condizionatori e gruppi di continuità. Possiamo caricare file, eseguire programmi, creare database, fare copie di sicurezza e far girare applicazioni senza possedere nulla in casa o in azienda.

Le forme in cui il cloud si presenta sono diverse, anche se l’idea di fondo è sempre la stessa: usare risorse informatiche “a consumo”, pagando solo quello che serve. Quando serve soprattutto potenza di calcolo o spazio disco, parliamo di infrastruttura come servizio: macchine virtuali, reti, firewall, dischi, tutti configurabili da un pannello o da un’API. Se invece vogliamo concentrarci sullo sviluppo di un’app senza occuparci del sistema operativo o dell’aggiornamento dei server, entriamo nel mondo delle piattaforme come servizio, pronto all’uso per programmatori e team tecnici. Infine, quando quello che ci interessa è semplicemente un programma disponibile via web – una casella di posta, un gestionale, una suite di produttività – allora stiamo usando software come servizio. A queste tre categorie si affiancano modelli più recenti, come il “serverless”, dove addirittura scriviamo solo la funzione da eseguire e lasciamo che il provider la faccia partire automaticamente quando serve, e l’uso di container, che imballano applicazioni e dipendenze per spostarle in modo rapido e coerente da un ambiente all’altro.

Naturalmente non esiste un solo modo di “stare nel cloud”. Alcune realtà scelgono servizi pubblici accessibili a chiunque sottoscriva un contratto; altre, per motivi di riservatezza o regolatori, allestiscono un cloud privato sui propri server; molte adottano soluzioni ibride o distribuite su più fornitori per bilanciare costi, prestazioni e continuità di servizio. A convincere sono la flessibilità e la scalabilità: se un giorno un negozio online viene travolto da migliaia di clienti, può chiedere al cloud più risorse in pochi minuti, senza tempi morti né investimenti iniziali. A frenare, invece, sono le preoccupazioni sulla privacy, il timore di legarsi troppo a un fornitore, e il rischio di pagare più del previsto se non si tiene sotto controllo l’uso delle risorse. La prudenza suggerisce sempre un approccio consapevole: capire dove finiranno i dati, in quali Paesi saranno conservati, come saranno protetti, e chi potrà accedervi.

Per immaginare un caso concreto, pensiamo a un piccolo studio di grafica che lavora con file pesantissimi. Prima, ogni computer aveva dischi pieni e lentissimi scambi via chiavetta; oggi i progetti vivono in uno spazio cloud condiviso, accessibile dallo studio e da casa. Le versioni dei file sono tracciate automaticamente, gli errori si correggono recuperando la copia di ieri, e un nuovo collega può iniziare in mezz’ora senza installare nulla. La tecnologia è la stessa, ma l’esperienza cambia radicalmente.

Browser, URL e la differenza tra HTTP e HTTPS

Il nostro compagno di viaggio nel Web è il browser. È lui che traduce un indirizzo in una pagina leggibile, che gestisce le nostre schede, che ricorda le password (quando glielo chiediamo) e che, dietro le quinte, rispetta regole e protocolli per parlare con i server. L’indirizzo che digitiamo, l’URL, è come un indirizzo postale molto preciso: indica il “protocollo” da usare, il nome del sito, e spesso un percorso interno. Se leggiamo attentamente un URL, possiamo capire molte cose: se inizia con “http” o “https”, se stiamo andando davvero sul sito che pensiamo, se ci sono parametri aggiunti alla fine che cambiano il contenuto mostrato.

La differenza tra HTTP e HTTPS è cruciale. Con HTTP i dati viaggiano in chiaro, come se spedissimo una cartolina leggibile da chiunque la intercetti. Con HTTPS, invece, la comunicazione è cifrata grazie a un sistema chiamato TLS: prima di scambiare dati, browser e server si accordano su chiavi segrete, e da quel momento in poi tutto è illeggibile per terzi. Il lucchetto vicino all’indirizzo non è un vezzo grafico: segnala che la connessione è protetta e che un certificato digitale, emesso da un’Autorità fidata, garantisce l’identità del sito. Non significa che il sito sia “buono” in assoluto, ma ci dice che stiamo parlando con chi dichiara di essere, e che nessuno può mettersi in mezzo per rubare informazioni.

Se ci è mai capitato di vedere un “404 pagina non trovata” o un “500 errore del server”, abbiamo toccato con mano che il Web si regge su convenzioni e codici precisi, e che a volte qualcosa si inceppa. Anche questi dettagli, apparentemente aridi, diventano utili quando vogliamo navigare con consapevolezza: un indirizzo scritto in modo strano, un lucchetto assente su una pagina che ci chiede la carta di credito, un avviso del browser che segnala contenuti “misti”, sono campanelli d’allarme che è bene non ignorare.

Sicurezza: backup, crittografia e autenticazione

La sicurezza digitale parte da un’idea semplice: accettare che gli imprevisti esistono e prepararsi in anticipo. Il backup è il primo mattone. Conservare una copia dei dati in un luogo diverso da quello in cui lavoriamo è come tenere le chiavi di riserva in una tasca separata: se perdiamo il telefono, se un ransomware blocca il computer, se un disco si guasta all’improvviso, non perdiamo tutto. Molti seguono una regola pratica – tre copie dei dati, su due supporti diversi, con almeno una copia “offline” o in un altro luogo – perché gli incidenti non arrivano mai annunciandosi, e un backup collegato al computer al momento sbagliato può essere danneggiato insieme al resto. I servizi cloud aiutano anche qui, offrendo versioni precedenti dei file, cestini recuperabili per giorni, e “istantanee” di interi sistemi.

La crittografia è l’altro pilastro. Quando è “in transito”, protegge i dati mentre viaggiano; quando è “a riposo”, li rende illeggibili anche se qualcuno mette le mani fisicamente sul dispositivo. Sul telefono e sul portatile possiamo attivare la cifratura del disco, in molti servizi cloud è attiva di default, e nelle comunicazioni moderne – messaggistica, email cifrata, videoconferenze – è ormai la regola. Non serve conoscere la matematica che c’è dietro per beneficiarne: basta accertarsi che sia attiva e custodire con cura le chiavi o le password che la sbloccano.

Poi c’è l’autenticazione, che risponde a una domanda antichissima: “sei davvero tu?”. Per anni ci siamo affidati solo alle password, con risultati altalenanti, perché la memoria umana e l’immaginazione non sono sempre all’altezza. Oggi possiamo affiancare alla password una seconda prova, come un codice temporaneo generato da un’app o una chiave fisica che si collega al telefono. Questo semplice gesto scoraggia la stragrande maggioranza degli attacchi automatizzati: anche se qualcuno indovina o ruba la nostra password, senza il secondo fattore resta fuori. È un’abitudine da prendere soprattutto sugli account più importanti, come la posta principale, il cloud con le foto della famiglia o l’home banking. Aggiungendo un gestore di password per creare e ricordare credenziali robuste e diverse per ogni servizio, riduciamo ulteriormente il rischio di guai.

Rischi da conoscere per difendersi meglio

Molte minacce digitali non passano dalla tecnologia, ma dalle persone. Il phishing è l’esempio più noto: un messaggio che imita la nostra banca o un corriere e ci chiede di “verificare” credenziali o pagamenti. Funziona perché fa leva su fretta e disattenzione. La difesa più efficace è rallentare: leggere con cura il mittente e l’indirizzo del link, evitare di cliccare da email non richieste, arrivare sul sito digitando l’indirizzo a mano o passando dall’app ufficiale. Altre varianti usano SMS o telefonate registrate, con lo stesso obiettivo: spingerci a rivelare informazioni.

I malware sono l’altra grande famiglia di pericoli. Alcuni rubano dati in silenzio, altri mostrano pubblicità indesiderate, i più pericolosi cifrano i file e chiedono un riscatto per sbloccarli. Di solito entrano in scena attraverso allegati insidiosi, siti compromessi o software scaricati da fonti non affidabili. Tenere aggiornati sistema e programmi, usare solo store ufficiali, attivare l’antivirus integrato e non disattivarlo “perché dà fastidio”, sono piccole accortezze che fanno la differenza. Anche le reti Wi-Fi pubbliche nascondono insidie: se navighiamo senza HTTPS o ci colleghiamo a reti con nomi ingannevoli, qualcuno nelle vicinanze potrebbe intercettare il traffico. In questi casi una VPN aziendale o, più semplicemente, l’uso della connessione dati del telefono come hotspot possono dare una protezione in più.

Un esempio concreto aiuta a mettere insieme i pezzi. Immaginiamo di ricevere una mail dal “servizio clienti” del nostro cloud fotografico: c’è scritto che l’account verrà chiuso in 24 ore se non confermiamo l’accesso. Il link porta a una pagina perfettamente identica a quella originale, ma l’indirizzo in alto contiene un nome di dominio lievemente diverso. In un momento di distrazione potremmo inserire la password, regalando l’accesso a chi ha messo in piedi l’inganno. Se però abbiamo attivato l’autenticazione a due fattori, chi tenta l’accesso non potrà completarlo; se abbiamo usato un gestore di password, questo non compila nulla perché “non riconosce” il sito, e ci insospettiamo; se infine controlliamo il lucchetto e il certificato, notiamo che l’emittente non è quello abituale. Tre semplici barriere che, sommate, trasformano un rischio concreto in un fastidio passeggero.

Laboratori e attività che allenano alla consapevolezza

Molti concetti diventano chiari quando li proviamo. Una prima attività utile è “leggere” consapevolmente un sito. Apriamo, ad esempio, l’enciclopedia online più famosa e osserviamo con calma l’indirizzo, il lucchetto e le informazioni sul certificato. Scopriamo chi ha emesso il certificato, per quale nome di dominio è valido e per quanto tempo. Notiamo che tutte le pagine, anche quelle che non richiedono login, sono servite in HTTPS: è una scelta che protegge comunque privacy e integrità dei contenuti. Esploriamo poi la struttura dell’indirizzo, cosa cambia quando cerchiamo qualcosa, come il browser ci segnala reindirizzamenti o errori. Questo semplice esercizio, ripetuto su siti diversi, affina il nostro occhio e ci rende più difficili da ingannare.

Un secondo allenamento riguarda le password. Possiamo divertirci a costruirne una debole, una media e una forte, e poi riflettere sul perché la prima sia facile da indovinare e l’ultima no. Una sequenza come “estate2024” è immediata da ricordare ma prevedibile; una frase trasformata con qualche trucco mnemonico – ad esempio prendendo le iniziali di un verso che ci piace, alternando maiuscole, aggiungendo un segno e un numero – diventa più lunga e resistente senza essere impossibile da memorizzare. Se poi affidiamo a un gestore la cura delle credenziali e attiviamo il secondo fattore sugli account principali, passiamo dal “speriamo bene” al “ho fatto tutto quello che serve”.

Infine, un gioco di riconoscimento del phishing può essere rivelatore. Raccogliamo qualche esempio di messaggi sospetti e proviamo a individuare gli indizi: il mittente con dominio bizzarro, il tono minaccioso o frettoloso, gli errori grammaticali, il link che porta a un indirizzo diverso da quello dichiarato, l’allegato che ci invita a “abilitare macro”. Dopo pochi tentativi, i pattern si ripetono e diventiamo più rapidi nel dirci: “meglio controllare due volte”.

Un passo indietro: come siamo arrivati qui

Il Web non è nato maturo. All’inizio era soprattutto testo e link blu, poi sono arrivati immagini, fogli di stile, script, interattività. I primi browser hanno lasciato il posto a nuove generazioni, si sono affermati i motori di ricerca, è nata l’idea dei social network. In parallelo, le aziende hanno capito che non aveva senso, per tutte, costruire e mantenere da sole l’hardware necessario a stare online: meglio usare infrastrutture condivise, pagandole a consumo. Da qui la crescita del cloud, spinta anche dalla diffusione dei dispositivi mobili e dalla necessità di lavorare ovunque. Oggi molte applicazioni moderne sono una somma di piccoli pezzi cooperanti, chiamati microservizi, che parlano tra loro con API e che possono essere aggiornati senza fermare l’intero sistema. Sullo sfondo, la rete è diventata più veloce, più capillare e, grazie alla cifratura ormai di default, anche più sicura.

Che cosa c’è dietro un servizio cloud ben fatto

Dietro l’interfaccia amichevole di un servizio cloud c’è un’architettura complessa. Una parte “front-end” si occupa di ciò che vediamo nel browser o nell’app; una parte “back-end” gestisce i dati, le code di lavoro, i motori di ricerca interni, le autorizzazioni. In mezzo ci sono bilanciatori che distribuiscono il traffico, meccanismi di cache che accelerano le risposte, reti di consegna dei contenuti che portano immagini e video più vicino a chi li scarica. Le aziende più attente progettano pensando ai guasti come a eventi normali: duplicano i componenti, li distribuiscono in più “zone” geografiche, automatizzano i ripristini. E quando si parla di dati personali o sensibili, si aggiunge un altro strato di responsabilità: capire in quale Paese si trovano i server, quali regole si applicano, come rispondere a una richiesta di accesso o cancellazione. Il motto implicito è “fidarsi, ma verificare”: il provider fa molto, ma il cliente conserva sempre una quota di responsabilità su come configura, protegge e usa i servizi.

Strumenti e pratiche di sicurezza che fanno la differenza

Nel mondo aziendale si sente parlare di firewall, antivirus, sistemi di rilevamento intrusioni, VPN, monitoraggio degli eventi. Tradotto per tutti, si tratta di barriere e sensori: porte che lasciano entrare solo chi deve, scudi che fermano programmi sospetti, linee protette per collegarsi da fuori come se fossimo in ufficio, registri che annotano ogni evento importante per poter indagare se qualcosa va storto. Negli ultimi anni si è diffuso anche il principio dello “zero trust”: invece di fidarsi automaticamente di ciò che è “dentro” e diffidare solo di ciò che è “fuori”, si verifica ogni accesso, ogni volta, con il minimo indispensabile di permessi. È un modo di pensare più attento, che rispecchia la realtà di dispositivi mobili, lavoratori da remoto e servizi distribuiti.

Sul piano personale, le buone abitudini contano più di qualunque acronimo. Aggiornare regolarmente il telefono e il computer evita che vecchi difetti rimangano aperti. Scaricare app solo dagli store ufficiali riduce drasticamente i rischi. Fare attenzione ai link, soprattutto quando arrivano inattesi, è un riflesso che si acquisisce. Programmare un piccolo “rituale” di backup settimanale o mensile ci mette al riparo dagli imprevisti. E quando condividiamo un dispositivo con la famiglia, parlare di queste cose apertamente, senza allarmismi, aiuta tutti a muoversi con più sicurezza.

Che cosa ci portiamo a casa

Alla fine, Internet e Web sono strumenti straordinari, e il cloud è un moltiplicatore di possibilità. Conoscere come funzionano – senza per forza diventare tecnici – ci mette nelle condizioni di scegliere e di difenderci. Sapere che il lucchetto dell’HTTPS non rende “buono” un sito, ma rende privata la conversazione; sapere che un backup scollegato è un salvavita silenzioso; sapere che una seconda prova accanto alla password zittisce tante trappole: sono dettagli che cambiano la quotidianità. È un percorso di consapevolezza, non una gara a chi ne sa di più. E come ogni percorso, procede per piccoli passi: la prima volta che controlliamo l’URL con calma, la prima volta che recuperiamo una versione precedente di un file grazie al cloud, la prima volta che riconosciamo un finto messaggio e lo cestiniamo con un sorriso, capiamo che la tecnologia può essere davvero al nostro servizio.


mercoledì 11 febbraio 2026

Corso Fondamenti di Informatica e Reti: 6 Reti di computer e Internet


6 Reti di computer e Internet

Introduzione

Prova a pensare alla vita quotidiana senza reti informatiche: niente messaggi WhatsApp, niente musica in streaming, niente ricerche su Google né mappe che ci guidano per strada. È difficile persino immaginarlo, vero? Questo perché le reti sono diventate l’infrastruttura invisibile della civiltà digitale.
Eppure, non sono qualcosa di “magico”: dietro a quel semplice gesto di cliccare un link o avviare una chiamata, c’è un complesso universo di regole, tecnologie e meccanismi matematici.

Studiare le reti significa scoprire questo mondo sotterraneo, capirne i principi e – soprattutto – acquisire la capacità di guardare la tecnologia con occhi nuovi, consapevoli. È un po’ come smettere di essere semplici passeggeri di un treno per diventare macchinisti: non solo si viaggia, ma si conosce il perché e il come il viaggio è possibile.

1. Cos’è una rete di computer

Una rete è, in sostanza, un insieme di dispositivi interconnessi. Non parliamo solo di computer: smartphone, stampanti, server, telecamere di sorveglianza, smart TV, sensori IoT… persino elettrodomestici come frigoriferi e lavatrici ormai fanno parte della rete.

Immaginala come una città:

  • i dispositivi sono gli abitanti,
  • i cavi e i segnali radio sono le strade,
  • i protocolli sono il codice della strada,
  • e i router e switch sono i semafori e gli incroci intelligenti che regolano il traffico.

Le reti possono essere cablate, con fili di rame o fibra ottica, oppure wireless, dove i dati viaggiano nell’aria sotto forma di onde radio. La fibra ottica, in particolare, è un piccolo miracolo della fisica: i dati viaggiano come impulsi di luce che rimbalzano all’interno di un sottilissimo filo di vetro, raggiungendo velocità vicine a quella della luce.

👉 Esempio pratico: quando invii una foto via Wi-Fi a un amico seduto accanto a te, quella foto non “salta” direttamente da un telefono all’altro. Prima viene suddivisa in pacchetti, ciascuno con una sua etichetta di destinazione, poi attraversa il router di casa (che sa come instradarli) e infine arriva al dispositivo corretto, dove i pacchetti vengono ricomposti come pezzi di un puzzle.

2. Tipologie di rete

LAN – reti locali

Le LAN (Local Area Network) sono reti di piccole dimensioni. Immagina la rete della tua scuola: ogni aula ha dei computer, tutti collegati tra loro e a un server centrale. Le LAN sono veloci (anche oltre 1 Gbps con gli standard moderni) e sicure perché racchiuse in un ambiente ristretto.

WAN – reti geografiche

Le WAN (Wide Area Network) collegano intere città o nazioni. Le dorsali in fibra ottica transoceanica, lunghe migliaia di chilometri, sono l’ossatura di Internet. Curiosità: molti non sanno che il 99% del traffico Internet mondiale viaggia in cavi sottomarini, non via satellite.

WLAN – reti locali wireless

Le WLAN sono LAN senza fili, basate sul Wi-Fi. Qui entra in gioco la fisica delle onde radio: la frequenza (2,4 GHz o 5 GHz) determina quanta distanza si copre e a che velocità. Con Wi-Fi 6 si possono superare i 9 Gbps in condizioni ottimali.

Topologie di rete

La topologia è la forma con cui i dispositivi si collegano.

  • A stella → un nodo centrale gestisce tutto.
  • A bus → un unico cavo, condiviso da tutti.
  • Ad anello → i dati passano di mano in mano.
  • A maglia (mesh) → ogni nodo può parlarsi direttamente con molti altri.

👉 Formula: per calcolare i collegamenti necessari in una rete mesh completa:

L = \frac{n(n-1)}{2}

3. I protagonisti della rete

Ogni rete è popolata da dispositivi con ruoli precisi:

  • Modem → il “traduttore”: trasforma i segnali digitali in segnali adatti al mezzo fisico (rame, fibra, radio).
  • Router → il “navigatore”: legge gli indirizzi IP e sceglie la strada migliore per ciascun pacchetto.
  • Switch → il “vigile urbano”: consegna i pacchetti solo al dispositivo corretto, riducendo collisioni.
  • Access Point → l’“antenna radio”: estende la rete wireless.
  • NIC (Network Interface Card) → la “carta d’identità”: permette a ogni dispositivo di entrare nella rete.

4. Indirizzi, nomi e protocolli

Come nella vita reale, anche in rete serve un indirizzo univoco.

Indirizzi IP

  • IPv4 → 32 bit, circa 4 miliardi di indirizzi (ormai quasi esauriti).
  • IPv6 → 128 bit, un numero talmente grande da poter assegnare miliardi di indirizzi a ogni granello di sabbia della Terra!

Subnet mask

Permette di dividere una rete grande in sottoreti più piccole.
Esempio: IP 192.168.1.10 con subnet 255.255.255.0 → la rete è 192.168.1.0, l’host è .10.

DNS

Senza il DNS, dovremmo digitare IP numerici anziché nomi di dominio. È un sistema gerarchico e distribuito: i server root sono i “capitani” che conoscono i percorsi verso ogni dominio.

Protocolli

I protocolli sono lingue condivise.

  • IP → spedisce pacchetti.
  • TCP → garantisce ordine e affidabilità.
  • UDP → veloce, ma senza controlli.
  • HTTP/HTTPS → navigazione web.
  • SMTP/IMAP/POP3 → email.
  • FTP/SFTP → trasferimento file.

👉 Curiosità: il modello TCP/IP nasce negli anni ’70, finanziato dal Dipartimento della Difesa USA per garantire comunicazioni resistenti anche in caso di guasto di parti della rete.

5. Il modello client-server

Ogni volta che digiti un URL, entri nel modello client-server.
Il client (tuo browser) invia una richiesta, il server (un computer remoto, spesso in un data center) elabora e risponde.

Dietro quel semplice gesto, avviene un percorso intricato:

  1. Risoluzione del nome tramite DNS.
  2. Instradamento dei pacchetti attraverso router e dorsali.
  3. Riassemblaggio sul tuo dispositivo.
  4. Visualizzazione finale nel browser.

Conclusione

Studiare le reti è come esplorare il sistema nervoso del mondo moderno. Ogni pacchetto, ogni protocollo, ogni router è una sinapsi tecnologica che collega persone, aziende e nazioni.

Dietro la semplicità di un clic si nasconde un’opera ingegneristica colossale, frutto di decenni di ricerca e collaborazione internazionale. Comprenderla non è solo questione di tecnica: è imparare a leggere la realtà digitale in cui siamo immersi, con uno sguardo critico e consapevole.


martedì 10 febbraio 2026

Corso Fondamenti di Informatica e Reti: 5 Sistemi operativi e gestione risorse

 

5 Sistemi Operativi e Gestione delle Risorse

Un sistema operativo (SO o OS dall’inglese Operating System) è il cuore del computer, il “direttore d’orchestra” che coordina CPU, memoria, dispositivi e programmi. Senza di esso, un computer sarebbe soltanto un insieme di componenti hardware incapaci di dialogare tra loro o con l’utente. Il sistema operativo svolge funzioni fondamentali come la gestione dei processi, della memoria, dei file e delle periferiche, fornendo un ambiente stabile e sicuro in cui i programmi possono funzionare senza interferire l’uno con l’altro.

1. Perché esiste un sistema operativo

Immagina di voler scrivere un documento mentre contemporaneamente ascolti musica e navighi sul web. Senza un SO, dovresti gestire manualmente ogni risorsa: dire alla CPU quando passare da un programma all’altro, decidere dove salvare i dati in RAM, comunicare direttamente con ogni dispositivo. Il sistema operativo automatizza tutto questo, orchestrando le risorse e permettendo agli utenti di concentrarsi sui propri compiti.

Il SO si occupa di creare, sospendere e terminare programmi (i processi), assegna memoria e spazio su disco, dialoga con periferiche come stampanti, tastiere e GPU tramite i driver, organizza i dati in file e cartelle, e garantisce sicurezza tramite permessi e gestione utenti. Inoltre, fornisce interfacce diverse: le GUI, cioè le interfacce grafiche con finestre e icone, e le CLI, interfacce testuali precise e automatizzabili tramite comandi.

2. Processi, thread e il tempo del computer

Un processo è un programma in esecuzione con il suo stato interno: registri della CPU, memoria utilizzata e risorse aperte. All’interno di un processo, i thread rappresentano flussi di esecuzione separati ma condividono la stessa memoria.

Ogni processo passa attraverso vari stati: Nuovo, quando viene creato; Pronto, in attesa della CPU; In esecuzione, quando sta usando la CPU; Attesa I/O, quando aspetta il completamento di un’operazione di input/output; infine Terminato, quando ha completato il lavoro. Tutte queste informazioni sono conservate nel Process Control Block (PCB), mentre il context switch è il passaggio della CPU da un processo all’altro, un’operazione necessaria ma che richiede tempo.

Scheduling dei processi

Il sistema operativo deve decidere quale processo eseguire in ogni istante. Esistono diversi metodi:

  • FCFS (First Come First Served): il primo processo arrivato è il primo a essere eseguito. È semplice ma può generare lunghe attese.
  • Round Robin: ogni processo riceve un intervallo di tempo fisso, il quantum, e poi passa al successivo. È ideale per interattività e multitasking.
  • Priorità: processi più importanti eseguono prima; per evitare che i processi meno importanti restino bloccati a lungo (starvation) si può applicare l’aging, cioè aumentare progressivamente la priorità dei processi in attesa.

Concorrenza e sincronizzazione

Quando più thread accedono a dati condivisi, possono verificarsi gare di corsa (race conditions). Per evitarle si usano strumenti come mutex (blocchi), semafori e monitor, che regolano l’accesso alle risorse.
Un caso estremo è il deadlock, in cui più processi rimangono bloccati in attesa reciproca di risorse. Le condizioni che lo causano sono quattro: mutua esclusione, hold-and-wait, non-preemption e attesa circolare. Il SO può prevenire, evitare o rilevare e recuperare da deadlock.

3. La memoria del computer: RAM, cache e pagine

La memoria è il luogo dove il computer conserva temporaneamente i dati e i programmi in esecuzione. Possiamo immaginarla come una scrivania: più grande e organizzata è, più agevolmente possiamo lavorare. La memoria non è unica: esiste una gerarchia basata su velocità e vicinanza alla CPU:

  • Registri della CPU: piccolissimi spazi interni alla CPU stessa, usati per calcoli immediati. Sono ultraveloce, ma molto limitati in dimensione.
  • Cache (L1/L2/L3): memoria interna più ampia dei registri, ma sempre veloce. Serve per memorizzare dati e istruzioni usati di frequente, così da non doverli richiamare dalla RAM ogni volta.
  • RAM (Random Access Memory): memoria principale del computer. Qui risiedono i programmi attivi e i dati che la CPU deve usare subito. La RAM è volatile, cioè si svuota quando spegni il computer.
  • Disco/SSD: memoria permanente, più lenta, dove si salvano file e programmi a lungo termine.

Memoria virtuale

Ogni processo “vede” uno spazio di memoria continuo e proprio, chiamato spazio di indirizzamento virtuale, anche se in realtà i dati possono essere sparsi tra RAM e disco. Questo permette di far sembrare a ciascun programma di avere più memoria di quella fisica disponibile. Quando un programma accede a una parte della memoria non presente in RAM, si verifica un page fault: il SO carica quella pagina dal disco nella RAM.

Parafrasi: page fault = il computer “si accorge” che il dato richiesto non è in scrivania (RAM), quindi lo va a prendere dall’archivio (disco).

La gestione della memoria avviene con pagine (blocchi di memoria di dimensione fissa, ad esempio 4 KB) e frame (spazi in RAM che accolgono le pagine). Per velocizzare, la CPU usa una cache speciale chiamata TLB (Translation Lookaside Buffer), che ricorda dove si trovano le pagine. La memoria è protetta: ogni processo non può leggere o scrivere in aree di altri processi, evitando crash e violazioni.

Frammentazione: problema comune della memoria. Può essere:

  • Interna: un blocco è più grande del necessario e il resto rimane inutilizzato.
  • Esterna: piccoli spazi vuoti sparsi tra blocchi occupati, difficile da riutilizzare.

4. File system: organizzare i dati

Un file è un insieme di informazioni, di solito sequenze di byte, con associate alcune proprietà chiamate metadati, ad esempio:

  • dimensione
  • data di creazione/modifica
  • permessi
  • proprietario

Le cartelle (directory) contengono file e altre cartelle, permettendo di organizzare i dati. Il percorso di un file può essere assoluto (dalla radice del file system, es. /home/alex/file.txt) o relativo (rispetto alla cartella corrente, es. ../documenti/file.txt).

In Unix/Linux i permessi determinano chi può leggere, scrivere o eseguire un file: r = read (lettura), w = write (scrittura), x = execute (esecuzione). La sequenza rwxr-x--- significa:

  • Proprietario: lettura, scrittura, esecuzione
  • Gruppo: lettura e esecuzione
  • Altri: nessun accesso

Esistono collegamenti per riferirsi a file senza duplicarli:

  • Hard link: due nomi diversi che puntano allo stesso file fisico.
  • Symlink (link simbolico): puntatore a un altro file, simile a un “segnaposto”.

File system comuni:

  • ext4 (Linux)
  • NTFS (Windows)
  • APFS (macOS)
  • FAT32/exFAT (portabilità tra sistemi diversi)

Journaling: sistema che registra le operazioni recenti per prevenire perdita di dati in caso di crash.

Perfetto! Riscrivo dal punto 5 in avanti usando uno stile discorsivo e guidato, con spiegazioni approfondite dei concetti e senza attività operative. Il testo termina con un test di 20 domande, seguito da soluzioni dettagliate e spiegate punto per punto.

5. Interfacce: GUI e CLI

Quando parliamo di interfacce del sistema operativo, ci riferiamo al modo con cui l’utente comunica con il computer. Esistono due approcci principali: la GUI (Graphical User Interface) e la CLI (Command Line Interface).

La GUI è l’interfaccia grafica. È quella che vediamo quotidianamente sui nostri desktop: finestre, icone, menu, pulsanti. Il vantaggio principale della GUI è che rende intuitivo l’uso del computer. Possiamo cliccare, trascinare e osservare visivamente cosa succede. È particolarmente utile per chi esegue operazioni occasionali, come aprire un documento o spostare file tra cartelle, perché non richiede di ricordare comandi specifici. Tuttavia, la GUI può diventare lenta per operazioni ripetitive o complesse e non è sempre facilmente automatizzabile.

La CLI, invece, è basata su testo. L’utente scrive comandi che il sistema operativo interpreta. Anche se all’inizio può sembrare più difficile, la CLI è incredibilmente potente. Permette di eseguire operazioni complesse con precisione e di automatizzare attività tramite script. Concetti fondamentali della CLI includono:

  • stdout e stderr: flussi di output del sistema. Lo stdout contiene l’output normale di un comando, mentre lo stderr raccoglie messaggi di errore.
  • Exit code: ogni comando restituisce un numero che indica il successo (0) o il tipo di errore (1, 2, ecc.). Utile per creare controlli nei script.
  • Pipe (|): permette di collegare l’output di un comando all’input di un altro, formando catene di operazioni.
  • Redirezioni (>, >>, <): consentono di salvare l’output di un comando su un file o leggere l’input da un file invece che dalla tastiera.
  • Variabili d’ambiente (es. PATH): definiscono informazioni globali, come dove cercare i programmi eseguibili.

La GUI è più immediata e visiva, mentre la CLI richiede una maggiore conoscenza dei comandi ma consente un controllo molto più preciso e ripetibile delle operazioni del sistema operativo.

6. Multitasking e servizi di sistema

Il multitasking è la capacità di un sistema operativo di eseguire più programmi contemporaneamente. Questo non significa che la CPU faccia più cose allo stesso istante, ma che alterna rapidamente l’esecuzione dei processi, dando l’impressione di simultaneità.

Esistono due modalità principali di multitasking:

  • Cooperativo: i processi cedono volontariamente la CPU quando hanno finito di lavorare o quando attendono eventi esterni. Era comune nei primi sistemi operativi, ma può portare a blocchi se un processo si comporta male.
  • Preemptive: il sistema operativo interrompe automaticamente i processi dopo un certo intervallo di tempo (quantum) e assegna la CPU ad altri processi. Questa modalità è quella dei moderni sistemi operativi ed evita che un singolo programma monopolizzi la CPU.

I servizi o daemon sono programmi che girano in background e svolgono attività continue, come gestire la stampa, la rete o i backup. Non hanno un’interfaccia diretta con l’utente, ma sono essenziali per il funzionamento del sistema. L’avvio di un computer segue una sequenza precisa: il bootloader carica il kernel, il kernel avvia i servizi di base e solo alla fine viene presentata l’interfaccia utente per login e lavoro quotidiano.

7. Driver, aggiornamenti e sicurezza

Un driver è un software che permette al sistema operativo di comunicare correttamente con l’hardware. Senza driver, dispositivi come stampanti, schede video o dischi potrebbero non funzionare o essere utilizzabili solo in modo limitato. Ogni periferica richiede driver specifici che traducono i comandi del sistema operativo in istruzioni comprensibili dall’hardware.

Gli aggiornamenti del sistema operativo includono patch di sicurezza, correzioni di bug e nuove funzionalità. È fondamentale mantenere il sistema aggiornato per proteggersi da vulnerabilità e migliorare la stabilità. Le buone pratiche di sicurezza includono backup regolari e lettura delle note di rilascio prima di applicare aggiornamenti importanti.

8. Virtualizzazione e container

La virtualizzazione consente di far girare un intero sistema operativo all’interno di un altro, creando una macchina virtuale (VM). In pratica, il software simula l’hardware del computer, permettendo di eseguire sistemi diversi contemporaneamente senza interferire tra loro.

I container, invece, isolano singole applicazioni sullo stesso kernel del sistema operativo. Sono molto leggeri e veloci da avviare, e vengono utilizzati soprattutto nello sviluppo e nella distribuzione di software moderno, perché permettono di garantire che un’applicazione funzioni nello stesso modo su computer diversi.

9. Test di verifica: 20 domande

1. Il context switch è…
A. Cambio di modalità video
B. Sostituzione di un driver
C. Salvataggio/caricamento dello stato tra processi
D. Formattazione della memoria

2. La memoria virtuale permette…
A. Di aumentare fisicamente la RAM
B. Ogni processo di vedere uno spazio di indirizzamento proprio
C. Di sostituire la cache L1
D. Di disabilitare la protezione della memoria

3. Che cosa succede quando si verifica un page fault?
A. Il computer si blocca
B. Il SO carica la pagina richiesta dal disco nella RAM
C. La RAM viene formattata
D. La CPU aumenta la frequenza

4. La cache L1 è…
A. Memoria lenta su disco
B. Memoria veloce interna alla CPU
C. Memoria RAM aggiuntiva
D. Un registro del disco

5. La frammentazione interna si verifica quando…
A. Ci sono blocchi troppo grandi rispetto ai dati
B. Ci sono buchi sparsi tra blocchi occupati
C. Il SO non trova la RAM
D. La CPU si blocca

6. La frammentazione esterna si verifica quando…
A. Ci sono blocchi troppo grandi rispetto ai dati
B. Ci sono spazi vuoti sparsi tra blocchi occupati
C. La RAM non è sufficiente
D. La CPU non ha registri disponibili

7. Symlink vs hard link: quale affermazione è corretta?
A. Symlink = puntatore simbolico, Hard link = riferimento diretto allo stesso file
B. Symlink = file copiato, Hard link = link di rete
C. Symlink = file temporaneo, Hard link = file permanente
D. Nessuna

8. La GUI è…
A. Solo testuale
B. Basata su finestre, icone e menu
C. Sempre più potente della CLI
D. Una memoria virtuale

9. La CLI consente…
A. Solo comandi base
B. Controllo preciso, automazione e scripting
C. Lavorare solo con GUI
D. Non permette pipe

10. Round Robin è utile per…
A. Batch processing
B. GPU computing
C. Reattività dei sistemi interattivi
D. Copiare file

11. FCFS può causare…
A. Alta reattività
B. Latenza lunga per processi successivi
C. Deadlock
D. Nessuna differenza

12. Race condition è…
A. Un tipo di memoria
B. Quando più processi accedono contemporaneamente a dati condivisi senza sincronizzazione
C. Una scheda video
D. Un comando CLI

13. Mutex e semafori servono a…
A. Aumentare RAM
B. Evitare race condition e controllare accesso a risorse condivise
C. Creare file
D. Bloccare la CPU

14. Deadlock è…
A. Un driver difettoso
B. Situazione in cui processi restano bloccati in attesa reciproca
C. Una cache
D. Un comando shell

15. Driver servono a…
A. Installare programmi
B. Comunicare tra SO e hardware
C. Fare backup
D. Eseguire script

16. Journaling è…
A. Salvataggio dei processi
B. Registro delle operazioni recenti per recupero dati
C. Pulizia della RAM
D. Un tipo di cache

17. Servizio/daemon è…
A. Processo in background che svolge attività continuative
B. Processo utente
C. Un driver
D. Una GUI

18. Exit code indica…
A. Stato del computer
B. Valore restituito da un comando
C. Indirizzo IP
D. Nome di un file

19. PATH è…
A. Percorso delle cartelle correnti
B. Variabile d’ambiente che indica dove cercare programmi eseguibili
C. Nome del disco
D. Registro dei driver

20. Virtualizzazione consente…
A. Creare un intero sistema operativo simulato all’interno di un altro
B. Aumentare RAM fisica
C. Rendere più veloce la CPU
D. Sostituire la GUI


10. Soluzioni spiegate

1. C – Il context switch salva lo stato del processo attuale e carica quello del successivo, permettendo il multitasking.

2. B – La memoria virtuale crea l’illusione di uno spazio continuo dedicato a ciascun processo, proteggendo la memoria degli altri.

3. B – Il page fault è normale; il SO recupera la pagina dal disco e la carica in RAM.

4. B – La cache L1 è integrata nella CPU e contiene dati e istruzioni frequentemente usati, velocizzando l’esecuzione.

5. A – Blocchi di memoria più grandi dei dati causano spazi inutilizzati all’interno (frammentazione interna).

6. B – La frammentazione esterna si verifica quando piccoli spazi liberi sono sparsi tra blocchi occupati, difficile da riutilizzare.

7. A – Lo symlink punta simbolicamente a un file, l’hard link crea un secondo nome che punta allo stesso file fisico.

8. B – La GUI si basa su elementi grafici come finestre, icone e menu, per facilitare l’uso.

9. B – La CLI permette controllo preciso, automazione e scripting, ideale per operazioni ripetitive.

10. C – Round Robin migliora la reattività, alternando la CPU tra i processi in modo equo.

11. B – FCFS (First Come, First Served) può causare attese lunghe se un processo lungo blocca i successivi.

12. B – Una race condition si verifica quando più processi modificano dati condivisi senza sincronizzazione, creando comportamenti imprevedibili.

13. B – Mutex e semafori servono a sincronizzare i processi e prevenire race condition.

14. B – Deadlock è una situazione di stallo in cui processi attendono risorse occupate reciprocamente.

15. B – I driver traducono le istruzioni del SO in comandi comprensibili dall’hardware.

16. B – Il journaling tiene traccia delle operazioni recenti, permettendo il recupero dei dati dopo un crash.

17. A – Un daemon è un processo che gira in background e svolge attività continue senza interfaccia utente diretta.

18. B – L’exit code indica se un comando è riuscito (0) o fallito (numero diverso da 0).

19. B – La variabile PATH indica al SO dove cercare i programmi da eseguire.

20. A – La virtualizzazione permette di simulare un intero sistema operativo all’interno di un altro, isolandolo e rendendolo indipendente.



lunedì 9 febbraio 2026

Corso Fondamenti di Informatica e Reti: 4 Architettura del computer

 

4 ARCHITETTURA DEL COMPUTER
come funziona davvero una macchina

Capire un computer non significa solo saperlo accendere o aprire file: dietro ogni operazione c’è un mondo complesso di componenti, segnali e cicli di calcolo. Qui ti porto in un viaggio attraverso la macchina, spiegandoti tutto in maniera colloquiale e accessibile, ma senza saltare nulla di importante.

La squadra del computer: CPU, memoria e periferiche

Immagina il computer come una grande cucina professionale. Al centro c’è la CPU, il cervello e il cuoco insieme. È lei a leggere le ricette (le istruzioni dei programmi), decidere come cucinare (decodifica) e infine mettere il piatto pronto sul tavolo (esegue il calcolo o l’operazione richiesta). Accanto al cuoco c’è la memoria, che funziona come una dispensa. Alcuni scaffali sono vicini e contengono ingredienti già pronti all’uso, altre scorte sono più lontane, più lente da raggiungere. Per spostare dati e comandi tra CPU e memoria ci sono i bus, veri e propri corridoi della cucina dove tutto si muove velocissimo. Infine, le periferiche, i dispositivi di input/output, permettono al computer di interagire con il mondo esterno: tastiera, mouse, monitor, stampanti, schede di rete, microfoni, sensori e altoparlanti.

Questa organizzazione segue il modello di Von Neumann, che risale agli anni ’40. La grande intuizione di Von Neumann fu semplice ma rivoluzionaria: programmi e dati vivono nella stessa memoria e la CPU li preleva a turno. Grazie a questo schema, anche computer moderni, smartphone e microcontrollori condividono lo stesso principio di base.

Il ciclo macchina: fetch → decode → execute

Il funzionamento della CPU si basa sul ciclo fetch-decode-execute. Immagina che la CPU legga una riga di ricetta: prima preleva l’istruzione dalla memoria (fetch), poi capisce che operazione deve eseguire e quali ingredienti usare (decode), e infine realizza l’azione richiesta, scrivendo il risultato nel posto corretto (execute). Questo ciclo si ripete miliardi di volte al secondo senza interruzioni.

Per rendere tutto più efficiente, le CPU moderne usano la pipeline, una sorta di catena di montaggio: mentre un’istruzione viene eseguita, un’altra viene decodificata e una terza prelevata. Tecniche avanzate come out-of-order execution e branch prediction permettono alla CPU di non fermarsi mai: se c’è un “se… allora”, la macchina prova a indovinare il percorso giusto. Se sbaglia, elimina il lavoro errato, ma il vantaggio di prevedere correttamente è enorme.

Dentro la CPU: registri, ALU, FPU e unità di controllo

All’interno della CPU ci sono componenti specializzati. I registri sono piccole tasche dove vengono conservati dati temporanei, velocissimi da leggere. L’ALU (unità aritmetico-logica) si occupa dei calcoli sui numeri interi, mentre la FPU gestisce numeri in virgola mobile, cioè decimali complessi. L’unità di controllo dirige il traffico delle istruzioni, mentre il clock scandisce il ritmo, proprio come un metronomo.

Alcune CPU supportano Hyper-Threading o SMT, che permettono di gestire più flussi di istruzioni contemporaneamente usando le stesse unità di calcolo. La differenza tra CPU e GPU è fondamentale: la CPU è un solista molto bravo su compiti diversi, mentre la GPU è un coro di migliaia di voci che eseguono in parallelo la stessa melodia, perfetta per grafica, IA e calcoli massivi.

La gerarchia della memoria

La memoria è organizzata come una piramide di velocità e capienza. I registri sono velocissimi ma minuscoli, poi ci sono le cache L1, L2 e L3, sempre più grandi e leggermente più lente. Dopo le cache arriva la RAM, la memoria principale di lavoro, e infine i dischi SSD o HDD, che conservano i dati in modo permanente.

La cache serve a ridurre i tempi di accesso ai dati usati di recente, sfruttando la località spaziale (se accedi a un dato, probabilmente userai anche quelli vicini) e la località temporale (se un dato è stato usato di recente, lo userai di nuovo a breve). Nei sistemi multicore, è fondamentale che le cache dei vari core siano coerenti: se un core cambia un dato, gli altri devono essere aggiornati.

La memoria virtuale permette a ogni programma di vedere un suo spazio ordinato di indirizzi. La MMU traduce questi indirizzi virtuali in indirizzi fisici reali, e se la pagina richiesta non è in RAM si verifica un page fault, che costringe il sistema a recuperarla dal disco.

Come comunicano le periferiche

Tutte le periferiche comunicano con la CPU tramite interruzioni: quando la tastiera viene premuta o il mouse si muove, la CPU riceve un segnale e gestisce l’evento. La GPU aggiorna lo schermo scrivendo in un framebuffer che viene visualizzato a ripetizione, creando l’effetto di immagini fluide. Alcuni dispositivi, grazie al DMA, trasferiscono dati direttamente in memoria senza disturbare la CPU, rendendo il sistema più efficiente. Il sistema operativo decide in ogni momento quale thread eseguire, coordinando CPU, memoria e periferiche.

Multicore e parallelismo

Nei sistemi moderni, avere più core significa poter eseguire più operazioni contemporaneamente. I processi sono programmi in esecuzione con il loro spazio di memoria, mentre i thread sono flussi di esecuzione all’interno dei processi che condividono la memoria. Lo scheduler del sistema operativo decide chi gira e quando. Tuttavia, come ci ricorda la legge di Amdahl, il pezzo di lavoro che resta seriale limita i guadagni del parallelismo: non tutto può essere fatto contemporaneamente.

Un esempio semplice: se cucini pasta e sugo insieme, puoi velocizzare il lavoro, ma se l’acqua non bolle, devi comunque aspettare. Allo stesso modo, nei computer non tutto può essere parallelizzato.

RISC vs CISC e microarchitetture

Il set di istruzioni (ISA) è il linguaggio che la CPU comprende: x86-64, ARM, RISC-V. La microarchitettura è il modo in cui la CPU realizza queste istruzioni. Le architetture RISC usano istruzioni semplici e uniformi, mentre le CISC hanno istruzioni più ricche e complesse. Oggi molte CPU CISC traducono internamente le istruzioni in micro-operazioni semplici, unendo i vantaggi di entrambe le filosofie.

Apertura di un file: cosa succede davvero

Quando apri un file, dietro il semplice doppio clic c’è una coreografia complessa. Il programma chiama una system call, il kernel individua il filesystem, consulta la cache delle pagine, eventualmente legge i blocchi da disco tramite DMA, e consegna i dati alla CPU. Infine, i dati arrivano al programma e vengono visualizzati sullo schermo. Tutto avviene così rapidamente che nemmeno ce ne accorgiamo.

PC, smartphone e microcontrollori

I principi restano gli stessi su tutti i dispositivi, ma con ottimizzazioni diverse. Nei PC e server prevale la potenza e la RAM abbondante; negli smartphone, i SoC combinano CPU, GPU, acceleratori IA e modem in un unico chip, ottimizzato per basso consumo. Nei microcontrollori, come Arduino o ESP32, la memoria è ridotta e il sistema operativo è minimale, ideale per rispondere in tempo reale a sensori e attuatori.

Performance e sicurezza

Aumentare la frequenza della CPU produce più calore, quindi servono dissipatori e sistemi di throttling per proteggere il processore. L’efficienza, cioè il lavoro fatto per watt consumato, è fondamentale nei portatili e negli smartphone. Anche la sicurezza è cruciale: vulnerabilità legate all’esecuzione speculativa sono mitigabili con aggiornamenti di firmware e sistema operativo.

Mini-glossario lampo

ALU = calcoli interi; FPU = calcoli decimali complessi; registri = memoria velocissima della CPU; cache = memoria piccola e vicina alla CPU; RAM = memoria di lavoro; SSD/HDD = archiviazione permanente; DMA = trasferimenti diretti; IRQ = interruzioni; MMU/TLB = traduzione indirizzi virtuali/fisici; ISA = set di istruzioni; thread = flusso di esecuzione; scheduler = regista del processore.

domenica 8 febbraio 2026

Corso Fondamenti di Informatica e Reti: 3 Dati e informazioni: codifica e rappresentazione

💾 3 Dati e informazioni: un viaggio nel mondo digitale

Immagina di svegliarti in un mondo in cui tutto ciò che vedi, tocchi, ascolti o persino annusi può essere tradotto in numeri e simboli. Ogni parola, ogni immagine, persino il rumore delle tue scarpe sul pavimento, può essere ridotto a sequenze di 0 e 1. Questo è il mondo digitale, e al suo cuore ci sono dati e informazioni. Ma attenzione: non sono la stessa cosa!

📖 Dato vs informazione: quando i numeri prendono senso

Partiamo dal principio. Un dato è un pezzo di realtà ancora grezzo, privo di contesto. Potrebbe essere il numero 42. Da solo, non dice molto: forse è la temperatura di un paziente, forse il numero di scalini che hai salito stamattina, o l’età di qualcuno. Non c’è ancora significato, solo un simbolo astratto.

Quando però aggiungiamo contesto, quel dato si trasforma in informazione.
Ad esempio: 42° C è la temperatura corporea di un paziente → ora abbiamo un allarme, una situazione chiara e interpretabile. Il dato è diventato utile. È come avere un seme: senza terreno, sole e acqua resta solo un seme; con il contesto giusto, può crescere in una pianta.

In classe, puoi fare un gioco semplice: scrivi 25 su una lavagna. Chiedi agli studenti: cosa significa? Poi aggiungi il contesto: 25 anni. Immediatamente, il numero acquista senso e può generare decisioni o discussioni. Questo piccolo passaggio è la magia che trasforma dato in informazione.

🔢 Tipi di dato: la varietà del digitale

I dati non sono tutti uguali. Possono essere:

  • Numeri: interi o decimali, positivi o negativi, come 123, -45.6, 3.14159. Servono per contare, misurare, calcolare.
  • Testi: parole, frasi, storie. “Ciao”, “Benvenuto nel mondo digitale” o anche interi romanzi possono diventare sequenze di numeri per il computer.
  • Immagini: ogni foto è una griglia di pixel. Ogni pixel ha valori di colore e luminosità, convertiti in numeri.
  • Suoni: la tua voce, il rumore della pioggia, una canzone. Tutto trasformato in onde digitali, con frequenze e ampiezze misurate in numeri.
  • Video: sequenze di immagini + audio. In pratica, un film miniatureizzato in dati.

Ecco un esempio pratico: una foto 8x8 pixel. Ogni quadratino diventa un numero che rappresenta un colore. È come dipingere con la matematica. Un file audio MP3, invece, non contiene onde continue, ma una serie di numeri compressi che il computer ricostruisce in suono.

🔢 Codifica digitale: bit e byte, gli atomi del computer

Nel mondo dei computer, ogni dato viene rappresentato in binario, cioè usando solo due simboli: 0 e 1.

  • Bit: la più piccola unità, può essere 0 o 1.
  • Byte: 8 bit, sufficiente per rappresentare un carattere, come una lettera o un numero piccolo.

Ad esempio: la lettera H in ASCII è 01001000, i è 01101001. La parola Hi diventa quindi 16 bit, due byte.

💡 Curiosità: con un singolo byte puoi rappresentare valori da 0 a 255, oppure un carattere ASCII. Non sembra molto, ma pensa a quante combinazioni si possono fare con più byte: miliardi di numeri, parole, immagini e suoni!

📦 Compressione dei dati: risparmiare senza perdere il senso

I file digitali possono essere giganti, e per questo esistono tecniche di compressione.

  • Lossless (senza perdita): riduce le dimensioni senza perdere informazioni. Es: ZIP, PNG.
  • Lossy (con perdita): risparmia molto spazio, ma elimina alcune informazioni non essenziali. Es: JPEG, MP3.

📌 Esempio:

  • Una foto originale di 5 MB
    • JPEG → 1 MB (qualche dettaglio perso)
    • PNG → 3 MB (tutti i dettagli conservati)

🌐 Standard e formati: un linguaggio universale

  • ASCII: i caratteri base (da 0 a 127)
  • Unicode: include tutti i caratteri e simboli del mondo, anche ❤️ (U+2764)
  • JPEG: immagini compresse
  • MP3: audio compresso

Unicode è una rivoluzione: finalmente un computer può leggere testi in qualsiasi lingua, senza confondersi. Un “Ciao” in italiano, “こんにちは” in giapponese, o un’emoji possono convivere nello stesso documento.

🧩 Attività pratiche: imparare facendo

🧪 1. Gioco “comprimiamo un messaggio”

Scopo: capire la compressione semantica.

  • Messaggio originale: CIAO CIAO CIAO CIAO CIAO CIAO
  • Messaggio compresso: CIAO x6

✅ Variante: prova con frasi più lunghe, ricorda di sostituire sequenze ripetute con simboli o numeri per abbreviare.

🎨 2. Convertire un’immagine in dati

Materiale: foglio a griglia 8x8, pennarelli nero e bianco

Procedura:

  1. Disegna un cuore, una stella o una faccina
  2. Colora i quadrati: nero = 1, bianco = 0
  3. Trascrivi ogni riga come sequenza di 0 e 1

Esempio cuore 8x8:

00011000
00111100
01111110
11111111
11111111
01111110
00111100
00011000

🎯 Risultato: hai creato la tua prima bitmap digitale. È incredibile pensare che un semplice disegno possa diventare numeri leggibili da un computer.

❓ 3. Quiz interattivo sui formati

  1. Quale formato conserva un testo senza perdita?
  • A. MP3
  • B. TXT ✅
  • C. JPEG
  • D. MP4
  1. Hai una foto da inviare via email. Formato ideale per compressione con qualità accettabile?
  • A. BMP
  • B. PNG
  • C. JPEG ✅
  • D. GIF
  1. Quale formato audio è compresso con perdita?
  • A. WAV
  • B. MP3 ✅
  • C. FLAC
  • D. AIFF

✨ Conclusioni e obiettivi raggiunti

Dopo questo viaggio, dovresti essere in grado di:

  • Distinguere dato da informazione
  • Comprendere la codifica digitale: bit, byte, ASCII e Unicode
  • Apprendere i principali formati e tecniche di compressione
  • Creare bitmap digitali partendo da un disegno
  • Capire la differenza tra lossy e lossless


sabato 7 febbraio 2026

Corso Fondamenti di Informatica e Reti: 2 Software: sistemi operativi e applicativi

💻 2 Software: sistemi operativi e applicativi 

Immagina che il tuo dispositivo (computer, tablet, smartphone) sia una casa. Il sistema operativo è il proprietario e il custode: organizza le stanze, decide chi entra, controlla le utenze, e tiene in ordine gli armadi. Le applicazioni sono gli ospiti o gli strumenti che usi in casa: il frigorifero, la televisione, la macchina del caffè, il pianoforte. Tutti necessari, ma senza il proprietario che coordina (il sistema operativo) la casa sarebbe caotica.

Di seguito esploriamo in profondità cosa significa questa analogia: come funzionano le parti, che tipi di software esistono, come scegliere e usare, e soprattutto come imparare a farlo con attività pratiche.

1) Cos’è il software — definizione e ruolo centrale

Il software è l’insieme di istruzioni (codice) che dice all’hardware cosa fare. Se l’hardware è la parte fisica (schermo, tastiera, CPU, memoria), il software è l’intelligenza che la anima. Senza software, un computer è un mucchio di silicio e metallo; con il software diventa strumento creativo, di lavoro, informazione e divertimento.

Il software si divide grossolanamente in due grandi famiglie:

  • Software di sistema (o di base): il sistema operativo, i driver, i tool che mantengono il dispositivo funzionante e permettono alle applicazioni di parlare con l’hardware.
  • Software applicativo: i programmi che svolgono compiti concreti per gli utenti: scrivere testi, navigare il web, montare video, giocare, contare con una calcolatrice.

2) Software di sistema vs software applicativo — cosa fa ciascuno

Il sistema operativo (OS) — il direttore d’orchestra

Il sistema operativo è il cuore: gestisce processi, memoria, file, dispositivi di input/output, rete, sicurezza. Alcuni concetti chiave:

  • Kernel: il nucleo che parla direttamente con l’hardware. Regola risorse CPU, memoria e periferiche.
  • Shell / Interfaccia utente: il modo in cui interagisci con l’OS (interfaccia grafica o riga di comando).
  • Driver: piccoli programmi che permettono a stampanti, schede video, mouse e altro di funzionare.
  • File system: l’organizzazione dei file (cartelle, permessi).
  • Gestione dei processi: l’OS decide quale programma “usa” la CPU e per quanto tempo.
  • Gestione memoria: assegna RAM ai programmi e evita che si pestino i piedi l’uno con l’altro.

Il software applicativo — cosa usi per lavorare e divertirti

Programmi concreti: Word processor, browser, app mobili, videogiochi, editor video, strumenti di contabilità. Si appoggiano all’OS per accedere a file, rete e periferiche.

Sintesi: l’OS fornisce lo spazio e le regole; l’applicazione svolge il compito specifico.

3) Panoramica dei principali sistemi operativi

Windows (Microsoft)

  • Ambito: desktop/laptop aziendali e consumer.
  • Punti forti: ampia compatibilità software (giochi, applicazioni professionali), facilità d’uso per utenti non tecnici.
  • Quando sceglierlo: se usi programmi che girano solo su Windows (es. certe suite professionali), o giochi.

macOS (Apple)

  • Ambito: laptop e desktop Apple (MacBook, iMac).
  • Punti forti: integrazione hardware-software, stabilità, ecosistema Apple per creativi (video, foto, musica).
  • Quando sceglierlo: se lavori con multimedia professionale e ti piace l’ecosistema Apple.

Linux (famiglie: Ubuntu, Fedora, Debian, Mint, ecc.)

  • Ambito: server, desktop, sviluppatori, appassionati.
  • Punti forti: open source, altamente personalizzabile, efficiente, grande comunità.
  • Quando sceglierlo: se vuoi controllo, sicurezza, uso server o imparare come funziona un OS.

Android (Google)

  • Ambito: smartphone, tablet, alcuni TV e dispositivi embedded.
  • Punti forti: ampia diffusione, app store, personalizzazione.
  • Quando sceglierlo: smartphone/tablet, ecosistema Google.

iOS (Apple)

  • Ambito: iPhone, iPad (iPadOS).
  • Punti forti: sicurezza, integrazione con hardware Apple, app di qualità.
  • Quando sceglierlo: se apprezzi l’esperienza utente Apple e app coerenti.

Nota: esistono anche sistemi specializzati (embedded OS, RTOS) e derivazioni come ChromeOS (basato su Linux con forte orientamento web).

4) Applicazioni comuni — categorie e esempi concreti

  • Suite da ufficio: Microsoft Office (Word, Excel, PowerPoint), LibreOffice (Writer, Calc, Impress).
    Esempio pratico: scrivere una relazione con Word o con LibreOffice Writer.
  • Browser web: Google Chrome, Mozilla Firefox, Microsoft Edge, Safari.
    Esempio pratico: usare Chrome per accedere a Gmail, web app e fare il login sicuro.
  • Multimedia: VLC (lettore video), Spotify (musica), Photoshop / GIMP (grafica), Audacity (audio editing).
    Esempio pratico: tagliare il pezzo centrale di un file mp3 con Audacity.
  • Comunicazione: WhatsApp, Telegram, Zoom, Teams.
    Esempio pratico: schedulare una riunione Zoom e condividere lo schermo.
  • Sviluppo / tool: Visual Studio Code, Git, Node.js.
    Esempio pratico: aprire un progetto in VS Code e lanciare un’app locale.
  • Giochi: Steam su Windows, app store su mobile.
    Esempio pratico: configurare grafica su un gioco su PC.

5) Licenze software — concetti e cosa significano

Proprietaria

Software il cui codice non è accessibile. L’utente paga (o riceve gratis) una copia che usa sotto condizioni fissate dall’editore. Esempio: Microsoft Office (licenza d’uso), Adobe Photoshop.

Open source

Il codice sorgente è disponibile; chiunque può leggere, modificare e (a seconda della licenza) ridistribuire. Tipologie:

  • Copyleft (es. GPL): se ridistribuisci o modifichi, devi mantenere la stessa licenza (richiede condivisione).
  • Permissive (es. MIT, BSD, Apache): permettono di includere il codice in progetti proprietari; più “libere”.

Freeware vs Free (libertà)

  • Freeware = software gratuito ma proprietario (non puoi accedere al codice, es. alcuni giochi o utility gratuite).
  • Free software (libertà) = enfasi sulle libertà dell’utente: usare, studiare, modificare, ridistribuire (concetto FSF).

Esempio concreto

  • Firefox è open source (la comunità può vedere e contribuire).
  • Microsoft Office è proprietario (non puoi modificare il codice, devi rispettare licenza).

6) Modelli di distribuzione software moderni

  • Installazione tradizionale: scarichi un .exe o .dmg e installi.
  • App Store: Google Play, Apple App Store — app sotto controllo del provider, aggiornamenti centralizzati.
  • Software as a Service (SaaS): non installi nulla, usi tutto via web (Google Workspace, Office 365).
  • Container / Virtualizzazione: esegui ambienti isolati (Docker, VirtualBox) per testare o distribuire applicazioni. Utile in ambito sviluppo e server.

7) Sicurezza, aggiornamenti e manutenzione (best practices)

  • Aggiorna regolarmente: OS, browser e app. Le patch chiudono falle di sicurezza.
  • Usa software ufficiale: evita download da siti sospetti.
  • Backup: copia i dati importanti su cloud o hard disk esterno.
  • Antivirus & firewall: strumenti utili soprattutto su Windows.
  • Permessi app: su mobile (camera, posizione, rubrica) consenti solo ciò che serve.
  • Password & MFA: usa password robuste e autenticazione a due fattori.

8) Esercizi pratici (con soluzioni spiegate)

Esercizio 1 — Identifica e classifica

Compito: fai una lista di 10 software che usi e per ciascuno indica: tipo (sistema/app), licenza (proprietaria / open source / freeware), scopo (comunicazione / produttività / gioco). Soluzione (esempio):

  1. WhatsApp — applicazione mobile — freeware/proprietaria — comunicazione.
  2. Chrome — applicazione — freeware/proprietaria — browser.
  3. Firefox — applicazione — open source — browser.
  4. LibreOffice — applicazione — open source — produttività.
  5. VLC — applicazione — open source — riproduzione multimediale.
    (Spiegazione: si valuta il tipo in base a dove gira e cosa fa; la licenza si può verificare nella pagina ufficiale o nelle info dell’app.)

Esercizio 2 — Installazione sicura

Compito: scegli un’app open source (GIMP o Audacity). Elenca i 6 passaggi che esegui per una installazione sicura. Soluzione spiegata:

  1. Vai al sito ufficiale (es. gimp.org).
  2. Controlla la versione corretta per il tuo OS.
  3. Scarica il file; se disponibile, verifica checksum.
  4. Esegui l’installer come utente con permessi normali (non administrator se non richiesto).
  5. Durante installazione, rifiuta software aggiuntivo non desiderato.
  6. Avvia e prova le funzioni base.
    (Spiegazione: questi passaggi riducono rischio malware e assicurano che il software sia autentico.)

Esercizio 3 — Permissions & Privacy (smartphone)

Compito: scegli 5 app sul tuo telefono e scrivi quali permessi richiedono e se sono giustificati. Soluzione modello:

  • App fotocamera: accesso a fotocamera e microfono — giustificato.
  • Weather app: accesso a posizione — giustificato per meteo locale, attenzione a permessi in background.
  • Gioco semplice: accesso a contatti? — non giustificato, per cui revocare permesso.
    (Spiegazione: analizzare i permessi aiuta a proteggere dati sensibili.)

9) Risorse utili (strumenti e link raccomandati)

  • Per montaggio video/mobile: CapCut, InShot.
  • Per grafica: GIMP (open source), Canva (web).
  • Per audio: Audacity.
  • Per ufficio: LibreOffice (open source), Google Docs (SaaS), MS Office (proprietario).
  • Per sviluppatori: VS Code, Git.
  • Per sicurezza: Malwarebytes, Windows Defender (preinstallato su Windows).
  • Per VM: VirtualBox (gratuito).
    (Nota: cerca sempre i siti ufficiali dei progetti.)

venerdì 6 febbraio 2026

Corso Fondamenti di Informatica e Reti: 1 Hardware: componenti e funzionamento del computer

1 Hardware – Viaggio dentro al cuore del computer

Immagina di avere davanti a te un misterioso scrigno di metallo o plastica: un computer. Sembra solo un oggetto, ma dentro custodisce un mondo fatto di componenti, collegamenti e “piccoli operai” invisibili che lavorano in sincronia per trasformare i tuoi clic, le tue parole e le tue idee in azioni concrete.
In questa avventura scopriremo chi sono questi operai, come lavorano e perché ognuno è indispensabile.

🔹 1. Hardware e software – Il corpo e la mente

La prima distinzione fondamentale è tra hardware e software.

  • Hardware: tutto ciò che puoi toccare, pesare e spostare. La tastiera sotto le dita, lo schermo davanti agli occhi, il mouse, le casse, il disco rigido, la stampante… persino i cavi.
  • Software: ciò che non puoi vedere o toccare, ma che fa muovere tutto. Sono i programmi, le app, il sistema operativo. Senza software, l’hardware è come un corpo immobile.

🧠 Metafora utile: pensa al computer come a una persona.

  • L’hardware è il corpo: muscoli, ossa, organi.
  • Il software è la mente: pensieri, logica, decisioni.
    Uno senza l’altro non può funzionare.

🔹 2. Gli organi vitali del computer

Ogni parte del computer ha un ruolo preciso, proprio come in un organismo vivente.

CPU (Processore) – Il cervello

È il direttore d’orchestra. Riceve le istruzioni, fa calcoli velocissimi e coordina ogni attività. Più è potente, più il computer “pensa” in fretta.

RAM (Memoria volatile) – La memoria a breve termine

Qui il computer mette i dati su cui sta lavorando in questo momento. È rapidissima ma temporanea: spegni il PC, e puff! Tutto sparisce.

Hard Disk / SSD – La memoria a lungo termine

È l’archivio del computer. Qui restano custoditi i tuoi documenti, le foto, i video, i programmi… anche dopo aver spento il PC.

  • HDD: più lento, ma con grande capacità.
  • SSD: molto più veloce, meno rumoroso.

Scheda madre – La spina dorsale

Un grande circuito stampato che collega tutti i componenti. È la “piazza centrale” dove passano tutte le informazioni.

Periferiche di input/output (I/O)

  • Input: ciò che serve per inviare comandi e dati al computer (tastiera, mouse, microfono, scanner).
  • Output: ciò che serve per ricevere informazioni dal computer (monitor, stampante, casse).

🔹 3. Tipi di memoria

  • Volatile: si svuota quando spegni (RAM).
  • Non volatile: rimane anche senza corrente (Hard Disk, SSD, chiavetta USB).

📦 Pensa alla RAM come al tavolo dove stai preparando un puzzle (solo i pezzi in uso sono lì) e all’SSD come alla scatola in cui tieni tutti i pezzi quando hai finito.

🔹 4. L’evoluzione del computer

Un tempo c’erano solo i desktop: grandi scatoloni fissi sulla scrivania. Poi sono arrivati i laptop portatili, seguiti da tablet e smartphone che stanno in tasca.
Oggi i computer sono ovunque: negli orologi smart, nelle auto, nelle lavatrici.
Questi si chiamano computer embedded: piccole unità di calcolo nascoste dentro oggetti comuni, pronte a svolgere compiti specifici senza farsi notare.

🔹 5. Dispositivi digitali nel quotidiano

Allenare l’occhio a riconoscere la tecnologia è utile.

  • Il telecomando: dentro ha una memoria ROM che conserva il “programma” dei tasti.
  • Lo smartphone: ha CPU, RAM, memoria flash e una miriade di sensori.
  • Il navigatore auto: un computer embedded con mappe e GPS.

Ogni oggetto ha la sua piccola architettura nascosta.

🧪 Attività pratiche per imparare divertendosi

  1. Smontaggio virtuale: usare simulatori online (es. PC Building Simulator) per esplorare le parti interne di un PC senza rischi.
  2. Costruisci il tuo PC: in aula, assemblare un computer con cartoncini che rappresentano i componenti e i loro nomi.
  3. Visita guidata: osservare un PC reale aperto, riconoscendo RAM, ventole, schede e connettori.

📝 Mini quiz di autovalutazione

  1. Qual è la differenza principale tra hardware e software?
    A. L’hardware è un tipo di programma speciale
    B. L’hardware è fisico, il software è digitale
    C. L’hardware è la tastiera, il software è la sedia
    D. Non c’è alcuna differenza

  2. A cosa serve la RAM?
    A. Salvare i dati in modo permanente
    B. Eseguire i programmi in corso
    C. Collegare il computer a Internet
    D. Stampare i documenti

  3. La memoria del disco rigido è:
    A. Volatile
    B. Temporanea
    C. Non volatile
    D. Solo per videogiochi

  4. Quale tra questi è un dispositivo di output?
    A. Microfono
    B. Tastiera
    C. Stampante
    D. Mouse

  5. Un esempio di computer “embedded” è:
    A. Un tablet
    B. Una console da gioco
    C. Un navigatore GPS in auto
    D. Un telecomando


(Le risposte corrette sono in grassetto)

  1. Differenza tra hardware e software:
    B. L’hardware è fisico, il software è digitale
  2. A cosa serve la RAM?
    B. Eseguire i programmi in corso
  3. La memoria del disco rigido è:
    C. Non volatile
  4. Quale tra questi è un dispositivo di output?
    C. Stampante
  5. Esempio di computer “embedded”:
    C. Un navigatore GPS in auto

Corso Fondamenti di Informatica e Reti: 7 Il Web il Cloud la Sicurezza

🔐 7  Il Web, il Cloud e la Sicurezza Differenza tra Internet e Web Capire la differenza tra Internet e Web è come distinguere tra la rete a...