Concetti Chiave
- Il sistema operativo è una componente software essenziale per gestire le risorse hardware di un computer, fungendo da interfaccia tra l'utente e la macchina.
- Il kernel, parte centrale del sistema operativo, gestisce direttamente l'hardware ed è sviluppato in linguaggi di basso livello come Assembler e C.
- Un filesystem organizza l'archiviazione dei file su un disco rigido, permettendo l'installazione e la gestione di un sistema operativo.
- I programmi, o applicativi, si basano sul kernel per eseguire specifiche operazioni, temporaneamente caricando i dati nella RAM per l'elaborazione.
- Lo scheduler permette il multitasking nei sistemi operativi, gestendo l'esecuzione simultanea di più processi in tempi estremamente brevi.
Indice
Che cos'è il un sistema operativo?
Un sistema operativo (abbreviato anche in OS, cioè operating system, oppure SO, vale a dire sistema operativo) è una componente software fondamentale per interfacciarsi con la propria macchina. L' OS (da ora in poi userò questa abbreviazione) è in grado di gestire autonomamente le risorse hardware messe a disposizione dalla macchina, dalle cose più complesse fino a quelle più banali: le applicazioni non vengono installate "sul computer", ma bensì sul nostro OS.
Dunque, un sistema operativo è l'entità software installata direttamente sulla parte meccanica di un computer al fine di gestire tali risorse.
Kernel
Il kernel è il "cuore" di un OS: è l'interfaccia di livello più basso che si occupa di gestire l'hardware. Per adempiere questo compito, i kernel devono essere realizzati in linguaggi di basso livello (molto basso !), poiché tali linguaggi devono essere interpretati "in loco", senza l'installazione di un interprete esterno (che, ironicamente, andrebbe installato su un sistema operativo, che è quello che vorremmo installare !): dunque, per i "moduli" (le parti) kernel fondamentali si è costretti principalmente ad usare l'Assembler, per poi editare alcune parti di livello più software che hardware in C (che è comunque un linguaggio di programmazione di livello non altissimo).
Esistono due kernel principali: il kernel Windows, usato nel sistema omonimo, e il kernel Unix (editato in C !), in passato usato in ambito aziendale e poi riadattato dallo studente universitario Linux Torvalds come open source (codice libero e visibile a tutti) e più moderno e potente, nel 1991, creando il nuovo sistema operativo noto come Linux.
Filesystem
Come qualsiasi bit, un OS, che in fondo è un insieme di file, ha bisogno di uno spazio di archiviazione e installazione: per fare ciò, ogni sistema adotta un determinato "filesystem" (uno stile di organizzazione di file) per, in linguaggio tecnico, formattare un disco rigido e installarvici l'OS sopra. La compatibilità con un determinato filesystem dipende dal kernel e dal desiderio degli sviluppatori di includerlo in esso.In questo modo, l' OS ha a disposizione uno spazio per archiviare file in maniera permanente (compreso il kernel !)
Programmi e applicativi
I programmi sono una "aggiunta" al kernel di base: per questo sono anche chiamati applicativi o applicazioni. I programmi sono scritti per svolgere determinati compiti, e sfruttano il kernel come mezzo per sfruttare le risorse hardware per svolgere tali compiti.I programmi si presentano in due forme: la forma "passiva", ossia come file statico salvato sull' disco fisso, e forma "attiva" o "in esecuzione": quando il sistema decide che ha bisogno di un programma per svolgere un compito, esegue il file (ogni sistema ha la propria tipologia di file eseguibile): esso viene caricato nella memoria ad accesso casuale (RAM), occupando in essa un proprio "spazio di esecuzione". Dopo questa fase, può eseguire i compiti che per cui è stato designato, fino a quando il sistema decide di "terminare" il processo: quando un processo viene terminato, il programma viene scaricato RAM e torna allo stato di file statico sul disco (il file eseguibile principale non sparisce mai dal disco mentre un programma è in esecuzione, ma non può essere modificato/spostato/cancellato).
Gestione della RAM
Collegandosi al paragrafo precedente, la RAM, al contrario di un disco rigido, ha una capienza minore e non si può parlare di scritture e letture in modo classico, perché tutti i dati nella RAM vengono persi quando essa si spegne. Come abbiamo visto, la RAM è destinata ad ospitare i programmi in esecuzione, che una volta avviati vengono caricati nella RAM. Eventuali dati che un programma deve salvare sono scritti sul disco trasferendoli dalla RAM. Ciò risulta comodo perché prima di scrivere un file sul filesystem vorremmo prima modificarlo, e anziché effettuare molte scritture inutili, possiamo direttamente modificarlo nella memoria ad accesso casuale e solo quando abbiamo finito salvarlo sul disco.L' OS si occupa della gestione automatica di queste procedure, allocando la RAM necessaria a ogni componente del sistema e caricando e scaricando dati da e sul disco fisso.
Scheduler
Infine, l'ultima componente fondamentale di un OS è lo scheduler. Senza che ve ne accorgiate, il vostro sistema non ha un solo programma in esecuzione, ne ha migliaia ; eppure, le CPU in realtà non possono eseguire più compiti contemporaneamente (multitasking). Lo scheduler ferma temporaneamente un processo per eseguire le attività di un altro, ma ciò avviene in tempi talmente infinitesimali e insignificanti, che ci pare effetitvamente di avere più attività in esecuzione.
Interfaccia CLI o GUI
Un sistema operativo ha due modi per comunicare con l'utente: un interfaccia da riga di comando (CLI), dove l'utente da comandi manualmente al sistema, e un' interfaccia grafica (GUI), che ci consente di utilizzare funzionalità come mouse, icone, programmi grafici etc.
I principali sistemi operativi
Per finire, vediamo quali sono i principali sistemi operativi:
Windows
Sistema closed source e a pagamento, con un proprio kernel e sviluppato da Microsoft: è il più utilizzato in ambito domestico.
Linux
Open source e gratuito da sempre, Linux è basato su un vecchio kernel aziendale, Unix, modificato dallo studente universitario Linus Torvalds. È molto usato in ambito aziendale, in server e infrastrutture internet.
MacOS
Utilizzato nelle macchine della Apple, anche MacOS è basato su Unix, ma il suo codice non è open source e non è scaricabile senza comprare un computer ufficiale del produttore.Domande da interrogazione
- Che cos'è un sistema operativo e qual è la sua funzione principale?
- Qual è il ruolo del kernel in un sistema operativo?
- Come funziona la gestione della RAM in un sistema operativo?
- Qual è la differenza tra interfaccia CLI e GUI in un sistema operativo?
- Quali sono i principali sistemi operativi e le loro caratteristiche distintive?
Un sistema operativo è una componente software fondamentale che permette di interfacciarsi con la macchina, gestendo autonomamente le risorse hardware disponibili.
Il kernel è il "cuore" di un OS, gestendo l'hardware a livello più basso e permettendo l'esecuzione di programmi e applicativi.
La RAM ospita i programmi in esecuzione, e l'OS gestisce automaticamente l'allocazione della RAM, caricando e scaricando dati tra RAM e disco fisso.
L'interfaccia CLI permette di dare comandi manualmente tramite riga di comando, mentre la GUI offre un'interfaccia grafica con mouse, icone e programmi grafici.
I principali sistemi operativi sono Windows (closed source e a pagamento), Linux (open source e gratuito), e MacOS (basato su Unix, non open source).