SISTEMI OPERATIVI

Definizione e caratteristiche

Il Sistema Operativo è un insieme di programmi che servono per gestire le risorse del computer, in maniera trasparente all' utente.
Questo significa che il S.O. si occupa di coordinare il funzionamento di tutti i dispositivi hardware, e di offrire all' utente una interfaccia da cui inserire i comandi.
Per la gestione dell' Hardware, il S.O. si serve di programmi detti driver, che non sempre vengono distribuiti insieme ad esso, ma possono essere acquistati insieme alla periferica stessa. (es. driver di stampante, driver di scanner, driver di tastiera, driver del mouse).

Tutti i Sistemi operativi offrono ora due tipi di interfacce:

Alcuni utenti però preferiscono l'interfaccia a caratteri per le configurazioni poiché è più diretta e consente un maggiore controllo della situazione (ovviamente per chi conosce i comandi).
In genere viene usata da sistemisti e amministratori di sistema nella fasi di configurazione o in caso di malfunzionamento per ripristinare il sistema

Evoluzione dei Sistemi Operativi

Anni '60

I primi computer erano i cosiddetti MAINFRAME, cioè grossi computer. Erano costosissimi ed erano pezzi unici. Non si producevano in serie e per utilizzare appieno un computer così costoso ad esso venivano collegati diversi terminali per ammortizzare i costi e per fare in modo che più utenti potessero lavorare contemporaneamente. Questa configurazione dava una topologia a stella.

N.B.: La differenza sostanziale tra questa topologia multiutente a stella e una rete a stella è che: in una configurazione multiutente ogni utente ha un terminale e lavora sfruttando le risorse (memoria e CPU ) del computer principale, mentre in una rete a stella ogni utente ha il suo computer con risorse indipendenti, collegato con il computer a centrale.

In questo periodo le periferiche erano di tipo piuttosto rudimentale: gli utenti avevano una perforatrice di schede (le schede erano cartoncini con buchi e la posizione dei buchi veniva codificata). C'era poi il lettore di schede; quindi in realtà il posto di lavoro collegato ad un computer centrale era caratterizzato da un lettore di schede. Quindi il lettore di schede era quello che noi oggi chiamiamo terminale.

Per l'Output, c'erano due possibilità:

Negli anni '60, quindi, il sistema operativo era molto semplice perché le periferiche da gestire erano poche. Gli utenti interagivano in maniera differita, cioè preparavano le schede a parte e le inserivano insieme e la stampa avveniva tutta insieme.
Quindi il sistema operativo doveva gestire le stampanti, i lettori di schede ed i perforatori di schede.

Per rendere più agevole il lavoro ogni utente si preparava le schede, che venivano portate ad un operatore che metteva i pacchi di schede nell'elaboratore uno dopo l'altro ed in maniera differita uscivano le risposte.
Prima di preparare questo lavoro, però, bisognava specificare il linguaggio e bisognava disporre sulle schede tutti i comandi e le istruzioni necessarie per avviare, salvare, eseguire il programma.
Questa è la prima funzione del Sistema operativo, cioè fare da interfaccia tra le macchine e le persone; cioè la persona forniva le istruzioni ed il computer doveva avere dei comandi per comprendere le istruzioni ed eseguirle.
Questa parte del S.O. che eseguiva questa funzione (cioè l'interpretazione dei comandi dell' utente) veniva chiamata Batch Monitor, e la modalità operativa viene chiamata elaborazione a lotti o elaborazione batch.
Il modo di lavorare è molto diverso dalla modalità interattiva, a cui siamo abituati oggi, perché qui prima si prepara e poi si fanno eseguire i lavori uno alla volta ma continuamente.
I moderni S.O: offrono anche oggi la possibilità di avere un linguaggio per la programmazione differita di comandi: in genere si chiamano linguaggi di Scripting, e con essi l'utente può sottoporre al sistema il suo Job (lavoro), che può essere un singolo programma oppure può comprendere una serie di programmi da eseguire.

