Tecnologia • A3 M2 L01 - Introduzione ai Sistemi Operativi | Prof. Giagnotti
Tecnologia • Anno 3 • Modulo 1 • Lezione 02
✍ Autore: Prof. Giagnotti

Introduzione ai Sistemi Operativi: Kernel, Architetture e Confronto

Dal kernel alle interfacce: capiamo perché l'OS è l'intermediario indispensabile tra hardware e app, come gestisce CPU-memoria-file-periferiche e cosa cambia davvero tra Windows, Linux e iOS nella pratica quotidiana.

⏱ 60 min 💻 Sistemi Operativi 🧠 Kernel • OS
Obiettivi di apprendimento
✓Comprendere cos'è un sistema operativo e conoscerne le funzionalità principali: gestione del processore, della memoria, delle periferiche, del file system, dell'interfaccia utente e della sicurezza
✓Distinguere le architetture modulare, monolitica, a microkernel e a strati, e capire il ruolo del kernel e la differenza tra modalità kernel e modalità utente
✓Conoscere le caratteristiche principali di Windows, Linux e iOS: origine, tipo di kernel, licenza e interfaccia
✓Confrontare i tre sistemi operativi individuando differenze e ambiti d'uso più adatti a ciascuno

Accendi il PC del laboratorio, il telefono o la console e, prima ancora che tu apra una singola app, qualcosa ha già fatto un lavoro enorme: ha riconosciuto la scheda video, ha allocato la memoria, ha montato il disco, ha preparato lo schermo. Quel "qualcosa" è il sistema operativo — il software più importante di qualunque dispositivo, perché senza di esso l'hardware è solo silicio inerte.

1. Cos'è un sistema operativo

📌 Definizione da ricordare

Il sistema operativo (OS) è il software di sistema che gestisce le risorse hardware (CPU, RAM, periferiche, dischi) e fornisce ai programmi e all'utente un'interfaccia comune, uniforme e astratta per utilizzarle, nascondendo la complessità dell'hardware.

Il sistema operativo si colloca esattamente nel mezzo: sotto di lui c'è l'hardware fisico, sopra di lui girano le applicazioni (browser, editor, videogiochi). Nessuna app parla direttamente con il disco o con la scheda di rete: passa sempre dall'OS, che traduce la richiesta in comandi eseguibili.

IL SISTEMA OPERATIVO COME INTERMEDIARIO Utente Applicazioni (browser, editor, giochi...) Sistema Operativo Hardware (CPU, RAM, disco, rete...)
🎯 Esempio in classe - Tecnologia vera

Nel nostro laboratorio con 24 PC, quando tutti salvate su rete un file chiamato relazione.docx, non scrivete direttamente sull'SSD del server. Lanciate salva() dalla vostra app, l'OS del vostro PC passa la richiesta via driver di rete, l'OS del server riceve, controlla permessi NTFS/ext4, alloca blocchi, scrive. È per questo che l'astrazione è fondamentale in Tecnologia.

💬 Tip del docente - Metodo Tecnologia

Io ho pensato di fare così quando spiego l'OS agli studenti di terza: parto sempre dal perché non facciamo parlare le app direttamente con l'hardware. Io lo farei così anche all'interrogazione: spiega prima astrazione e condivisione controllata, poi fai l'esempio del laboratorio. Se dici solo "gestisce hardware" ti do 5. Se mi porti l'esempio concreto della stampa o del salvataggio, è 8 pieno.

2. Le funzionalità principali dei sistemi operativi

Ogni OS moderno — server, laptop o smartphone — svolge sostanzialmente le stesse sei funzioni di base. Cambiano i dettagli, non gli obiettivi.

01 · CPU

Gestione processore

Scheduling: decide quale processo usa la CPU e per quanto, stato Pronto/Esecuzione/Attesa.

02 · RAM

Gestione memoria

Alloca/libera RAM, protegge spazi, usa memoria virtuale e swap quando serve.

03 · DRIVER

Gestione periferiche

Comunica con hardware diverso tramite driver: l'app non deve conoscere la stampante.

04 · FS

File system

Organizza file/cartelle, permessi, NTFS/ext4/APFS: stessa logica, formati diversi.

05 · UI

Interfaccia utente

CLI (potente/scriptabile) vs GUI (intuitiva). Oggi quasi sempre entrambe.

06 · AUTH

Sicurezza

Autentica utenti e applica permessi: chi può leggere/scrivere/eseguire cosa.

