Sistema Operativo

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.