Questo modo di lavoro (in maniera differita) era poco economico perché la potenza del computer era tale da riuscire ad eseguire più Job alla volta. Quindi c'era uno spreco di costi. Si passa quindi all'esecuzione di più job alla volta per ridurre i costi.

Anni '70

In questi anni compare il Minicomputer (modello più famoso PDP11 della Digital Corporation) Era dotato di unità disco (prima c'erano solo le unità a nastro o le schede perforate).

In questi anni gli elaboratori cominciano ad essere commercializzati: le loro dimensioni sono tali da consentirne il trasporto e non si tratta più di pezzi unici, prototipi, ma vengono prodotti in serie. Le prime grandi aziende e particolarmente le banche cominciano ad impiegarli nel controllo dei processi produttivi o nell' automazione della gestione dei dati.

L'impiego nei processi produttivi richiede un rapido ammortizzamento dei costi, per cui viene posta una particolare attenzione all'efficienza del sistema: i minicomputer permettevano la multiutenza, nel senso che ad uno di questi computer si potevano collegare più utenti e quindi potevano essere eseguiti più job alla volta (cioè contemporaneamente).

modello di Von NeumannQuesto può avvenire in questo modo:
secondo il modello di Von Neumann ogni computer è formato da quattro parti
CU = Control Unit: unità centrale che esegue istruzioni
ALU = Arithmetcal Logical Unit: esegue i calcoli
MEMORIA = contiene le istruzioni e i dati
CANALE = presiede le comunicazioni esterne con l'interno (processore di I/O)
La CU e il canale possono lavorare su operazioni diverse contemporaneamente e quando un programma arriva a compiere delle istruzioni di I/O è il canale che si occupa di questo e quindi la CU è libera. Il SO deve riuscire ad impegnare al meglio tutte le risorse, cioè deve fare in modo che mentre il canale è occupato e la CU è libera, deve cercare di impiegarla. Si ha così un avanzamento dei lavori in parallelo.
Questo modo di lavoro complica il SO che ha a questo punto il compito di gestire le risorse, distribuirle ai vari Job, ottimizzare l'uso delle risorse (cioè fare in modo che le risorse non siano inattive), velocizzare i tempi di risposta per l'utente.
Quindi con questa tecnica si possono svolgere ed eseguire più job alla volta. Si strutturano al meglio le risorse ed i risultati arrivano prima. Questa tecnica permette la MULTIPROGRAMMAZIONE e la MULTIUTENZA; cioè nello stesso computer e nello stesso momento sono presenti più programmi in esecuzione e sono presenti diversi utenti.

Questa tecnica viene applicata anche oggi: il canale non è unico in realtà ma ogni periferica ha il suo processore di I/O, che può accedere direttamente alla memoria (DMA= Direct Memory Access) completando così le operazioni di I/O senza l'intervento del processore centrale.

Con la comparsa del terminale, che serve per collegare l'utente al computer, il SO si evolve verso un nuovo modo di lavoro: prima c'erano le schede perforate e la stampante; ma si pensa a questo punto di collegare direttamente l'utente al computer e compaiono le prime tastiere.
C'era però la necessità anche di vedere le risposte del computer e vedere se quello che un utente scriveva era corretto e nascono così le prime tastiere a stampante (collegamento locale o remoto). Ben presto si pensa di sostituire la stampante con il video, che all'inizio era semplicemente un display di una sola riga; in seguito compare il video (anni '80).
A questo punto cambia il modo di rapportarsi con il computer; bisognava fare in modo che la persona non rimanesse inattiva in attesa della risposta, ma potesse lavorare in maniera interattiva, cioè ricevendo subito le risposte dal computer.

Quindi c' era la necessità di distribuire i tempi dei computer in modo che fosse assicurata l'operatività di tutti gli utenti. Questa distribuzione di tempi (Time Sharing) è applicata principalmente alla CPU (Processore) che è quella parte che esegue le istruzioni.
Quindi se noi abbiamo un unico computer con un unico processore dedichiamo una unità di tempo a ciascun utente a turno. Unità di tempo = TIME SLICE (4 millisecondi).
Perciò così non c'è un utente che aspetta che l'altro abbia finito e contemporaneamente vengono sfruttati i tempi morti perché si utilizza la stessa tecnica di prima.

UNIX

Nel 1971 nasce il SO UNIX (diffuso al giorno d'oggi per lo più nei computer di fascia alta come Workstation o Server).
Per la prima volta venne implementato su PDP11 Digital; in questo modello la memoria RAM era di 64Kb ed aveva un Hd con capacità 20Mb. Era un modello avanzato perché l' HD era removibile, permettendo così di ampliare la memoria a disposizione usando diversi supporti.
Sul PDP11, due ricercatori che lavoravano per la AT&T chiamati Thompson e Ritchie erano stati impegnati in un progetto per riscrivere un nuovo sistema operativo. Quando però il SO è giunto ad un certo punto, per una questione di monopolio la AT&T è stata costretta ad abbandonare i progetti di ricerca. Questi due, quindi, andavano avanti in maniera autonoma e si produsse un doppio risultato: un nuovo linguaggio (il C) che venne utilizzato per scrivere il nuovo sistema operativo, che sarebbe stato Unix.

Gli autori resero pubblico il SO distribuendolo nelle università dove incontrò un notevole successo a causa delle sue caratteristiche interessanti:

Questo SO venne distribuito in formato sorgente cioè il programma era in formato testo da modificare ed adattare al computer e quindi per tutti gli anni '70, Unix è stato sviluppato da ricercatori e studenti e poi da società commerciali che lo hanno introdotto nelle aziende. Queste società prendevano i sorgenti Unix, poi lo modificavano per adattarlo ai propri sistemi Hardware e lo ridistribuivano sotto il proprio marchio, modificando anche il nome.
Tutti questi SO che nascono sono derivati di Unix e sono chiamati Dialetti Unix. In genere sono riconoscibili perchè mantengono la X all'interno del nome.

Alla fine degli anni 70 negli USA ci fu una restrizione: la legge sul Copyright venne estesa per tutelare la produzione di software e quindi non era più possibile la libera circolazione dei programmi; questa legge serviva per proteggere chi produceva il software e lo voleva vendere. Quindi il nome dei SO che nascono e che derivano da Unix diventano marchi registrati, distribuiti solo in formato binario.
Alcuni dei marchi più noti ad encora oggi distribuiti sono: XENIX della SCO = Santa Cruz Operation, AIX della IBM, IRIX della Silicon Graphics, Solaris della SUN).

C'erano però alcune versioni di Unix ancora libere, soprattutto nelle università, ad esempio nell'università di Berkley che continuava ad utilizzare la propria versione di Unix.
Intanto stava avanzando la ricerca ed il progetto Internet. Quindi i principali server di Internet di allora erano Unix. Infatti gli strumenti che vengono utilizzati in internet oggi, erano contenuti e furono sviluppati allora in Unix, nelle principali università americane che parteciparono al progetto.

Anni '80

Sono gli anni dei PC (= Personal Computer). Nasce quindi l'idea di produrre computer a prestazioni ridotte e monoutente. Quindi per questo si ha bisogno di meno memoria, meno risorse e quindi tutto questo è meno costoso.
Anche l' ingombro è ridotto. L' elettronica produce circuiti integrati miniaturizzati (LSI = Large Scale Integration).
All' inizio fu un fenomeno a livello hobbistico: si incominciarono a costruire prototipi con materiale di recupero per un uso personale. Poi si affermarono sul mercato nuove aziende, con lo slogan "Un computer su ogni scrivania". La prima fu la Apple fondata da Steve Jobs, poi la Commodore; anche aziende del calibro di IBM e (in Italia) Olivetti, immisero sul mercato i loro modelli di PC.
Su questi computer comparvero i primi microprocessori (la CPU si basava su un solo Chip). I modelli più famosi sono: il 6210 della Motorola, l' 8086 della Intel (il 'padre' di tutta la famiglia x86, che continua ancora col PentiumIII e IV), e il mitico Z80.

La produzione era su larga scala e in questo modo si ammortizzavano i costi.

La Commodore produsse modelli 'storici' e per quei tempi molto avanzati: il Pet4032 (monitor a 40 colonne e 32 Kb di memoria) 8032 (monitor a 80 colonne) e 8096 (96 Kb di RAM) avevano due drive con dischetti da 5 ¼ fomattabili su doppia faccia in modo da ottenere 1Mb di spazio su ogni dischetto. Su questi computer non c'era un vero e proprio sistema operativo ma un linguaggio Basic integrato registrato su ROM che faceva da sistema operativo e che serviva anche per gestire tutti i programmi. In questo modo non era necessario un disco per l'avvio, e i dischetti servivano solo per memorizzare dati e programmi BASIC.
Successivamente, sull' ondata del successo dei cosiddetti 'home computer' modelli in cui la spesa era ridotta all'osso, fu messo in produzione il Commodore64, dotato di accessori (come unità a dischi, monitor e stampanti) acquistabili separatamente, ma che forniva con una spesa molto ridotta, una tastiera con il processore 6210 e ben 64Kb RAM. Questo modello rimase sul mercato per circa dieci anni, vero fenomeno in un mondo in cui la vita media dei prodotti era di 2-3 anni.

La principale rivale della Commodore era la Apple, che successivamente dovette cambiare il proprio marchio in MacIntosh, a causa di questioni legali. Questa azienda si contraddistinse sempre per il taglio innovativo dei suoi prodotti, ed è infatti l'unica al giorno d'oggi che continua a mantenere una linea di produzione non allineata con gli standard di mercato.

Successivamente sul mercato entrò l'IBM che all'inizio utilizzava il SO Unix, e commercializzava solo sistemi di fascia alta; in questo periodo lanciò siul mercato un PC con un SO chiamato CP/M e non con un linguaggio di programmazione BASIC integrato come il Commodore.
La caratteristica di questo modello è che il SO viene caricato dal dischetto e serve a far funzionare il computer, ma non include il linguaggio di programmazione.

Per quanto riguarda l'Olivetti, ditta che si occupa di macchine d'ufficio, negli anni '70 capisce che i computer diventeranno molto importanti ed ha una svolta, iniziando la produzione di elaboratori.
Il primo modello di PC dell'Olivetti si chiamava P6060. Non è un PC come oggi, era molto grande e formato da una tastiera e sopra la tastiera non vi era il monitor ma un display di una sola riga. Aveva due dischetti da 8 pollici in linea. Come linguaggio di programmazione aveva il Basic, che è stato il cavallo di battaglia di tutti i programmatori per PC degli anni '80 (ma anche adesso).
Vengono poi prodotti i primi monitor e si passa al secondo pc, l' M20 che aveva come SO PCOS (Personal Computer Operating System). Il SO era abbastanza simile al DOS anche se i comandi erano diversi. Dopo un paio di anni l'Olivetti produceva l' M24 che aveva come SO il DOS.

A quei tempi non c'era un SO universale che poteva essere utilizzato su ogni computer e ogni computer aveva il suo SO proprietario e il suo modo di formattare i dischi. Per cui ogni disco poteva essere usato solo su un determinato computer ed era incompatibile con gli altri modelli.
I primi PC non avevano l'Hard Disk: montavano il floppy drive o alcuni addirittura unità a nastro compatibile con i nastri delle musicassette.
Quindi c'erano tanti modelli e non si era affermato uno standard, quando Bill Gates, decise di creare una ditta che producesse solo software per PC. Fondò così la Microsoft il cui compito era quello di produrre il SO che poteva essere utilizzato su ogni computer. Fino alla metà degli anni '80 ogni ditta aveva i suoi modelli con SO diversi. Questi ditte cominciano ad affiancare i loro modelli e i loro SO con il SO della Microsoft. Con l'andare del tempo i precedenti SO sono scomparsi tranne quello della Apple, che continua a montare un SO proprietario per i suoi PC.
Così dalla metà degli anni ottanta, abbiamo MS-DOS (= MicroSoft Disk Operating System) e Microsoft su quasi tutti i computer, e quando diciamo PC il computer può essere di qualsiasi ditta, ma sono tutti più o meno uguali: soprattutto, cosa per quei tempi molto importante perchè il PC di solito non era ancora collegabile a Internet e raramente ad una rete locale, il formato dei dischetti era compatibile, ed i programmi che giravano su un PC potevano in genere funzionare anche su un altro modello. In questo modo era possibile scambiare software e dati tra un PC ed un altro.
Successivamente (negli anni 90) la Microsoft strinse un accordo con la Intel per cui tutti i PC montano oggi processori Intel (o con essi compatibili).

Caratteristiche di MsDos

Il DOS si ispira al Sistema Operativo Unix, però in maniera più ridotta e semplificata perché per esempio non è necessaria la gestione della multiutenza, infatti il PC nasce per il singolo utente.
Mantiene la struttura gerarchica del File System, cioè la suddivisione in Directory e Sottodirectory. Prima non c'erano le cartelle nel dischetto, ma i file venivano salvati alla rinfusa. Questo sistema diviene fondamentale quando vengono introdotti i PC con disco rigido. Quindi il SO Dos, diviene importantissimo.
Rispetto a Unix il DOS presenta molti limiti: infatti mentre molti computer prevedevano la multiprogrammazione (che può avvenire in due modi: MultiUser = Più utenti facevano girare i loro programmi sullo stesso computer MultiTasking = Un singolo utente può lanciare più programmi), quando nasce l'MsDos si passa alla monoprogrammazione e quindi si può eseguire un solo programma per volta come del resto in tutti i SO per PC di quesgli anni.
Inoltre mentre il SO Unix era in grado di gestire notevoli quantità di memoria, il DOS prevedeva un limite massimo di 1Mb. Questo si ripercosse per anni sulle sue versioni successive, che per mantenere la compatibilità col software preeesistente, mantennero per anni una distinzione forzosa tra menoria convenzionale, estesa, espansa.
Anche la capacità degli HD era limitata, inizialmente a 32 Mb (fat 12 bit), e questo richiese molti successivi adattamenti del sistema di gestione del disco

Le interfacce grafiche

Nel 1985-86 la Apple produce la prima interfaccia grafica per i suoi pc (GUI).
Invece dei comandi, per lanciare i programmi od agire sui file e cartelle, si usava uno schermo con le icone; il cestino sostituiva il comando di cancellazione. Un nuovo tipo di periferica, il mouse, ispirato alle periferiche di gioco (joystick) consentiva all'utente di puntare e selezionare gli oggetti sullo schermo, e interagire con essi tramite pulsanti.
Dopo la diffidenza iniziale dei programmatori, che finora erano ancora gli utenti principali di PC, questo aprì una nuova fascia di mercato per quelle persone che non erano programmatori, e Steve Jobs potè finalmente dire di avere raggiunto il suo scopo (un computer su ogni scrivania).
La Microsoft, visto che le cose andavano bene si mise al lavoro e produsse Windows 2.1 con un interfaccia grafica. Fino a Windows 3.11 il SO era sempre Dos.La 3.11 all'inizio degli anni '90La 2.11 alla fine degli anni '80.Nel frattempo gli altri pc perdono quote di mercato tranne quelli che adottano MsDos. Quindi rimangono alla fine degli anni '80 due SO che sono quelli di Apple che cambia in McIntosh e quello di Microsoft.

Unix continua ad esistere sui computer considerati di fascia alta. Negli anni '80 si disperde nei cosiddetti dialetti Unix. Da SO libero a cui tutti gli studiosi potevano accedere, le varie ditte di distribuzione se ne appropriano e lo distribuiscono sotto Copyright. Alla fine non c'era più un SO Unix che era libero e tutti i nuovi computer avevano il SO Unix, però ognuno con il suo adattamento. Nelle università si lavora al progetto Internet, e vengono sviluppati i protocolli che le ditte produttrici di Hardware incorporarono nelle loro nuove versioni di Unix. Cioè tra le funzionalità del SO venivano inclusi questi due protocolli: TCP/IP, ed il sistema della posta elettronica. Quindi gli elementi alla base di Internet vennero sviluppati nel SO Unix.
I ricercatori ed i programmatori delle università erano ostacolati dal fatto che Unix fosse protetto da CopyRight; inizialmente infatti Unix era in formato sorgente, e si poteva quindi modificare, mentre in seguito veniva distribuito a pagamento, e solamente in formato binario, ostacolando così la ricerca.

Il Free software

Negli anni '80 un grande movimento di pensiero vide la nascita della cultura 'hacker': l'hacker è come il bambino che vuole smontare il suo giocattolo per capirne il funzionamento, e la sua attività non è mai spinta da scopi di lucro, ma solo dalla ricerca della conoscenza, e sostiene che il sapere informatico deve essere diffuso senza confini od ostacoli.

Nel 1989, un ricercatore universitario, Richard Stallman fondò la FSF (Free Software Foundation), con lo scopo di riscrivere Unix e fare in modo che questo non venisse coperto da CopyRight. Stallmann introdusse il contratto Copyleft, inteso a tutelare le quattro libertà dell'utente:

I programmi scritti da questa fondazione potevano essere utilizzati e distribuiti liberamente; l'unica clausola era che se si desiderava ridistribuirlo, bisognava assicurarsi che questo rimanesse sempre libero, e quindi soggetto allo stesso tipo di licenza. Il progetto principale della FSF era GNU (Gnu's Not Unix); il progetto comprende inizialmente un Compilatore C perché per scrivere programmi serve il linguaggio di programmazione e un Editor per scrivere il programma, il famoso Emacs, entrambi scritti personalemte da Stallmann. La Fsf si avvale di contributi di alcune organizzazioni di proventi soprattutto di aziende produttrici di Hardware.

Nel '92 uno studente di informatica finlandese (?), Linus Torvalds, scrive un nucleo di SO simile a Unix con funzioni e driver più moderni, che battezzò Linux: questo permise alla FSF di iniziare a distribuire il suo SO finalmente dortato anche di Kernel.

Anni '90

Si diffondono le interfacce grafiche. La prima metà degli anni 90 è caratterizzata dal diffondersi di tali interfacce su tutti i sistemi, dal MacIntosh, ai PC. Anche i sistemi Unix incominciano ad essere configurati con le interfacce grafiche. I primi anni '90 sono caratterizzati da una gara tra interfacce quali CDE, Motif, per la conquista del mercato Unix.
Microsoft compie una svolta decisa in questo senso con Windows'95 e abbandona il S. O. MSDOS. Gradualmente i computer si trasformano in stazioni multimediali. Il mercato dei giochi si rivela ricco di possibilità e molti computer si trasformano in stazioni di gioco. Lo slogan non è più un computer sui ogni scrivania, ma un computer in ogni casa.
La seconda metà degli anni novanta è caratterizzata dal discorso delle reti e di internet. Il primo sistema operativo con incorporate le funzioni di rete è stato windows 3.11. Le prime reti windows erano peer to peer, cioè su tutti i computer potevano accedere alle cartelle e tutti potevano creare cartelle condivise. Con il termine WorkGroup s'intende questa struttura peer to peer, cioè se non abbiamo un server la nostra rete è una rete paritetica. Come SO, la Microsoft incomincia a produrre SO di fascia alta con funzioni più specializzate, chiamata NTSERVER. Allarga la sua fascia di mercato a computer più potenti. Quindi la rete non è più peer to peer perché c'è un computer che fa da Server che ha una funzione diversa e contiene tutte le cartelle condivise e tutti gli altri computer possono accedere alle cartelle.


Appunti a cura di: Valentina Zavatta
Stesura di: Marcello Bondoni
Revisione e correzione: prof. Silena Campana

Avanti