24.11.2012 Views

Capitolo 1° - Storia - FedOA

Capitolo 1° - Storia - FedOA

Capitolo 1° - Storia - FedOA

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

memoria (DMA) durante le fasi di input/output il<br />

processore era totalmente utilizzato per il controllo di<br />

queste operazioni. È per questo che si adottò la<br />

soluzione del sistema batch (a lotti): l'idea di base era<br />

quella di dividere i tre lavori, ovvero il caricamento dei<br />

dati, il calcolo e la stampa su macchine distinte. Il<br />

calcolo veniva affidato ad un calcolatore centrale<br />

costoso come l'IBM 7094 mentre gli elaboratori satelliti<br />

erano macchine più economiche come gli IBM 1401. Il<br />

Sistema Operativo di questi Mainframe doveva erogare<br />

pochi semplici servizi: gestione dell'input/output,<br />

interpretazione dei comandi contenuti nelle schede<br />

controllo e controllo dell'esecuzione di programmi, sia<br />

quelli lanciati dall'utente, sia le utilità di sistema. I<br />

sistemi operativi tipici per questi elaboratori, per lo più<br />

programmati in FORTRAN e in Assembler erano il FMS<br />

(Fortran Monitor System) e l'IBSYS. Dai primi anni '60<br />

cominciò a farsi strada il concetto di dispositivo virtuale<br />

e astrazione. Prima di ciò un programmatore che<br />

avesse voluto comandare ad esempio una stampante,<br />

doveva conoscere, nei minimi dettagli, il funzionamento<br />

a basso livello della periferica, mentre a partire<br />

dall'introduzione del concetto di periferica virtuale il<br />

Sistema Operativo avrebbe fatto da intermediario tra<br />

utente e periferica. Nello stesso periodo i Sistemi<br />

Operativi iniziarono a supportare il DMA e lo SPOOL.<br />

Il DMA (Direct Memory Access) è il sistema che<br />

permette di trasferire interi blocchi di dati da memoria<br />

secondaria a memoria centrale in modo completamente<br />

indipendente dal processore, il quale può, nel<br />

frattempo, eseguire altre operazioni. Lo SPOOL<br />

(Simultaneous Peripheral Operations On Line) è un<br />

sistema che permette di gestire in maniera efficiente le<br />

code di job di stampa.<br />

Infine, ma non meno importante si assistette<br />

all'introduzione delle politiche di ordinamento dei job.<br />

Essi venivano caricati ed eseguiti in maniera<br />

sequenziale, ma l'ordine di esecuzione dei programmi<br />

era gestito da opportune politiche implementate nel<br />

Sistema Operativo. Siamo ancora lontani da ciò che<br />

sarà poi il timesharing supportato da tutti i Sistemi<br />

Operativi moderni, tuttavia è il germe che darà il via alla<br />

implementazione della multiprogrammazione negli anni<br />

successivi.<br />

UNIX<br />

Dagli anni sessanta esiste il concetto di timesharing:<br />

ogni utente dispone di un dispositivo di ingresso (la<br />

tastiera) e un dispositivo di uscita (un monitor o una<br />

telescrivente), ed ha la possibilità di inviare comandi al<br />

Sistema Operativo ottenendo subito una risposta. Infatti<br />

in questi sistemi con timesharing un programma resta in<br />

esecuzione fino a quando esso richiede un'operazione<br />

di I/O, oppure occupa la CPU per più di un certo<br />

intervallo di tempo prestabilito (detto quanto<br />

temporale).<br />

Nel 1962 venne realizzato al MIT il primo sistema di<br />

timesharing su un IBM 7094: il CTSS. Fu in realtà il<br />

MULTICS la vera rivoluzione. Venne sviluppato<br />

congiuntamente dal MIT, dalla General Electric e dai<br />

Bell Labs, ed era in grado di supportare centinaia di<br />

utenti in timesharing. La realizzazione fu però molto più<br />

complessa del previsto, tanto che i Bell Labs<br />

abbandonarono il progetto. Tuttavia Multics introdusse<br />

molte nuove idee che influenzarono non poco i<br />

successivi Sistemi Operativi. Se da un lato esistevano<br />

questi supercomputer dall'altro negli stessi anni vi fu lo<br />

sviluppo dei minielaboratori, dei quali un importante<br />

esponente fu il PDP-1 del 1961 che costava solo<br />

120.000$ (cioè il 5% del prezzo di un IBM 7094) e che<br />

ebbe un gran successo. Per questi sistemi vennero<br />

progettati appositi Sistemi Operativi, il più famoso dei<br />

quali fu senza dubbio UNIX.<br />

UNIX fu progettato a partire dal 1969 da un gruppo di<br />

ricercatori della AT&T presso i Bell Labs, tra cui erano<br />

presenti Ken Thompson (che lavorò anche al progetto<br />

Multics), Dennis Ritchie e Douglas McIlroy. Esso prese<br />

notevole spunto dal padre Multics, e grazie all'ottimo<br />

lavoro di queste persone divenne un sistema molto<br />

interattivo, affidabile e ricco di funzionalità, tanto che,<br />

nelle sue varianti ed evoluzioni, tuttora domina il<br />

mercato delle workstation. Da esso furono realizzate<br />

varianti come BSD (Berkley Software Distribution) e<br />