FunzionalitàCosa gestisce - in pratica
Gestione del processoreDecide quale processo usa la CPU e per quanto tempo (scheduling), gestisce stati del processo
Gestione della memoriaAlloca e libera RAM ai processi, protezione della memoria, swap/paging
Gestione delle perifericheComunica con stampanti, dischi, schede di rete tramite driver forniti dal produttore
Gestione del file systemOrganizza dati su disco in file e cartelle, gestisce permessi e metadati
Interfaccia utenteOffre CLI o GUI per interagire con il sistema e le app
Sicurezza e controllo accessiAutentica utenti e stabilisce chi può fare cosa sul sistema

2.1 Gestione del processore e ciclo di vita

Un computer esegue decine di processi "contemporaneamente" anche con pochi core: simula parallelismo dividendo il tempo in time slice (multitasking a divisione di tempo). Ogni processo attraversa: Nuovo → Pronto → Esecuzione → Attesa → Terminato.

⚠️ Errore comune - verifica

Confondere "Pronto" con "Attesa". Pronto = ha tutto tranne la CPU libera. Attesa = è bloccato per I/O (disco/rete) ed è per questo che l'OS può farne girare un altro nel frattempo. Se scrivi che in Attesa aspetta la CPU, è errore grave.

2.2 Memoria, driver, file system, UI, sicurezza

Memoria: protezione + memoria virtuale. RAM piena? Sposta su disco (swap) – illusione di più memoria, costo velocità.
Periferiche: driver = traduttore. App chiede "stampa", driver HP/Epson traduce.
File system: NTFS (Windows), ext4 (Linux), APFS (iOS) – struttura gerarchica + permessi.
UI: Bash/PowerShell vs finestre/icone.
Sicurezza: modello multiutente: studente non legge file compagno.

3. Architettura modulare e gerarchica

Apriamo il "cofano": troviamo il kernel al centro, circondato da livelli sempre più vicini all'utente. Come è organizzato cambia prestazioni, stabilità e sicurezza.

📌 Definizione da ricordare - KERNEL

Il kernel è il nucleo dell'OS: gira con massimi privilegi (kernel mode) e ha accesso diretto all'hardware. Tutto il resto gira in user mode e deve chiedere al kernel tramite system call.

⚠️ Perché ci importa davvero

Un errore in user mode blocca solo quel programma. Un errore nel kernel blocca TUTTO: Blue Screen of Death su Windows, kernel panic su Linux/macOS/iOS. Per questo i driver – che spesso girano in kernel mode – sono codice delicatissimo.

3.1 Tre modelli architetturali

ArchitetturaCome funzionaVantaggiSvantaggi
MonoliticaTutto in un unico blocco in kernel mode (scheduler, memoria, driver, FS)Molto veloce: comunicazione direttaBug in un driver = sistema giù
Monolitica modulareCome monolitica ma moduli caricabili a runtime (.ko)Velocità + flessibilità: carichi solo ciò che serveModuli comunque in kernel mode: rischio resta
MicrokernelKernel fa solo scheduling e IPC; driver e FS in user mode come processiStabilissimo: crash driver non blocca tuttoPiù lento: troppi scambi di messaggi
SHELL LINUX · MODULI KERNEL
# Verifica moduli kernel attuali (Linux monolitico modulare) lsmod | grep -E "usb|nvme|ext4" # Carica / rimuovi un driver senza riavviare - magia del modulare sudo modprobe usb-storage sudo rmmod usb-storage # Windows equivalente: driver in kernel mode (ibrido) # driverquery /v | findstr Kernel # System call: da user mode a kernel mode # strace ls # mostra le system call che chiedono al kernel
🎯 Esempio in classe - Tecnico

Avete installato VirtualBox e improvvisamente il PC crasha? Quasi sempre è un driver virtuale in kernel mode. Io ho pensato di fare così in laboratorio: prima di installare driver nuovi, punto di ripristino. Io lo farei così anche a casa: mai driver beta sul PC dove studiate.

💬 Tip del docente - Architetture

Io ho pensato di fare così per farvi ricordare i modelli: monolitico = un unico palazzo dove se crolla un pilastro crolla tutto; microkernel = tanti chioschi separati in piazza, se uno chiude gli altri lavorano. Io lo farei così al compito: disegnate voi due rettangoli con etichette kernel/user, ve lo ricordate per sempre e prendete punti schema.

MONOLITICO vs MICROKERNEL - CONFRONTO VISIVO Monolitico kernel mode Scheduler Memoria File System Driver IPC / Rete user mode: app Microkernel kernel mode (minimo) Scheduler + IPC File System Driver Rete Memoria ↑ eseguiti in user mode come processi separati ↑ user mode: app

3.2 Architettura a strati e soluzione ibrida

