Il sistema operativo di un elaboratore è il programma più importante. È quello che viene attivato al momento dell'accensione dell'elaboratore; esso esegue gli altri programmi. Sarebbe come se il cuoco eseguisse una ricetta (il sistema operativo) che gli dà le istruzioni per poter eseguire le altre ricette.
Il sistema operativo determina quindi il comportamento dell'elaboratore. Cambiare sistema operativo in un elaboratore è come cambiare il direttore di un ufficio: a seconda della sua professionalità e delle sue doti personali, l'ufficio funzionerà in modo più o meno efficiente rispetto a prima, e pur se non cambia niente altro, per gli impiegati potrebbe tradursi in un modo di lavorare completamente nuovo.
Ci sono sicuramente affinità tra un sistema operativo e l'altro, ma questo vuol sempre dire una marea di dettagli differenti e soprattutto l'impossibilità di fare funzionare lo stesso programma su due sistemi operativi differenti, a meno che ciò sia stato previsto e voluto da chi costruisce i sistemi operativi.
Il sistema operativo è ciò che regola il funzionamento di tutto l'insieme (elaboratore e dispositivi). Volendo schematizzare, si possono distinguere tre aspetti di questo:
Il kernel è il nocciolo del sistema. Idealmente, è una sorta di astrazione nei confronti
delle caratteristiche fisiche della macchina ed è il livello a cui i programmi si rivolgono
per qualunque operazione. Ciò significa, per esempio, che i programmi non devono
(non dovrebbero) accedere direttamente ai dispositivi fisici, ma possono utilizzare
dispositivi logici definiti dal kernel. Questa è la base su cui si fonda la portabilità
di un sistema operativo su piattaforme fisiche differenti.
Il kernel avvolge idealmente l'elaboratore e i suoi dispositivi fisici, ovvero tutto l'
hardware, e si occupa di interagire con i programmi che ignorano l'elaboratore fisico.
La portabilità è quindi la possibilità di trasferire dei programmi su piattaforme
differenti, e ciò si attua normalmente in presenza di kernel che forniscono funzionalità
compatibili.
Naturalmente esistono sistemi operativi che non forniscono kernel tanto sofisticati e
lasciano ai programmi l'onere di accedere direttamente alle unità fisiche dell'elaboratore.
Si tratta però di sistemi di serie "B", anche se la loro nascita è derivata da necessità
evidenti causate dalle limitazioni di risorse degli elaboratori per i quali venivano
progettati.
Il kernel offre i suoi servizi e l'accesso ai dispositivi attraverso chiamate di funzione.
Però, mentre i programmi accedono direttamente a questi, perché l'utente possa accedere
ai servizi del sistema occorre un programma particolare che si ponga come intermediario
tra l'utente (attraverso il terminale) e il kernel. Questo tipo di programma è detto shell.
Come suggerisce il nome (conchiglia), si tratta di qualcosa che avvolge il kernel, come se
quest'ultimo fosse una perla.
La shell è il programma che consente all'utente di accedere al sistema. I terminali
attraverso cui si interagisce con la shell sono comunque parte dell'hardware controllato
dal kernel.
Un programma shell può essere qualunque cosa, purché in grado di permettere all'utente di
avviare, e possibilmente di controllare i programmi. La forma più semplice, e anche la più
vecchia, è la riga di comando presentata da un invito, o prompt. Questo sistema ha il
vantaggio di poter essere utilizzato in qualunque tipo di terminale, compresa la
telescrivente. Nella sua forma più evoluta, può arrivare a un sistema grafico di icone o
di oggetti grafici simili, oppure ancora a un sistema di riconoscimento di comandi in
forma vocale. Si tratta sempre di shell.
I programmi di utilità sono un insieme di piccole applicazioni utili per la gestione del sistema. Teoricamente, tutte le funzionalità amministrative per la gestione del sistema potrebbero essere incorporate in una shell; in pratica, di solito questo non si fa. Dal momento che le shell tradizionali incorporano alcuni comandi di uso frequente, spesso si perde la cognizione della differenza che c'è tra le funzionalità fornite dalla shell e i programmi di utilità.
L'elaboratore non può essere una macchina fine a se stessa. Deve servire a qualcosa, al limite a giocare. È importante ricordare che tutto nasce da un bisogno da soddisfare. I programmi applicativi sono quelli che (finalmente) servono a soddisfare i bisogni, e quindi, rappresentano l'unica motivazione per l'esistenza degli elaboratori.
![]() su |
![]() chiudi |
![]() sommario |