sistemi Unix-like come Minix (usato in ambito didattico)<br />

e successivamente l'ormai famosissimo Linux<br />

sviluppato dallo studente finlandese Linus Torvalds.<br />

Oggigiorno i sistemi operativi *NIX sono conformi allo<br />

standard POSIX (che uniforma l'interprete dei comandi<br />

e le API dei programmi), offrendo una compatibilità<br />

reciproca di base necessaria a non stroncarne lo<br />

sviluppo.<br />

L'arrivo del Personal Computer (anni '80)<br />

Verso gli anni '80 grazie alla tecnologia LSI (large<br />

scale integration) la costruzione di chip integrati<br />

divenne massiccia e portò all'abbattimento dei prezzi<br />

dell'hardware, facendo sorgere l'era dell'elaboratore<br />

personale o Personal Computer. Queste macchine<br />

erano piccole, economiche ed avevano prestazioni<br />

simili a quelle dei calcolatori medio-grandi di 10-20 anni<br />

prima. I primi modelli erano dotati di Sistemi Operativi<br />

monoutente con accesso interattivo e supporto al<br />

timesharing. Il più importante tra i primi Sistemi<br />

Operativi per Personal computer era il CP/M-80 della<br />

Digital Research per le CPU 8080 / 8085 / Z-80. Era<br />

basato sui Sistemi Operativi della Digital Equipment<br />

Corporation specialmente quelli per l'architettura PDP-<br />

1. MS-DOS (o PC-DOS quando fornito da IBM) era<br />

originariamente basato proprio sul CP/M-80.<br />

Microsoft vs Apple<br />

Steve Jobs era uno dei pochi che credeva nell'idea<br />

del Personal Computer. All'epoca era difficile<br />

immaginare cosa potesse farsene una persona di un<br />

computer in casa. Egli invece continuò per la sua strada<br />

fondando Apple Computer Inc. il <strong>1°</strong> Aprile 1976 assieme<br />

a Steve Wozniak e Ronald Wayne. Jobs era convinto<br />

che il futuro del Personal Computer sarebbe stato<br />

legato all'interfaccia grafica. E così, ispirandosi a quella<br />

sviluppata da Xerox qualche anno prima, Apple lanciò<br />

nel 1984 Mac OS il primo sistema operativo per<br />

Personal Computer con interfaccia grafica. Questa fu<br />

una vera rivoluzione tanto che di lì a poco Microsoft<br />

avrebbe commercializzato Windows (20 novembre<br />

<strong>Capitolo</strong> 2° - Strumenti e applicazioni<br />

1985) e sarebbe nato l'X Window System in ambiente<br />

Unix (1984). All'inizio Windows non era definibile<br />

Sistema Operativo: era piuttosto un'estensione di MS-<br />

DOS. Fu con il rilascio di Windows 3.0, nel 1990, che<br />

Microsoft si impose sul mercato. Oltre alle maggiori<br />

performance che garantiva alle applicazioni rispetto alle<br />

versioni precedenti, Windows 3.0 forniva un ambiente<br />

multitasking migliorato rispetto alle precedenti versioni<br />

di MS-DOS, grazie all'introduzione del supporto alla<br />

memoria virtuale, e divenne così un degno rivale del<br />

Macintosh (su cui girava Mac OS) di Apple. A partire da<br />

Windows 3.1 fu introdotto il supporto alla multimedialità<br />

(perfezionato via via nelle successive release), mentre<br />

con l'introduzione di Windows 95 si passò<br />

definitivamente dal calcolo a 16 bit a quello a 32 bit.<br />

I sistemi operativi di rete e il fenomeno Linux<br />

A fianco di Microsoft ed Apple il mercato delle<br />

workstation e dei grandi elaboratori era comunque<br />

dominato da UNIX. Un fenomeno interessante che<br />

iniziò a prendere piede da metà degli anni '80 fu lo<br />

sviluppo delle reti di calcolatori, fenomeno che ha poi<br />

portato all'incredibile crescita di Internet. Nacquero così<br />

i Sistemi Operativi di rete e i Sistemi Operativi distribuiti.<br />

I primi altro non sono che normali Sistemi Operativi ai<br />

quali vengono aggiunti i software per il collegamento a<br />

macchine remote e quindi alle relative risorse condivise<br />

come file e stampanti. I secondi sono Sistemi Operativi<br />

che girano su sistemi a più processori oppure che<br />

inviano i processi da elaborare ad altri computer della<br />

rete. Essi sono dotati di particolari politiche di<br />

scheduling che permettono una efficace allocazione dei<br />

processi tra le CPU disponibili. Inoltre anche il sistema<br />

di archiviazione (il file system) è unico, anche se in<br />

realtà è distribuito tra vari nodi della rete. Esempi della<br />

prima classe di sistemi di rete sono tutte le versioni di<br />

Windows dalla 3.1 e NT in poi, mentre UNIX e derivati<br />

fanno parte di entrambe le categorie in quanto<br />

supportano entrambe le tecnologie. Nel 1991 Linus<br />

Torvalds sviluppò un kernel Unix-like, capace però di<br />

girare sulla piattaforma x86. Così nacque Linux. Fu<br />

quando venne abbinato al Progetto GNU di Richard<br />

49

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!