Ehilà, studenti di informatica! In questo blog post parleremo dei sistemi operativi. In particolare, risponderemo alla domanda: “Che cos’è un sistema operativo e come funziona?”.
Esploreremo inoltre alcuni dei diversi tipi di sistemi operativi oggi disponibili sul mercato e alla fine di questo post dovreste avere una buona comprensione di cosa sia un sistema operativo e di come svolga un ruolo vitale nel funzionamento del vostro computer o dispositivo mobile. Quindi, senza ulteriori indugi, iniziamo!
Indice dei contenuti
Che cos’è e come funziona un sistema operativo?
Un sistema operativo, spesso abbreviato in “OS”, è un tipo di software che gestisce le risorse hardware e software di un computer. In termini più semplici, è il software che fa funzionare tutto ciò che è presente sul computer.
Il sistema operativo svolge compiti di base come il controllo dell’avvio delle applicazioni, la gestione dei file e la connessione a dispositivi come stampanti o scanner. Inoltre, fornisce una piattaforma su cui gli sviluppatori possono creare nuove applicazioni.
Semplificando, i sistemi operativi sono composti essenzialmente da 5 parti: il Kernel, la Shell, lo Scheduler, il File System e lo Spooler.
Cos’è il kernel
Il kernel è il componente centrale di qualsiasi sistema operativo. Funge da ponte tra i componenti hardware di un computer e i programmi in esecuzione sul computer stesso. Data la sua importanza, è il primo programma a essere caricato in memoria quando un computer viene acceso e l’ultimo a essere chiuso quando viene spento. In questo articolo, daremo un’occhiata più da vicino a cos’è e come funziona il kernel.
Come funziona il kernel
Il kernel funziona utilizzando diverse modalità di gestione, tra cui la comunicazione tra processi e le chiamate di sistema. La comunicazione tra processi (IPC) consente a diversi processi, o programmi, di scambiare informazioni tra loro. Le chiamate di sistema, invece, sono richieste fatte da un processo al kernel per accedere a determinate risorse, come la RAM o lo spazio su disco.
Il kernel gestisce anche l’allocazione della memoria, cioè decide quali processi avranno accesso a quali aree di memoria in un determinato momento. Questo assicura che i processi non interferiscano o sovrascrivano i dati degli altri. La gestione della memoria è una parte essenziale di qualsiasi sistema operativo.
Il ruolo della Shell nel sistema operativo
La shell consente all’utente il massimo livello di interazione con il sistema operativo. Attraverso la shell è possibile impartire comandi e richiedere l’avvio dei programmi.
Il termine “shell”, in informatica, indica generalmente un componente che fornisce un livello di astrazione tra l’utente e il sistema operativo, ovvero permette di interagire con il sistema senza doverne gestire le complessità di fondo. L’esempio più classico di shell è quello di Unix, sviluppato negli anni ’70 e poi adottato da molti altri sistemi operativi.
Il ruolo della shell Unix è quello di fornire un’interfaccia a riga di comando (CLI) per interagire con il sistema operativo. Quando si apre una finestra di terminale e si digita un comando, è la shell che interpreta ciò che è stato digitato e decide quale azione intraprendere. Ad esempio, se si digita il comando “ls”, la shell elenca il contenuto della directory corrente. Se si digita “cd”, la shell cambia la directory di lavoro corrente.
Anche se i comandi specifici disponibili variano da una shell all’altra, tutte forniscono funzionalità simili. Ad esempio, la maggior parte delle shell consente di definire alias (scorciatoie per comandi lunghi o usati di frequente), di impostare variabili ambientali (che possono essere usate dai programmi per determinare il loro comportamento) e di eseguire programmi in background (in modo da poter continuare a usare il terminale per altre attività mentre sono in esecuzione).
Per fornire agli utenti un modo più efficiente di interagire con il computer, i moderni sistemi operativi sono dotati di un’interfaccia grafica (GUI).
GUI è l’acronimo di Graphic User Interface (interfaccia grafica utente). È un tipo di interfaccia che consente agli utenti di interagire con i dispositivi elettronici attraverso icone grafiche e indicatori visivi come finestre, menu, pulsanti e icone.
Questo tipo di shell è in genere più facile da usare rispetto alla sua controparte con terminale a riga di comando. Tuttavia, va notato che alcuni utenti esperti preferiscono le shell testuali perché tendono a essere più veloci ed efficienti.
Che cos’è uno scheduler?
Uno scheduler è un programma che assegna il tempo del processore a ciascun programma o processo in esecuzione in un computer. In parole povere, determina la velocità e il tempo di esecuzione dei processi
Esistono due tipi di scheduling: preventivo e non-preventivo . La pianificazione preventiva consente allo scheduler di interrompere un processo già in esecuzione per eseguirne un altro. La schedulazione non preventiva non consente questa interruzione. Al contrario, lo scheduler lascia che il processo finisca prima di avviarne un altro
I processi sono solitamente programmati in base al loro livello di priorità. I processi più importanti hanno la priorità più alta, mentre quelli meno importanti hanno la priorità più bassa. Lo scheduler sceglie il processo successivo da eseguire in base al suo livello di priorità. Se due processi hanno lo stesso livello di priorità, lo scheduler utilizza una tecnica chiamata schedulazione Round Robin per scegliere il processo successivo.
Round Robin è un algoritmo di schedulazione della CPU in cui a ogni processo viene assegnato uno slot temporale fisso in modo ciclico. È fondamentalmente la versione preventiva dell’algoritmo di schedulazione della CPU First come First Serve. L’algoritmo Round Robin per la CPU si concentra generalmente sulla tecnica di condivisione del tempo.
In parole povere, questa tecnica prevede che a ogni processo venga concesso un piccolo lasso di tempo per l’esecuzione, chiamato time slice o quantum, prima di passare al processo successivo.
Che cosa è e a cosa serve il File System
Il file system è un componente importante di qualsiasi sistema operativo. Infatti, permette al sistema operativo di accedere ai dati registrati nella memoria di massa.
Come funziona il file system?
Il file system è responsabile dell’organizzazione e dell’archiviazione dei file su un computer. Tiene traccia di tutti i file presenti sul computer e della loro posizione. Tiene anche traccia di chi ha accesso a ciascun file e del livello di accesso di cui dispone
Esistono due tipi principali di file system:
- NTFS è il tipo di file system più recente ed è utilizzato da Windows NT, 2000, XP, Vista e 7. FAT32 è un tipo di file system più vecchio. FAT32 è un vecchio tipo di file system utilizzato da DOS, Windows 95, 98 e ME. NTFS è un file system più complesso di FAT32 e supporta funzioni quali la compressione, la crittografia e le quote disco.
- FAT32 è un file system più semplice che non supporta queste funzioni. Tuttavia, FAT32 ha una migliore compatibilità all’indietro rispetto a NTFS. Ciò significa che può essere letto dai sistemi operativi più vecchi che non supportano NTFS
Perché il file system è importante
Il file system è importante perché è responsabile dell’organizzazione e dell’archiviazione dei file su un computer. Senza un file system, sarebbe molto difficile tenere traccia di tutti i file presenti su un computer. Il file system garantisce anche la sicurezza, in quanto tiene traccia di chi ha accesso a ciascun file e del livello di accesso.
Lo Spooler: l’importanza dello spazio di archiviazione temporaneo
Lo spooler è uno spazio per memorizzare temporaneamente i dati in attesa di essere elaborati dal computer o da una periferica esterna (ad esempio, una stampante). In altre parole, è un’area di attesa per i dati che devono essere elaborati in modo sequenziale.
Perché lo spooler è importante
Lo spooler è importante perché consente al computer di elaborare più attività contemporaneamente. Ad esempio, se si stampa un documento e si lavora contemporaneamente su un foglio di calcolo, lo spooler tratterrà i dati per entrambe le attività finché non sarà il loro turno di elaborazione. In questo modo si evita che un’attività blocchi il completamento di un’altra.
Come funziona lo spooler
Lo spooler funziona memorizzando i dati in uno spazio temporaneo (ad esempio, un buffer) e accedendovi quando necessario. I dati vengono memorizzati nello spooler come una sequenza di lavori. Quando la stampante è pronta a stampare, prende il lavoro successivo della sequenza e inizia a stampare. Questo processo continua fino a quando tutti i lavori nello spooler sono stati elaborati
Vantaggi dell’utilizzo di uno spooler
L’utilizzo di uno spooler presenta diversi vantaggi, tra cui:
- Uso efficiente delle risorse: Lo spooler può contribuire a ridurre gli sprechi di tempo e di risorse memorizzando i dati fino a quando non sono pronti per essere elaborati
- Elaborazione più rapida: lo spooler può contribuire ad accelerare i tempi di elaborazione consentendo di elaborare più attività contemporaneamente
- Migliore multitasking: lo spooler può contribuire a migliorare il multitasking impedendo che un’attività blocchi il completamento di un’altra
- Miglioramento dell’affidabilità: lo spooler può contribuire a migliorare l’affidabilità, garantendo che i compiti vengano completati nell’ordine in cui sono stati ricevuti.
Come si classificano i sistemi operativi?
Ci sono tre diversi tipi di sistemi operativi: mobile, desktop e di rete.
I Sistemi operativi Desktop
Un sistema operativo desktop è destinato all’uso in ambito domestico o di piccolo ufficio (SOHO – Small Office Home Office), con un numero di utenti limitato.
In generale, un Sistema Operativo Desktop ha le seguenti caratteristiche:
• Supporta un singolo utente
• Esegue le applicazioni di un singolo utente
• Condivide documenti e cartelle su piccole reti con sicurezza limitata
Nel mercato software attuale, i più comuni sistemi operativi desktop si dividono in tre gruppi: Microsoft Windows, Apple Mac OS, e Linux.
- Windows: Sviluppato da Microsoft, Windows è il sistema operativo più diffuso oggi. Ha un’interfaccia utente grafica (GUI) che consente agli utenti di interagire facilmente con il sistema utilizzando icone e menu.
- Apple Mac OS: Sviluppato da Apple, Mac OS è una popolare alternativa a Windows. Anch’esso dispone di un’interfaccia grafica ed è preinstallato su tutti i computer Apple.
- Linux: Questo sistema operativo open source è comunemente utilizzato per i server, ma può essere installato anche sui computer personali. È noto per essere più sicuro e stabile di altri sistemi operativi.
I sistemi operativi di rete (NOS)
Il sistema operativo di rete (NOS) è un tipo specializzato di sistema operativo progettato per aumentare la funzionalità e la capacità di gestione in un ambiente di rete. In altre parole, un NOS mette a disposizione dei computer le risorse di rete e offre una maggiore sicurezza rispetto ai sistemi operativi desktop. Vediamo nel dettaglio alcune delle caratteristiche che rendono unico un NOS:
Supporto multiutente
Una delle caratteristiche più importanti di un NOS è il supporto di più utenti. Ciò significa che più persone possono utilizzare lo stesso computer o la stessa rete contemporaneamente. Il supporto multiutente è essenziale in un ambiente aziendale, dove più dipendenti possono avere bisogno di accedere agli stessi file o applicazioni
Supporto per più applicazioni
Oltre a supportare più utenti, un NOS esegue anche applicazioni multiutente. Ciò significa che più applicazioni possono essere in esecuzione contemporaneamente sullo stesso computer o sulla stessa rete. Il supporto di più applicazioni è essenziale in un ambiente aziendale, dove i dipendenti possono avere bisogno di utilizzare applicazioni diverse per compiti diversi.
La sicurezza
Un’altra caratteristica importante di un NOS è la maggiore sicurezza rispetto ai sistemi operativi desktop. Questo perché un NOS memorizza tutti i dati a livello centrale, rendendo più difficile l’accesso alle informazioni sensibili da parte di utenti non autorizzati. Inoltre, un NOS di solito richiede agli utenti di autenticarsi prima di poter accedere alle risorse di rete. Ciò contribuisce a garantire che solo gli utenti autorizzati abbiano accesso alle informazioni sensibili.
Un NOS mette a disposizione dei computer le risorse di rete, tra cui
- Applicazioni server, come i database condivisi: Un sistema operativo di rete può fornire l’accesso alle applicazioni server, come i database. Questo è importante in un contesto aziendale, dove più dipendenti possono avere bisogno di accedere agli stessi dati
- Archiviazione centralizzata dei dati: Un sistema operativo di rete può archiviare i dati in modo centralizzato. Questo è importante perché consente di conservare tutti i dati in un unico luogo, rendendone più facile la gestione e il backup.
- Archivio centralizzato (repository) degli account utente e delle risorse di rete: Un sistema operativo di rete può mantenere un archivio centralizzato di account utente e risorse di rete. Questo è importante perché consente di gestire tutti gli utenti e le risorse in un unico luogo
I principali sistemi operativi di rete
Quando si parla di sistemi operativi di rete, ci sono tre grandi nomi che vengono subito in mente: Windows Server, Red Hat Linux e macOS X Server.
Tutti e tre hanno caratteristiche e vantaggi unici. Vediamo di seguito ognuno di essi:
- Windows Server: sviluppato da Microsoft, Windows Server è una scelta popolare per le piccole e medie imprese. Il suo vantaggio principale è che è relativamente facile da configurare e gestire. Windows Server offre anche una buona sicurezza e affidabilità;
- Red Hat Linux: sviluppato da Red Hat, Inc, Red Hat Linux è una scelta popolare per le grandi aziende. Il suo vantaggio principale è che è molto stabile e sicuro. Red Hat Linux è anche più facile da gestire rispetto ad altre versioni di Linux;
- Mac Os X Server: sviluppato da Apple, Inc., mac Os X Server è una scelta popolare per le piccole imprese. Il suo vantaggio principale è che è molto facile da usare e da configurare. mac Os X Server offre anche una buona sicurezza e affidabilità.
La battaglia dei sistemi operativi mobili: iOS vs. Android
Nel mondo dei sistemi operativi mobili, ci sono due chiari vincitori: iOS e Android. Entrambi sono progettati per dispositivi touchscreen come smartphone e tablet ed entrambi hanno una vasta gamma di applicazioni disponibili per il download. Ma qual è il migliore? Diamo un’occhiata più da vicino a iOS e Android per vedere quale dei due è il migliore.
iOS
iOS è il sistema operativo mobile che alimenta i dispositivi Apple come iPhone, iPad e iPod touch. È noto per il suo design elegante e la facilità d’uso. Uno dei principali vantaggi di iOS rispetto ad Android è la sicurezza. Poiché Apple progetta sia l’hardware che il software dei suoi dispositivi, è in grado di garantire un livello di sicurezza superiore a quello di Android. Un altro vantaggio di iOS è il suo app store. L’App Store ha rigorosi standard di controllo della qualità, il che significa che è più probabile trovare applicazioni di alta qualità per l’iPhone o l’iPad rispetto al dispositivo Android. Infine, i dispositivi iOS tendono a essere più costosi delle loro controparti Android; tuttavia, molti utenti ritengono che valgano il costo aggiuntivo.
Android
Android è il sistema operativo mobile che alimenta dispositivi come smartphone, tablet e indossabili di diversi produttori. Sebbene i dispositivi Android non abbiano lo stesso livello di sicurezza dei dispositivi iOS, offrono un maggior grado di flessibilità e personalizzazione. Uno dei principali vantaggi di Android rispetto a iOS è la possibilità di scegliere tra un’ampia gamma di dispositivi adatti al proprio budget e alle proprie esigenze. Che siate alla ricerca di uno smartphone di fascia alta come il Samsung Galaxy S22+ o di un modello più semplice, c’è un dispositivo Android che fa per voi. Un altro vantaggio di Android è il supporto di USB OTG (On-The-Go), che consente di collegare al dispositivo periferiche USB come tastiere e mouse. Questo può essere utile se dovete lavorare seriamente sul vostro tablet o se volete usare il vostro smartphone come computer di fortuna quando siete lontani dalla vostra scrivania.