Title: Storia dei Sistemi Operativi
1Storia dei Sistemi Operativi
- Corso di Storia dellInformatica e del Calcolo
Automatico - SICSI VII ciclo
- Autore Mauro Bellerè
2Definizione
- Il Sistema Operativo consiste in una raccolta di
software che nasconde (parzialmente) l'hardware,
offrendo al programmatore una serie di istruzioni
con le quali lavorare. - Fornisce all'utente una serie di comandi e
servizi per fruire al meglio della potenza di
calcolo di un qualsivoglia elaboratore
elettronico, spaziando dal più piccolo dei
palmari al più potente tra i Mainframe.
3Preistoria
- Il primo computer (1843) fu progettato dal
matematico inglese Charels Babbage (1792-1881),
che, però non poté mai costruirlo per la
tecnologia non adeguata dell'epoca - Babbage capì che avrebbe avuto bisogno di "un
programma" per far funzionare il computer e per
questo assunse Ada Lovelace, la "prima
programmatrice", che ha dato il nome al
linguaggio di programmazione ADA
4Prima dei Sistemi Operativi (1)
- I primi computer moderni (1945-1955) (senza parti
di tipo meccanico) sfruttavano la tecnologia a
valvole ed anche se erano poco potenti ed
affidabili, erano di dimensioni enormi e potevano
occupare intere stanze - Un team di specialisti costruiva, manteneva e
programmava la macchina (appunto in linguaggio
macchina) - Non c'era sistema operativo, nemmeno l'assembler,
bisognava eseguire un programma per volta
(generalmente tabelle matematiche) sotto la
supervisione del programmatore
5Prima dei Sistemi Operativi (2)
- Erano lentissimi e molto costosi
- Potevano permetterseli soltanto governi, grossi
centri di calcolo o Università - Erano molto inaffidabili, in quanto le valvole
che li componevano si rompevano spesso - Il programma da eseguire veniva inserito ad ogni
esecuzione in codice binario attraverso dei
primitivi lettori di schede perforate e dopo
alcune ore il risultato veniva inviato ad una
stampante
6Prima dei Sistemi Operativi (3)
- Tra gli altri, riuscirono a costruire delle
macchine per il calcolo automatico che fossero
programmabili - Howard Aiken, Harward. Harvard MARK-1
- John Von Neumann, Institute for Advanced Study in
Princeton. EDVAC - J. P. Eckert e W. Mauchley, University of
Pennsylvania. H. Goldstine, A. Turing. ENIAC - K. Zuse, Germany. Z3.
7Macchina di Von Neuman
- Programma memorizzabile come i dati
- Istruzioni in memoria decidere il programma
specificando una porzione di memoria - Idea di John von Neumann (consulente ENIAC)
- Proposta di nuovo calcolatore (1945) EDVAC
(Electronic Discrete Variable Computer) - Nuovo elaboratore completo nel 1952 (IAS, presso
Institute for Advanced Studies, Princeton)
8I primi Sistemi Operativi
- La rivoluzionaria invenzione del transistor
determina la nascita degli elaboratori di seconda
generazione (1955-1965) e, di conseguenza, la
nascita dei primi sistemi operativi - L'utilizzo dei transistor per la costruzione dei
computer permette di ridurne le dimensioni. I
lettori di schede, i nastri magnetici e le
stampanti cominciano a diventare di uso comune - I computer iniziano ad essere costruiti per
essere venduti, possono funzionare abbastanza a
lungo per ammortizzare i costi di acquisto.
Acquirenti università, banche, grandi compagnie
commerciali - Permettono di usare i linguaggi di programmazione
quali il Fortran e l'Assembler - Si delinea sempre più marcatamente la separazione
tra - - progettisti (di computer)
- - costruttori (di computer)
- - operatori (di computer)
- - programmatori
- - personale addetto al mantenimento (tecnici)
9Sistemi batch (1)
- Per eseguire dei programmi (o come venivano
chiamati job), un programmatore doveva scrivere
il proprio programma su carta, trasferirlo su
schede, caricarlo nel computer, aspettare che il
computer avesse eseguito il calcolo e quindi
stampare il risultato - Tale operazione era molto dispendiosa in fattori
di tempo - Si adottò la soluzione del sistema batch (a
lotti) l'idea di base era quella di dividere i
tre lavori, ovvero il caricamento dei dati, il
calcolo e la stampa - Tale tecnica permette
- - di ridurre il tempo raggruppando lavori simili
(Fortran, Assembler, COBOL) - - la sequenzializzazione automatica dei Job
automaticamente il controllo passa da un Job al
successivo - - il caricamento automatico del compilatore
- - il caricamento automatico dell'assemblatore.
10Sistemi batch (2)
- L'idea è quella di impilare le schede perforate
in un vassoio di input di un calcolatore di basso
costo che ha solo il compito di trasferire i
programmi, dello stesso linguaggio, su nastro
magnetico in modo sequenziale. - Ogni volta che una bobina è completata, viene
montata sul calcolatore centrale, il main. A sua
volta il main scrive l'output in modo sequenziale
su un altro nastro magnetico. - Tale nastro viene montato su di un altro computer
di basse prestazioni per trascrivere l'output su
carta, che verrà consegnata al programmatore.
11Sistemi batch (3)
- Le macchine più utilizzate in quegli anni (60)
per implementare sistemi batch erano gli IBM
1401, per il caricamento dei dati e la stampa
per il calcolo veniva impiegata, invece una
macchina più potente e costosa, l'IBM 7094. - Il Sistema Operativo di questi Mainframe doveva
erogare pochi semplici servizi gestione
dell'input/output, interpretazione dei comandi
contenuti nelle schede controllo e controllo
dell'esecuzione di programmi, sia quelli lanciati
dall'utente, sia le utilità di sistema. - I sistemi operativi tipici per questi
elaboratori, per lo più programmati in FORTRAN e
in Assembler erano il FMS (Fortran Monitor
System) e l'IBSYS
12I primi Sistemi Operativi
- Durante l'esecuzione dei programmi, su nastro
magnetico, vengono eseguiti anche altri programmi
di gestione per l'esecuzione del compilatore
Fortran, dell'assemblatore e per il corretto
caricamento (delle istruzioni e dei dati) dei
programmi scritti dai programmatori. - Tali operazioni di gestione vengono fornite da
uno speciale programma, il primo rudimentale
sistema operativo monitor residente.
13La terza generazione
- Lavvento dei circuiti integrati (IC) determinò
la nascita dei computer di terza generazione
(1965-80) e, di conseguenza, dei nuovi Sistemi
Operativi - Nello stesso periodo i Sistemi Operativi
iniziarono a supportare il DMA e lo SPOOL - Il DMA (Direct Memory Access) è il sistema che
permette di trasferire interi blocchi di dati da
memoria secondaria a memoria centrale in modo
completamente indipendente dal processore, il
quale può, nel frattempo, eseguire altre
operazioni - Lo SPOOL (Simultaneous Peripheral Operations On
Line) è un sistema che permette di gestire in
maniera efficiente le code di job di stampa
14LIBM System/360
- Nell'aprile del '64 l'IBM presentò una famiglia
di computer chiamata IBM System/360, prima
realizzazione di una netta distinzione tra
architettura hardware e implementazione - Tutti gli elaboratori della suite, che andavano
da piccole macchine a grandi Mainframe
utilizzavano varianti dello stesso Sistema
Operativo, l'OS/360, che supportava sia il
calcolo scientifico che quello commerciale - Tuttavia questa eccessiva diversificazione tra i
diversi computer rese difficile scrivere codice
efficiente che rispettasse tutti i requisiti che
erano in conflitto tra di loro - Il risultato fu un Sistema Operativo enorme e
molto complesso scritto da migliaia di
programmatori. OS/360 conteneva centinaia di
errori che resero necessarie diverse revisioni.
Purtroppo ogni nuova versione correggeva alcuni
problemi, introducendone però degli altri
15La multiprogrammazione
- NellOS/360 e in molti altri Sistemi Operativi
dell'epoca venne implementata la
multiprogrammazione, che rendeva possibile la
presenza di più programmi in memoria
contemporaneamente - Quando un job in esecuzione aveva bisogno di
effettuare una operazione di I/O il Sistema
Operativo lo sospendeva e al suo posto faceva
girare un altro job - Quando l'operazione di I/O si concludeva il primo
job tornava pronto all'esecuzione e attendeva il
suo turno attendendo la sospensione di uno degli
altri - Questo rendeva necessaria la presenza di hardware
specializzato per proteggere i programmi dalle
reciproche interferenze
16Il Timesharing (1)
- Ogni utente ha un terminale proprio collegato al
calcolatore centrale. - Ad ogni programma viene assegnato un intervallo
di tempo durante il quale le sue istruzioni
vengono eseguite dalla CPU - Scaduto tale intervallo di tempo, il processore
continua (inizia) l'esecuzione delle istruzioni
di un altro programma per la durata del prossimo
intervallo di tempo
17Il Timesharing (2)
- Nel 1962 venne realizzato al MIT il primo sistema
di timesharing su un IBM 7094 il CTSS
(Compatible Time Sharing System) - Fu in realtà il MULTICS la vera rivoluzione.
Venne sviluppato congiuntamente dal MIT, dalla
General Electric e dai Bell Labs, ed era in grado
di supportare centinaia di utenti in timesharing - La realizzazione fu però molto più complessa del
previsto, tanto che i Bell Labs abbandonarono il
progetto - Tuttavia Multics introdusse molte nuove idee che
influenzarono non poco i successivi Sistemi
Operativi
18UNIX
- UNIX fu progettato a partire dal 1969 da un
gruppo di ricercatori della ATT presso i Bell
Labs, tra cui erano presenti Ken Thompson (che
lavorò anche al progetto Multics), Dennis Ritchie
e Douglas McIlroy - Esso prese notevole spunto dal padre Multics, e
grazie all'ottimo lavoro di queste persone
divenne un sistema molto interattivo, affidabile
e ricco di funzionalità - Vennero sviluppate anche molte varianti di UNIX,
come il System V, BSD (Berkley Software
Distribution), Minix (usato in ambito didattico)
e successivamente (sulla base di MINIX e UNIX)
l'ormai famosissimo Linux sviluppato dallo
studente finlandese Linus Torvalds.
19I Personal Computer (1)
- Negli gli anni '80 grazie alla tecnologia LSI
(large scale integration) la costruzione di chip
integrati divenne massiccia e portò
all'abbattimento dei prezzi dell'hardware,
facendo sorgere l'era del Personal Computer - Queste macchine erano piccole, economiche ed
avevano prestazioni simili a quelle dei
calcolatori medio-grandi di 10-20 anni prima - La diffusione commerciale del computer ha dato
impulso notevole allo sviluppo di interfacce
friendly, che siano di facile utilizzo anche
per chi non sia un esperto del settore.
20I Personal Computer (2)
- I primi modelli erano dotati di Sistemi Operativi
monoutente con accesso interattivo e supporto al
timesharing - Il più importante tra i primi Sistemi Operativi
per Personal computer era il CP/M-80 della
Digital Research per le CPU 8080 / 8085 / Z-80.
Era basato sui Sistemi Operativi della Digital
Equipment Corporation specialmente quelli per
l'architettura PDP-1 - MS-DOS (o PC-DOS quando fornito da IBM) era
originariamente basato proprio sul CP/M-80. (per
approfondimenti vedi breve storia del DOS
21Microsoft vs Apple (1)
- Steve Jobs era uno dei pochi che credeva
nell'idea del Personal Computer. All'epoca era
difficile immaginare cosa potesse farsene una
persona di un computer in casa. Egli invece
continuò per la sua strada fondando Apple
Computer Inc. il 1 Aprile 1976 assieme a Steve
Wozniak e Ronald Wayne. Jobs era convinto che il
futuro del Personal Computer sarebbe stato legato
all'interfaccia grafica. E così, ispirandosi a
quella sviluppata da Xerox qualche anno prima (da
un certo Doug Engelbart), Apple lanciò nel 1983
Lisa OS il primo sistema operativo per Personal
Computer con interfaccia grafica e padre di MAC
OS (1984) per Macintosh
22Microsoft vs Apple (2)
- La GUI (Graphical User Interface) fu una vera
rivoluzione tanto che di lì a poco Microsoft
avrebbe commercializzato Windows (20 novembre
1985) e sarebbe nato l'X Window System in
ambiente Unix (1984). All'inizio Windows non era
definibile Sistema Operativo era piuttosto
un'estensione di MS-DOS. Fu con il rilascio di
Windows 3.0, nel 1990, che Microsoft si impose
sul mercato. Oltre alle maggiori performance che
garantiva alle applicazioni rispetto alle
versioni precedenti, Windows 3.0 forniva un
ambiente multitasking migliorato rispetto alle
precedenti versioni di MS-DOS, grazie
all'introduzione del supporto alla memoria
virtuale, e divenne così un degno rivale del
Macintosh (su cui girava Mac OS) di Apple. A
partire da Windows 3.1 fu introdotto il supporto
alla multimedialità (perfezionato via via nelle
successive release), mentre con l'introduzione di
Windows 95 si passò definitivamente dal calcolo a
16 bit a quello a 32 bit.
23I giorni nostri (1)
- Con l'uscita di Windows 95, Microsoft si afferma
come leader mondiale nei sistemi operativi - Prima dell'uscita della versione successiva,
Windows 98, venne sviluppato Windows NT.
L'attuale evoluzione di Windows 98 è il Windows
ME (Millenium), mentre NT è sviluppato in Windows
2000. Ad oggi è disponibile, ivece, Windows XP,
sia per l'utenza domestica che professionale. - Sull'altro versante i sistemi operativi come Unix
e Linux hanno continuato a crescere e
implementano un'interfaccia grafica (molto simile
a quella di Windows) chiamata X Windows. Altri
sistemi operativi da menzionare sono il BeOS il
quale è, ormai, completamente abbandonato a se
stesso ed il QNX, sistema operativo real-time
intenzionato a conquistare ampie fette di
mercato.
24I giorni nostri (2)
- Arriviamo infine ai sistemi operativi attuali,
agli odierni e conosciutissimi WINDOWS VISTA e OS
X, e i vari UBUNTU, SUSE, FEDORA. - Oggigiorno è inoltre disponibile una grande
varietà di sistemi di elaborazione dalle più
disparate dimensioni e performance a costi
contenuti - Inoltre sono oggi sempre più diffuse le
interconnessioni tra i vari dispositivi in
modalità sia wired che wireless - Tutte queste innovazioni hanno portato allo
sviluppo di sistemi operativi per le più svariate
architetture, in particolare per dispositivi
handheld come cellulari (tra i quali non si può
non citare il Symbian OS) e PDA (con Windows
Mobile e Palm OS).
25I Sistemi Operativi di rete (1)
- Un fenomeno interessante che iniziò a prendere
piede da metà degli anni '80 fu lo sviluppo delle
reti di calcolatori, fenomeno che ha poi portato
all'incredibile crescita di Internet - Nacquero così i Sistemi Operativi di rete e i
Sistemi Operativi distribuiti - I primi altro non sono che normali Sistemi
Operativi ai quali vengono aggiunti i software
per il collegamento a macchine remote e quindi
alle relative risorse condivise come file e
stampanti - I secondi sono Sistemi Operativi che girano su
sistemi a più processori oppure che inviano i
processi da elaborare ad altri computer della rete
26I Sistemi Operativi di rete (2)
- I Sistemi Operativi distribuiti sono dotati di
particolari politiche di scheduling che
permettono una efficace allocazione dei processi
tra le CPU disponibili. Inoltre anche il sistema
di archiviazione (file system) è unico, anche se
in realtà è distribuito tra vari nodi della rete - Esempi di sistemi di rete sono tutte le versioni
di Windows dalla NT 3.1 in poi, mentre UNIX e
derivati fanno parte di entrambe le categorie in
quanto supportano entrambe le tecnologie
27Appendice 1 Cronologia dei S.O. (60)
- 1961
- CTSS
- 1964
- OS/360 (annunciato)
- 1965
- Multics (annunciato)
- OS/360 (disponibile)
- Tape Operating System (TOS)
- 1966
- MS/8
- 1967
- CP/CMS
- ITS
- WAITS
- 1969
- ACP (IBM)
- TENEX
- Unix
28Appendice 1 Cronologia dei S.O. (70)
- 1970
- DOS/BATCH 11 (PDP-11)
- 1971
- OS/8
- 1972
- MFT
- MVT
- RDOS
- SVS
- VM/CMS
- 1973
- Alto OS
- RSX-11D
- RT-11
- VME
- 1974
- MVS (MVS/XA)
- 1976
- CP/M
- TOPS-20
- 1978
- Apple DOS 3.1 (Primo sistema operativo
dell'Apple) - TRIPOS
- VMS
- 1979
- Apple DOS 3.2
29Appendice 1 Cronologia dei S.O. (80) (1)
- 1980
- Apple DOS 3.3
- OS-9
- QDOS
- SOS
- XDE (Tajo) (Xerox Development Environment)
- Xenix
- 1981
- MS-DOS
- Xerox Star
- 1982
- SunOS (1.0)
- Ultrix
- 1983
- Lisa OS
- Coherent
- ProDOS
- 1984
- Macintosh OS (System 1.0)
- QDOS (Sistema Operativo del Sinclair QL)
- QNX
- UniCOS
- 1985
- AmigaOS 1.0
- Atari TOS
- MIPS OS
- Microsoft Windows 1.0
30Appendice 1 Cronologia dei S.O. (80) (2)
- 1986
- AIX
- GS-OS
- HP-UX
- 1987
- AmigaOS 1.2
- Arthur
- IRIX (3.0 è la prima versione prodotta dall'SGI)
- Minix
- OS/2 1.0
- Microsoft Windows 2.0
- 1988
- A/UX (Apple Computer)
- AmigaOS 1.3
- LynxOS
- MVS/ESA
- OS/400
- 1989
- NEXTSTEP 1.0
- RISC OS
- SCO Unix Release 3
31Appendice 1 Cronologia dei S.O. (90) (1)
- 1990
- AmigaOS 2.0
- BeOS (v1)
- OSF/1
- 1991
- Linux
- 1992
- AmigaOS 2.1, 3.0
- Solaris (2.0 è la prima versione non chiamata
SunOS) - Windows 3.1
- 1993
- Plan 9
- FreeBSD
- NetBSD
- Slackware Linux
- Windows NT 3.1 (Prima versione di NT)
- 1994
- AmigaOS 3.1
- Red Hat Linux
32Appendice 1 Cronologia dei S.O. (90) (2)
- 1995
- Digital Unix (detto anche Tru64)
- OpenBSD
- OS/390
- Windows 95
- 1996
- Debian GNU/Linux (Debian 1.1) 1
- 1997
- Mac OS 7.6 (Primo sistema operativo ufficialmente
chiamato Mac OS)
- 1998
- Windows 98
- 1999
- AmigaOS 3.5
- AROS (Parte per la prima volta in modalità
stand-alone) - Mac OS 8
33Appendice 1 Cronologia dei S.O. (2000) (1)
- 2000
- AmigaOS 3.9
- AtheOS
- Mac OS 9
- Mac OS X Public Beta
- MorphOS 0.4 (Versione "free distro" per Amiga con
schede PowerPC) - Windows 2000
- Windows ME
- 2001
- AmigaOS 4 (Maggio, annunciato)
- Mac OS X 10.0 (Cheetah)
- Mac OS X 10.1 (Puma)
- Windows XP
- z/OS
- 2002
- AROS (Interfaccia grafica nativa ZUNE)
- Mac OS X 10.2 (Jaguar)
- Syllable
34Appendice 1 Cronologia dei S.O. (2000) (2)
- 2005
- Gentoo Linux 2005.0
- MorphOS 1.4.4
- MacOS X 10.4 (Tiger)
- Windows Server 2003 x64 Edition
- Windows XP Professional x64 Edition
- MacOS X 10.4 (Versione Server)
- MorphOS 1.4.5
- YellowTAB ZETA (BeOS Clone) 1.0 (1 luglio 2005)
- Windows Vista (Versione beta)
- Pardus 1.0
- 2003
- Mac OS X 10.3 (Panther)
- MorphOS 1.4.2
- Windows Server 2003
- 2004
- MorphOS 1.4.3
- AmigaOS 4.0 Developer PreRelease per gli AmigaONE
35Appendice 1 Cronologia dei S.O. (2000) (3)
- 2006
- Ubuntu 6.06 LTS
- Pardus 2007
- 2007
- Mac OS X (Leopard)
- Windows Vista
- Windows codename Longhorn Server (Anno previsto
per il rilascio di questo SO) - 2011
- Windows Vienna (Anno previsto per il rilascio di
questo SO)
36Sitografia
- http//it.wikipedia.org/wiki/Storia_dei_sistemi_op
erativi - http//fabrizio.ciacchi.it/guide.php/soperativi.ht
m