Ottica complementare: organizzare in layer gerarchici, dove ogni strato usa solo servizi di quello sotto. Isola i cambiamenti: se modifichi strato basso mantenendo interfaccia, quelli sopra continuano a funzionare. Molti OS reali sono ibridi: Windows NT è ibrido a strati; Linux pur monolitico è modulare con .ko caricati via modprobe.

4. Windows, Linux e iOS: tre approcci a confronto

I concetti – funzionalità, kernel, architettura – prendono forma concreta nei tre OS che usate ogni giorno.

4.1 Windows

Microsoft dal 1985, oggi DESKTOP più diffuso. Dal 1993 kernel Windows NT ibrido, progettato per portabilità e sicurezza multiutente – salto rispetto a MS-DOS/95/98. Sistema proprietario chiuso, licenza commerciale, FS NTFS, GUI + PowerShell.

4.2 Linux

Kernel creato 1991 da Linus Torvalds, licenza GPL: codice pubblico, modificabile. "Linux" è solo kernel: OS completo = distribuzioni (Ubuntu, Debian, Fedora, Kali) con ext4, gestori pacchetti. Domina server, cloud, supercomputer, embedded (Android usa kernel Linux).

4.3 iOS

Apple 2007 con primo iPhone. Kernel XNU (X is Not Unix) ibrido: Mach + BSD, stesso di macOS. Sistema proprietario sandboxato: app solo da App Store, ogni app in sandbox, FS APFS non liberamente accessibile. Sicurezza e uniformità vs personalizzazione.

TIPO DI KERNEL - DOVE SI COLLOCANO I TRE SISTEMI Linux (modulare) Windows NT iOS (XNU) Monolitico Ibrido Microkernel

4.4 Tabella comparativa definitiva

CaratteristicaWindowsLinuxiOS
Anno di nascita1985 (NT dal 1993)1991 (kernel)2007
Tipo di kernelIbrido (NT)Monolitico modulareIbrido (XNU / Mach + BSD)
LicenzaProprietariaOpen source (GPL)Proprietaria
File system predefinitoNTFSext4 (varia per distro)APFS
Interfaccia predefinitaGUI (+ PowerShell)GUI o CLI, a sceltaGUI (touch)
Installazione appDa installer o Microsoft StoreGestori pacchetti (apt, dnf...)Solo App Store
Ambito d'uso tipicoDesktop office, gaming, aziendeServer, cloud, embedded, sviluppoSmartphone e tablet Apple
💬 Tip del docente - Confronto per Tecnologia

Io ho pensato di fare così quando vi chiedo di confrontare OS alla lavagna: non fate elenco sterile, fate matrice contesto-soluzione. Io lo farei così: "Devo fare server web low-cost 24/7? Linux: GPL=0 costi licenza, stabile, CLI. Devo giocare a AAA? Windows: DirectX + driver. Devo garantire sicurezza media a utenti non tecnici? iOS sandbox." Se rispondete "dipende" senza motivare tecnologia, è 4. Se motivate con kernel/licenza/FS, è 9.

🎯 Esempio in classe - Tre scenari

Scenario A: startup con 10 server Node.js –> Linux Ubuntu Server, ext4, apt, SSH. Scenario B: ufficio commercialista con gestionali .exe –> Windows 11 Pro, NTFS, Active Directory. Scenario C: progetto app per controllo accessi in museo con iPad fissi –> iOS con MDM, APFS crittografato, sandbox. Stessa base teorica, tre scelte tecnologiche opposte ma corrette.

⚠️ Errore da non fare

Non esiste OS "migliore in assoluto". La scelta è contestuale. Un server web ad alte prestazioni sceglierà quasi sempre Linux per costo, stabilità e controllo; azienda userà Windows per compatibilità; mobile chiuso ma sicuro = iOS vs apertura Android (che usa kernel Linux al suo interno!).

✓Sistema operativo è intermediario tra hardware e app/utente: senza di esso i programmi non potrebbero usare CPU, memoria o periferiche in modo coordinato e sicuro.
✓Le sei funzionalità: gestione processore (scheduling, stati), memoria (allocazione + virtuale), periferiche (driver), file system, interfaccia utente (CLI/GUI) e sicurezza (permessi).
✓Kernel è nucleo in kernel mode; resto in user mode con system call. Architetture monolitica, modulare e microkernel, con soluzioni ibride reali (Windows NT, XNU, Linux modulare).
✓Windows (NT ibrido proprietario), Linux (monolitico modulare open source GPL) e iOS (XNU ibrido proprietario sandboxato) = tre filosofie, contesti diversi.