EVOLUZIONE DEI SISTEMI OPERATIVI
Relazione di Francesco Lainati
I sistemi operativi.
I sistemi operativi costituiscono l’interfaccia tra la macchina e l’utente, hanno lo scopo di gestire le
risorse del sistema di elaborazione e coordinare gli eventi che discendono dal suo uso.
L’evoluzione dei sistemi operativi inizia negli anni ’40 con l’avvento dei primi elaboratori
elettronici, erano composti da poche istruzioni per poter permettere l’utilizzo del computer da parte
dell’operatore-programmatore e il trasferimento da un lavoro all’altro senza il suo intervento tramite
sequenzializzatori automatici.
Negli anni ’50 grazie all’avvento di linguaggi più evoluti (come ad esempio il Fortran) si comincia
a parlare di elaborazione BATCH, al sistema operativo viene cioè fornito un unico lotto di istruzioni
per l’esecuzione di più lavori che vengono eseguiti singolarmente in sequenza. Grazie a questa
innovazione aumentò la velocità produttiva dei computer. Negli anni successivi si svilupparono
sistemi operativi di nuova concezione i quali permisero l’utilizzo del computer durante
l’elaborazione (INTERATTIVITA’) e la divisione del tempo d’uso delle risorse da parte di più
utenti (TIME SHARING). Si inizia a parlare anche di sistemi REAL TIME in cui cioè i tempi di
risposta sono tali da riuscire ad influenzare un processo durante la sua stessa esecuzione.
Dagli anni ’70 la diffusione di massa degli elaboratori elettronici richiese la standardizzazione dei
sistemi operativi e la loro compatibilità con i prodotti software specifici per ogni attività.
Negli ultimi anni i sistemi operativi sono stati progettati per essere in grado di gestire una immensa
quantità di dati soprattutto a causa delle innovazioni multimediali riguardanti suoni, immagini,
testi….
Il sistema operativo si occupa oggi di tutte le risorse presenti nel computer intervenendo sia a livello
del software che dell’hardware, partendo quindi dai programmi passando alla CPU, alla memoria, ai
supporti magnetici e per finire alla gestione di tutte le iterazioni tra queste componenti attraverso
procedimenti ben definiti che ne permettono l’utilizzo, il controllo, la protezione, l’espansione….
I sistemi operativi di ultima generazione più diffusi sono:





DOS/WINDOWS
OS/2
UNIX
LYNUX
OSI
Ms-Dos
Il sistema operativo Ms-Dos progettato inizialmente dalla Microsoft venne adottato quasi subito
come standard per i personal computer.
E' un sistema monoutente che si compone di due insiemi di istruzioni: i comandi interni sempre
residenti in memoria dopo il caricamento automatico che segue l'accensione ed i comandi esterni
che vengono caricati a richiesta dell'utente tramite un comando.
E' possibile lavorare anche in modo batch tramite un file in cui vengono inserite una serie di
comandi che verranno eseguiti solo con il caricamento del file.
Il sistema operativo si compone di tre moduli principali:



modulo DOS (Disk Operating System): si occupa della gestione dei dischi e fornisce
all'utente una interfaccia logica per la gestione logica dei file disco;
modulo BIOS (Basic Input Output System): provvede alla gestione dell' input/output;
modulo Command: serve per l'interpretazione e l'esecuzione dei comandi, rappresenta
quindi l'interfaccia tra l'utente ed il sistema operativo.
Nelle ultime versioni (dalla 5.0 in poi) DOS ha risposto alla richiesta dei produttori software di
poter gestire più memoria senza troppi artifici e senza sacrificare memoria convenzionale, ha
permesso di eseguire un nuovo programma dopo avere "congelato" gli altri in corso di escuzione
permettendo (funzione multitasking) di recuperare i file cancellati.
Il sistema operativo DOS non è però in grado di fornire una reale funzione di multitask cioè
l'esecuzione contemporanea di più programmi e una interfaccia grafica di più immediato accesso,
funzioni raggiunte solo dalle versioni più recenti di Windows che si può considerare l'evoluzione
del DOS.
Microsoft Windows
Diffusissima famiglia di sistemi operativi grafici sviluppati nel corso degli anni dalla Microsoft,
basati su un "piano di lavoro" (desktop) organizzato in finestre (windows) all'interno delle quali
aprire programmi e conservare oggetti e documenti. Al momento, circa l'80% dei personal computer
adotta un sistema operativo Microsoft Windows.
Fra le principali versioni di Windows, ricordiamo l'ormai superato Windows 3.1 (con la variante
Windows for Workgroups, capace di gestire la multiutenza), e i più recenti Windows 95 e 98.
Windows è fortemente integrato con Internet, anche attraverso la trasformazione dei programmi di
navigazione in componenti del sistema operativo.
La versione professionale di Windows, inizialmente battezzata Windows NT, è giunta alla quinta
versione, denominata Windows 2000, che permette di creare reti di computer che sfruttano i
protocolli e gli strumenti di comunicazione di Internet. Questo gli permette di gestire la multiutenza
in maniera assai sofisticata, dividendo gli utenti in categorie a seconda delle quali possono o meno
accedere alle risorse del sistema.
Di Windows esiste anche una versione ridotta, adatta a computer palmari o dispositivi portatili
(autoradio, cellulari), denominata Windows CE.
MAC OS
II sistema operativo adottato dai computer Macintosh è stato il primo esempio di sistema operativo
grafico a conoscere una larga diffusione a livello di personal computer, ben prima che la Microsoft
distribuisse le prime versioni di Windows. Le soluzioni tecniche adottate dal MAC OS sono state
sempre all'avanguardia, soprattutto nel campo della facilità d'uso della interfaccia utente, e sono
state premiate da una larga diffusione dei Macintosh nei settori "di punta" come quello della grafica
professionale. Tuttavia il gap di diffusione fra il numero di computer Macintosh e quello, ben
maggiore, dei computer IBM compatibili basati su versioni del sistema operativo Windows è andato
crescendo negli ultimi anni.
OS/2
Sistema operativo grafico sviluppato a partire dalla fine degli anni '80 dall'IBM, all'inizio in
collaborazione, ma ben presto in concorrenza con i sistemi Microsoft Windows. Nonostante le sue
avanzate caratteristiche tecnologiche, il predominio di fatto della Microsoft nel settore del software
ha fatto sì che la maggior parte degli utenti OS/2 finisse comunque per utilizzarlo come una sorta di
"emulatore" di Windows, usando gli stessi programmi normalmente utilizzati con il sistema
operativo della Microsoft. Come è facile capire, questa situazione ha finito per relegare in secondo
piano i punti di forza specifici di OS/2 e, in ultima analisi, per indurre la maggior parte dei suoi
utenti a tornare direttamente ai sistemi operativi della famiglia Windows.
OSI
Sin dalla comparsa sul mercato dei primi personal computer, si é sentita la necessità di poter
trasferire dati liberamente, senza dover necessariamente ricorrere agli ingombranti e delicatissimi
floppy disk.
Le prime reti di PC, venivano costruite in un modo per così dire "casereccio", in quanto mancavano
precisi standard di riferimento. Le reti potevano funzionare benissimo, ma il problema era quello di
interfacciarsi con l'esterno: era infatti impensabile tentare di far comunicare tra loro due reti distinte,
a causa delle enormi differenze tra i vari tipi di implementazioni.
Proprio su questo problema decise di intervenire la ISO (International Standard Organization), che
nel 1979 pubblicò il cosiddetto OSI Model (Open System Interconnection Model), il primo
schema di riferimento per progettatori ed implementatori di reti.
Il modello di riferimento OSI é costituito dai seguenti sette strati distinti:
7) Strato dell'applicazione
6) Strato della presentazione
5) Strato della sessione
4) Strato del trasporto
3) Strato della rete
2) Strato del collegamento dati
1) Strato fisico
Esso descrive il modo in cui le informazioni si fanno strada da un'applicazione su di un sistema host
ad un'applicazione su di un altro sistema host. Mentre le informazioni discendono attraverso gli
strati della rete sull'host mittente, cambiano il proprio formato in ciascuno strato.
I dati che provengono dagli strati superiori sono incapsulati in informazioni di intestazione dallo
strato immediatamente inferiore
Questo diagramma mostra che, come i dati discendono attraverso l'host a sinistra, la combinazione
tra l'intestazione dello stato precedente ed i dati é incapsulata nell'intestazione dello strato
successivo; per esempio i dati originali di un messaggio e-mail sono incapsulati in un'intestazione
del segmento.
Questa assicura che gli host coinvolti nel messaggio siano in grado di comunicare in modo
attendibile l'uno con l'altro.
Al livello della rete, i dati (che ora comprendono l'intestazione del segmento ed i dati originali
ricevuti dagli strati superiori) si sistemano in un pacchetto che contiene un'intestazione di rete.
Questa intestazione di rete comprende gli indirizzi logici dell'origine e della destinazione.
In una rete interconnessa TCP/IP, sono gli indirizzi IP degli host mittente e destinatario ed aiutano
nell'instradamento dei pacchetti tra i due host attraverso la rete.
Allo strato del collegamento dati, l'intestazione della rete e i suoi dati sono incapsulati in
un'intestazione della cornice, che definisce il modo in cui le informazioni saranno trasportate
attraverso l'interfaccia della rete sulla rete fisica. Ciascun dispositivo sulla rete richiede l'inclusione
in una cornice per connettersi con il dispositivo successivo della rete. L'intestazione della cornice
include anche gli indirizzi fisici degli host mittente e destinatario. Infine, allo strato fisico,
l'intestazione della cornice ed i suoi dati si convertono in un formato che consente la trasmissione
delle informazioni su di un mezzo come i cavi di rete.
Quando i dati arrivano all'host destinatario, i bit sono nuovamente convertiti in un'intestazione della
cornice con i suoi dati. Quando le informazioni si spostano verso l'alto attraverso gli strati della rete,
ciascuna intestazione serve a determinare in che modo spostare i dati verso gli strati superiori.
A ciascuno strato si staccano le informazioni di intestazione dello strato precedente, in modo tale
che i dati abbiano di nuovo lo stesso formato che avevano al momento della trasmissione dallo
strato corrispondente dell'host mittente. Ora che si sono ripassate le caratteristiche basilari del
modello di riferimento OSI, nei paragrafi che seguono esamineremo brevemente ciascuno degli
strati del modello.
Ciascuno strato deve compiere una funzione predeterminata. Mentre i dati discendono attraverso gli
strati, l’intestazione ed i dati provenienti dal livello superiore diventano la sezione dei dati del
livello immediatamente inferiore. I dati non possono saltare uno strato, mentre scendono attraverso
il modello OSI.
Questo semplifica il processo della trasmissione e consente lo sviluppo di nuovi protocolli, poiché
questi devono semplicemente interagire con gli strati sopra e sotto a quello in cui sono
implementati.
Lo strato fisico
Lo strato fisico definisce le correnti elettriche, gli impulsi fisici o gli impulsi ottici che sono
coinvolti nel trasporto dei dati dalla NIC (Network Interface Card, la scheda di rete) di un host al
sistema di comunicazione.
I requisiti e le caratteristiche necessarie per la trasmissione sono in genere documentate in standard
come V.35 o RS-232 (porta seriale). Lo strato fisico é responsabile per la trasmissione fisica dei bit
da un computer all'altro.
Lo strato del collegamento dati
Lo strato del collegamento dati invia le cornici dati dallo strato della rete allo strato fisico. Quando
lo strato del collegamento dati riceve i bit dallo strato fisico, li traduce in cornici dati. Una cornice
dati in genere comprende le seguenti componenti:
• ID destinatario: questo ID, di solito, é l'indirizzo MAC dell'host di destinazione o del gateway
predefinito
• ID mittente: questo ID, di solito, é l'indirizzo MAC dell'host sorgente
• Informazioni di controllo: includono informazioni quali l'effettivo tipo di cornice e notizie
sull'instradamento e la segmentazione
• Controllo ciclico di ridondanza (CRC, Cyclic Redundancy Check): effettua la correzione degli
errori e verifica che la cornice dati sia arrivata intatta all'host destinatario di riferimento Lo strato
del collegamento dati é suddiviso a sua volta in due sottostrati, chiamati rispettivamente sottostrato
del controllo del collegamento logico (Logical Link Control, LLC) e sottostrato del controllo
dell'accesso ai supporti di trasmissione (Media Access Control, MAC). Il sottostrato LLC si occupa
del controllo degli errori e lavora soprattutto con lo strato della rete per supportare servizi senza
connessione od orientati alla connessione. Il sottostrato MAC fornisce l'accesso al supporto di
trasmissione effettivo della LAN. Lavora soprattutto con lo strato fisico.
Lo strato della rete
Lo strato della rete determina il modo migliore per spostare i dati da un host all'altro. Gestisce
l'indirizzamento dei messaggi e la traduzione degli indirizzi logici (come per esempio gli indirizzi
IP) in indirizzi fisici (indirizzi MAC). Lo strato della rete determina anche la strada che i dati
percorrono tra l'host mittente e quello destinatario.
Se i pacchetti in corso di trasmissione sono troppo grandi per la topologia dell'host destinatario, lo
strato della rete compensa, suddividendo i dati in pacchetti più piccoli, che saranno poi riassemblati
una volta giunti a destinazione.
Lo strato del trasporto
Lo strato del trasporto segmenta e riassembla i dati in un flusso di dati. Provvede ad una
connessione da un capo all’altro tra l’host mittente e quello destinatario.
Quando si verifica una trasmissione di dati dall’uno all’altro, tali dati sono segmentati in insiemi di
informazioni più piccoli. I segmenti ricevono una numerazione sequenziale e sono inviati all’host
destinatario.
Quando questo riceve i segmenti, invia una conferma. Nel caso che un segmento non arrivi, l’host
destinatario può richiede un secondo invio del segmento specifico. In questo modo sussiste un
controllo degli errori per il trasporto dei dati.
Standardizzazione del protocollo
Riprendiamo l'esempio del paragrafo precedente. Cosa sarebbe successo se gli impiegati della ditta
destinataria, si fossero trovati di fronte ad una lettera scritta in giapponese?
Si sarebbero trovati quantomeno spiazzati ed assolutamente non in grado né di capire, né tantomeno
di rispondere al messaggio. Tutto ciò immaginando che il postino conoscesse il giapponese e
riuscisse a portare la lettera alla giusta destinazione.
Fortunatamente, la comunicazione é andata a buon fine, in quanto entrambe le ditte utilizzavano il
medesimo protocollo ed analoghe interfacce di comunicazione, come appunto la stessa lingua. Ne
nasce una considerazione importante: la base di ogni protocollo é il concetto di standardizzazione.
Più vasta é l'accettazione dello standard, più forte e diffuso é il protocollo. Non sempre, però, ed é
bene ricordarlo, gli standard più diffusi sono per forza i più efficienti.
Gli esempi sono numerosi, vedi il sistema operativo Windows contro Unix/Linux, il software di
compressione dati Winzip contro Winrar, ecc...
In ogni modo i sistemi divenuti standard sono generalmente i più conosciuti e ciò semplifica
notevolmente le operazioni di implementazione e di trouble-shooting. Portiamo proprio il caso del
TCP/IP, che sarebbe ormai dovuto soffocare sotto il peso dei suoi anni, ma che continua
imperterrito a gestire reti di ogni sorta.
Lo strato della sessione
Lo strato della sessione consente a due applicazioni su host separati di stabilire una connessione per
la comunicazione, chiamata sessione. Le sessioni assicurano che i messaggi siano inviati e ricevuti
con un alto grado di attendibilità.
Lo strato della sessione svolge funzioni di sicurezza, per assicurare che due host siano autorizzati a
comunicare attraverso la rete. Lo strato della sessione coordina le richieste di servizio e le risposte
che hanno luogo quando le applicazioni comunicano tra gli host. Di seguito, sono elencati alcuni
diffusi protocolli ed interfacce che operano allo strato della sessione:
• Remote Procedure Call (RPC): una RPC é un meccanismo di indirizzamento che consente di
costituire una richiesta su di un client e di eseguirla poi su di un server al livello di sicurezza del
client;
• Sistemi X-Windows: permettono a terminali intelligenti di comunicare con computer UNIX come
se fossero direttamente attaccati.
Lo strato della presentazione
Lo strato della presentazione determina il modo in cui i dati sono formattati nello scambio tra
computer in una rete. I dati ricevuti dallo strato dell'applicazione sono tradotti in un formato
intermediario comunemente riconosciuto.
Lo strato della presentazione è anche responsabile per tutte le traduzioni e le codifiche dei dati e per
le conversioni dei set di caratteri e dei protocolli. E' inoltre responsabile per le conversioni della
sintassi tra due host in comunicazione, per esempio nel caso che uno degli host usi lo standard
ASCII per le sue rappresentazioni di testo e dati, mentre l'altro host si serva di EBCDIC.
Elencati di seguito si trovano alcuni usuali formati di presentazione gestiti dallo strato della
presentazione:
• ASCII: l’American Standard Code for Information Interchange è un set di caratteri a 8 bit usato
per definire tutti i caratteri alfanumerici. E’ l’implementazione più comune per le trasmissioni di
testi sul computer;
• EBCDIC: l’Extenden Binary Coded Decimal Interchange Code è un metodo di rappresentazione
dei testi usato ampiamente sui mainframe e sui mini computer IBM;
• XDR (External data representation): si servono di XDR applicazioni come NFS e NIS per fornire
un formato universale per la trasmissione di testi tra due host. Facilita le trasmissioni tra due host
che si servono di differenti rappresentazioni dei testi (come per esempio i sopra citati EBCDIC e
ASCII);
• File binari: molti file audio, grafici ed eseguibili sono convertiti in un formato binario al livello
della presentazione. Quando i dati giungono all’host destinatario, l’estensione dei file mette in
relazione il formato di presentazione con un’applicazione associata.
Lo strato dell’applicazione
Lo strato dell’applicazione consente ai programmi di accedere ai servizi di rete. Non ha a che fare
con i programmi che necessitano solo di risorse locali. Per usare lo strato dell’applicazione, un
programma deve avere una componente della comunicazione che richiede risorse di rete.
Di seguito, si trova un elenco di tipi di programmi attualmente in uso che coinvolgono lo strato
dell’applicazione:
• Posta elettronica: lo strato dell’applicazione fornisce servizi di comunicazione in rete. Le
implementazioni comuni comprendono prodotti come Microsoft Exchange Server, Microsoft
Outlook, Eudora Express, Netscape Messenger o Lotus Notes;
• Electronic Data Interchange (EDI): lo strato dell’applicazione consente un flusso di dati gestionali
più efficiente per le ordinazioni e le spedizioni di merci, gli inventari e la contabilità tra aziende
associate;
• Applicazioni per le teleconferenze: lo strato dell’applicazione consente agli utenti che si trovano
in luoghi remoti di utilizzare applicazioni per riunirsi, come per esempio video, dati vocali e
scambio di fax. Un programma molto diffuso che si serve di questa tecnologia è Microsoft Net
Meeting;
• World Wide Web (WWW): attraverso i browser, gli utenti possono vedere informazioni
provenienti da località remote della rete, in formati quali testo, grafica, audio e video. Tra i più
comuni server web, al momento attuale, si contano Apache Web Server, Netscape Suite-Spot e
Microsoft Internet Information Server.