Introduzione
I Sistemi Operativi (SO) sono insiemi di programmi che gestiscono l’hardware di un computer, permettendo all’utente di interagire con esso.
Il SO si occupa di gestire risorse hardware come processori, memorie e dispositivi di input/output, e fornisce un’interfaccia tra utente e macchina.
Inoltre, offre un ambiente sicuro per l’esecuzione dei programmi software. Il SO è strutturato in modo gerarchico, con più componenti che collaborano tra loro.
Il nucleo (kernel) è la parte centrale del SO che interagisce con l’hardware e gestisce i processi, mentre altri moduli includono servizi di sistema e strumenti di gestione dei file.
Sistemi Operativi
Un sistema operativo (SO, in inglese OS) è un software di base composto da più componenti: kernel, scheduler, file system, gestore della memoria, gestore delle periferiche,
interfaccia utente e spooler di stampa. Gestisce le risorse hardware e software della macchina, fornendo servizi ai programmi applicativi.
Esempi: Windows, macOS, Linux, Unix-like, BSD, Chrome OS per desktop;
iOS, Android, HarmonyOS, Windows Phone, Symbian, KaiOS per mobile;
Windows Server, IBM i, distribuzioni Linux per server.
Nucleo (Kernel)
Il kernel è il cuore del sistema operativo, eseguito in modalità privilegiata, e fornisce accesso controllato all’hardware.
Può essere monolitico, microkernel o modulare.
Nei kernel monolitici sono integrate gestione della memoria, CPU e driver; nei microkernel solo le funzioni essenziali; nei modulari alcune parti sono caricabili dinamicamente.
Celebre è il dibattito tra Linus Torvalds e Andrew Tanenbaum, “LINUX is obsolete”.
Scheduler
Lo scheduler gestisce i processi nei sistemi multitasking, determinando quale processo eseguire e quando, tramite context switch.
Si distinguono il cooperative multitasking e il preemptive multitasking, con quest’ultimo più diffuso nei sistemi moderni per stabilità e sicurezza.
Nei sistemi realtime lo scheduler deve garantire tempi massimi di completamento per ogni task.
Gestore di memoria
Il gestore di memoria assegna e controlla la memoria primaria tramite la MMU, gestendo anche la memoria virtuale e la protezione tra processi.
Esegue tecniche come il paging e traduce indirizzi relativi in assoluti:
Indirizzo assoluto = Indirizzo relativo + Indirizzo di partenza.
File system
Il file system organizza e gestisce i dati sulle memorie di massa. Esempi: MS-DOS, FreeDOS, DR-DOS.
Nei sistemi moderni la comunicazione tra componenti può avvenire tramite message passing.
Interfaccia utente
L’interfaccia utente (shell) consente di interagire col sistema tramite riga di comando o interfaccia grafica (GUI).
Spooler di stampa
Lo spooler di stampa gestisce le stampe in background, memorizzando i dati e inviandoli alla stampante senza bloccare la CPU.
Oggi supporta anche più stampanti, anche remote.
Sistemi Operativi Particolari
Sistemi operativi per mainframe
I mainframe sono computer ad alte prestazioni per grandi organizzazioni, con multiutenza, affidabilità e capacità di elaborazione elevate.
Le macchine IBM usano IBM i ma supportano anche Linux.
I nuovi IBM Z, più compatti ed efficienti, supportano Linux e offrono vantaggi come:
- Affidabilità e gestibilità maturate in 40 anni.
- Grande flessibilità e granularità dei modelli recenti.
- Un sistema operativo open source disponibile su IBM Z.
- Prezzi stabili con maggiore capacità di calcolo.
- Tasso di utilizzo 80–100% contro il 20% dei server distribuiti.
- Efficienza energetica e riduzione dello spazio fisico.
- Sicurezza integrata: encryption e gestione chiavi.
Motivi per adottare Linux su IBM Z:
- Standardizzazione: continuità con sistemi Linux esistenti.
- Consolidamento: unificazione dei server in un’unica macchina.
- Facilità d’installazione: disponibili versioni come SUSE, Red Hat e CentOS.