24.11.2012 Views

Capitolo 1° - Storia - FedOA

Capitolo 1° - Storia - FedOA

Capitolo 1° - Storia - FedOA

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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!