giovedì 4 agosto 2011

Il Sistema Operativo da vicino

Oggi vi spiegherò più in dettaglio com'è fatto un Sistema Operativo.
Abbiamo visto che il Sistema operativo è essenziale per il funzionamento del computer perchè è la base su cui poggiano gli altri programmi che utilizziamo quotidianamente (fogli di calcolo, word processor, gestionali, ecc.).
Abbiamo anche visto che esistono diversi Sistemi Operativi e molte volte, purtroppo, se vogliamo usare un programma particolare dobbiamo usare un particolare Sistema Operativo, perché il programma funziona (o, come si dice in gergo, gira) solo su quel particolare Sistema Operativo.
Tutti i sistemi operativi, però, hanno una struttura di base simile per svolgere alcune funzioni essenziali come la gestione dell'hardware e dei file, per esempio.




Il cuore del Sistema Operativo (SO) si chiama kernel, a lui è affidato soprattutto il compito di gestire i dispositivi hardware ed a lui fanno riferimento tutti gli altri moduli.

Poi c'è l'interfaccia utente che può essere sia grafica - GUI - che testuale - Consolle o Terminale - ed è con lei che abbiamo a che fare quando usiamo il SO ed è tramite lei che utilizziamo le funzioni del SO.
La maggior parte dei SO ha entrambe le interfacce e l'uso dell'una o dell'altra dipende dall'utente e dalle sue capacità.

Altro modulo essenziale del SO è il File System che si occupa di organizzare i dati nelle memorie di massa Hard Disk, Pen Disk, CD e DVD, ecc.
Esistono tanti tipi di File System ognuno con le proprie caratteristiche, vantaggi e svantaggi (avete mai sentito parlare di FAT32, NTFS o ext3 ed ext4?).
Poi c'è il gestore della memoria che è essenziale perchè abbiamo visto come il PC non fa altro che far girare i programmi e che i programmi che girano devono risiedere in memoria.
Una cosa importante che fa il gestore della memoria è qiella di far credere al SO di avere più memoria di quella reale utilizzando l'Hard Disk allo scopo (si parla di memoria virtuale, di paging e di swap, ma non è il caso di affrontare ora questi argomenti).

Poi c'è lo scheduler che gestisce l'esecuzione "contemporanea" di più operazioni.
Esistono infatti SO detti multitasking (ormai la maggior parte di quelli in uso quotidianamente) che permettono di eseguire più programmi contemporaneamente.
In realtà il concetto di contemporaneità è relativo:
a noi sembra che i programmi avanzino contemporaneamente perchè dietro le quinte c'è qualcuno che lavora alacremente per farcelo credere e per fare in modo che i programmi posano convivere senza traumi.

Questi sono quindi i moduli che ritroveremo in ogni SO anche se in forme diverse (per esempio ci sono SO il cui Kernel è modulare ed altri in cui è monolitico).
Quando si fanno corsi di informatica si impara di fatto ad usare questo o quel SO. La maggior parte dei formatori insegna ad usare Windows (quale? XP, Vista, 7? Boh)

Io vi parlerò soprattutto di Ubuntu, evidenziando le similitudini con altri SO, in modo che possiate impare ad approcciare il computer senza paura anche se i bottoni non si trovano nelle stesse posizioni (proprio come fate quando usate telefonini diversi e non pretendete che i tasti siano sempre lì!).
Alle prossime.

0 commenti: