SISTEMI OPERATIVI
Evoluzione degli Elaboratori Elettronici
Giorgio Giacinto 2016
Ciclo di vita della tecnologia
2
Sistemi Operativi
Giorgio Giacinto 2016
Ciclo di vita della tecnologia (cont.)
3
Sistemi Operativi
Giorgio Giacinto 2016
Esempio: Apple inc.
Newton (1993-1997) http://www.msu.edu/~luckie/newtgal.htm
Sistemi Operativi
iPhone (2007) 4
Consumerization » Oggi Le nuove tecnologie del mondo IT sono sviluppate inizialmente per il mercato del consumatore finale
Giorgio Giacinto 2016
» In un secondo momento queste tecnologie sono integrate nei processi aziendali ˃ Permettendo ai dipendenti l’uso dei dispositivi personali sul lavoro 5
Sistemi Operativi
Breve storia dei sistemi di elaborazione » Primi sistemi: meccanici
˃ Pascal (1642): addizione e sottrazione ˃ Leibniz (1700): le 4 operazioni fondamentali
» Nuove idee solo 150 anni più tardi! ˃ Babbage (1834): “motore analitico”, un calcolatore programmabile. Il calcolatore era capace di eseguire istruzioni elementari per mezzo delle quali era possibile risolvere diversi problemi. Giorgio Giacinto 2016
» Inizia era calcolatori general purpose ˃ Uno stesso calcolatore può essere programmato per svolgere compiti diversi (es. elaborazione testo, calcoli scientifici, posta elettronica, ecc.) 6
Sistemi Operativi
Alcune pietre miliari Data Nome
Realizzato da
1834 Motore Analitico Babbage 1936 Z1 1943 COLOSSUS 1944 Mark I 1946 ENIAC I 1949 EDSAC
Giorgio Giacinto 2016
1951 Whirlwind I 1952 IAS 1957 ELEA 1960 PDP-1 1961 1401 1962 7094
Commento
Primo tentativo di calcolatore "digitale" (meccanico) Zuse Primo calcolatore funzionante con relé (elettromeccanico) Governo GB Primo calcolatore elettronico Aiken Primo calcolatore americano generalpurpose Eckert/Mauchley Inizia La storia dei calcolatori moderni Wilkes Primo calcolatore con programma in memoria M.I.T. Primo calcolatore real-time Von Neumann La maggior parte dei calcolatori oggi usa la stessa architettura Olivetti Primo esemplare della serie Elea DEC Primo minicalcolatore (venduti 50) IBM Piccolo calcolatore che diventò popolare nelle piccole imprese IBM Posizione dominante nel calcolo scientifico nei primi anni '60.
7
Sistemi Operativi
La prima era dei calcolatori
ENIAC
Giorgio Giacinto 2016
John Von Neumann 1903 - 1957
8
PDP-1 Sistemi Operativi
ELEA
IBM 1401 Pannello di controllo
Elaborazione Seriale (anni ‘40 e ‘50)
» Calcolatori controllati da una console ˃ ˃ ˃ ˃
indicatori luminosi interruttori a levetta tastiera stampante
Giorgio Giacinto 2016
» Non esisteva il sistema operativo » L’esecuzione di un programma era avviata manualmente da un operatore
9
Sistemi Operativi
Sistemi Batch (anni ‘50)
» Monitor (metà anni ‘50, General Motors, IBM 701) ˃ Software che gestisce l’esecuzione automatica di una sequenza di programmi
Giorgio Giacinto 2016
» I job da eseguire sono registrati sequenzialmente su un nastro » Ciascun programma ritorna al monitor al termine dell’elaborazione ˃ Il monitor carica il job successivo
» Il monitor residente si trova nella memoria principale ed è disponibile per l’esecuzione 10
Sistemi Operativi
Monitor Residente
Giorgio Giacinto 2016
Job Control Language (JCL) » Un linguaggio di programmazione ad hoc Boundary » Fornisce istruzioni al monitor
Interrupt Processing Device Drivers Monitor
Job Sequencing Control Language Interpreter
˃ Quale compilatore usare ˃ Quali dati da usare
User Program Area 11
Sistemi Operativi
Figure 2.3 Memory Layout for a Resident Monitor
Requisiti hardware per il monitor » Protezione della memoria ˃ Non deve consentire la modifica dell’area di memoria che contiene il monitor
» Istruzioni privilegiate
Giorgio Giacinto 2016
˃ Possono essere eseguite solo dal monitor
» Si introduce il concetto di modo di esecuzione: utente e kernel » Timer ˃ Impedisce ad un singolo job di monopolizzare il sistema
» Interruzioni 12
Sistemi Operativi
Nel 1962… …il New York Times riporta una frase di John W. Mauchly (uno dei progettisti di ENIAC)
Giorgio Giacinto 2016
There is no reason to suppose the average boy or girl cannot be master of a personal computer 13
Sistemi Operativi
…nel 1977
Giorgio Giacinto 2016
There is no reason anyone would want a computer in their home Ken Olson, president, chairman and founder of DEC 14
Sistemi Operativi
In Italia negli anni ‘60… » 1962-1964: sviluppo in Olivetti del primo personal computer al mondo (Pier Giorgio Perotto) » 1965-1971: produzione di Programma 101 (circa 44.000 unità) Pier Giorgio Perotto P101. Quando l'Italia inventò il personal computer (1995)
Giorgio Giacinto 2016
Giorgio Garuzzo Quando in Italia si facevano i computer (2015) 15
Sistemi Operativi
Giorgio Giacinto 2016
P101
16
Sistemi Operativi
Giorgio Giacinto 2016
Alcune pietre miliari Data Nome
B5000 360 6600 PDP-8
Realizzatore Commento
1963 1964 1964 1965
Burroughs IBM CDC DEC
1967 1970 1974 1974 1977 1978 1981 1981 1985 1987 1990 …
GE 115 PDP-11 8080 CRAY-1 Apple VAX IBM PC Xerox MIPS SPARC RS6000 …
GE DEC Intel Cray II DEC IBM Star MIPS Sun IBM …
Primo calcolatore progettato per un linguaggio di alto livello Primo progetto di una famiglia di prodotti Primo supercomputer scientifico Primo minicomputer per il mercato di massa (venduti 50.000 esemplari) Progettato in Italia - ex divisione elettronica di Olivetti Dominante nel mercato dei minicomputer anni '70 Priimo calcolatore general-purpose a 8 bit su unico chip Primo supercomputer vettoriale Primo calcolatore con interfaccia grafica Primo superminicomputer a 32 bit Inizia l'era del personal computer Primo personal computer con interfaccia grafica Primo calcolatore RISC commerciale Prima workstation RISC basata su processore SPARC Primo calcolatore superscalare … 17
Sistemi Operativi
Anni 60 e 70
IBM 360
Giorgio Giacinto 2016
VAX
18
Lettore di dischi IBM Sistemi Operativi
Apple II
Anni 80 SUN SPARCStation
Giorgio Giacinto 2016
IBM PC-AT
19
ZX Spectrum Sistemi Operativi
Fairlight CMI
Alcuni Personal Computer di prima generazione Apple Macintosh 1984 Apple Lisa 1983 Osborne Compaq (portatile) 1983
Giorgio Giacinto 2016
Xerox Star 1981
20
Sistemi Operativi
Giorgio Giacinto 2016
Oggi…
21
Sistemi Operativi
Domani…
Giorgio Giacinto 2016
IEEE Spectrum July 2012
22
Sistemi Operativi
Giorgio Giacinto 2016
23
Sistemi Operativi
Componenti di un sistema di calcolo utente 1
compilatore
utente 2
utente 3
assemblatore
editor di testi
utente n
base di dati
Giorgio Giacinto 2016
programmi applicativi
sistema operativo
dispositivi fisici
Sistemi Operativi
coordina e controlla l'uso dei dispositivi da parte dei programmi
24
Il Sistema Operativo… …visto dall’utente » è un programma che consente di interagire con i dispositivi in modo semplice, possibilmente intuitivo
Giorgio Giacinto 2016
˃ ˃ ˃ ˃
Personal computer Server Workstation Dispositivi mobili
» Nei sistemi embedded l’utente in genere non interagisce con il sistema operativo 25
Sistemi Operativi
Il Sistema Operativo… …visto dall’utente » Enfasi su ˃ progettazione interfacce + ingresso (ad es., touch-screen) + uscita (ad es., grafica a icone)
Giorgio Giacinto 2016
» Meno enfasi su ˃ prestazioni ˃ massimizzazione utilizzo risorse 26
Sistemi Operativi
Interfacce utente L’interprete dei comandi
» Il sistema operativo riceve dei comandi da eseguire tramite stringhe di testo » I comandi possono ˃ far parte dell’interprete dei comandi ˃ essere dei programmi separati
Giorgio Giacinto 2016
» Nei sistemi Unix/Linux è chiamata shell ˃ diversi tipi di shell (C-, bourne, k-, ecc.)
» Gli amministratori di sistema interagiscono tramite shell
27
Sistemi Operativi
Interfacce utente Interfacce grafiche
» Nate negli anni ‘70 dalle ricerche nei laboratori Xerox di Palo Alto ˃ Primi utilizzi: Xerox Alto e Apple Macintosh
» Utilizzano metafore (scrivania…) e icone
˃ Dispositivi esterni di puntamento dello schermo (stilo, mouse ecc.) ˃ Uso di gesti naturali su schermi tattili
Giorgio Giacinto 2016
» Diverse interfacce ˃ ˃ ˃ ˃ ˃
Macintosh Windows KDE, Gnome, ecc. nel mondo Linux iOS Android
Sistemi Operativi
28
Il Sistema Operativo… …dal punto di vista del sistema » Il sistema operativo è il mediatore fra ˃ le esigenze di risorse dei programmi applicativi + memoria, cpu, periferiche
˃ e le risorse effettivamente disponibili nel sistema
Giorgio Giacinto 2016
» Il sistema operativo è un programma di controllo ˃ consente l’uso corretto delle risorse ˃ evita errori, blocchi 29
Sistemi Operativi
Il Sistema Operativo… …dal punto di vista del sistema » Fornisce ai programmi applicativi una visione astratta della macchina » I meccanismi di gestione delle risorse hanno l’obiettivo
Giorgio Giacinto 2016
˃ di non creare conflitti ˃ di sfruttare al massimo le risorse del sistema
30
Sistemi Operativi
Definizione di sistema operativo » Non esiste una definizione completa ed esauriente » È essenzialmente un programma che consente l’uso di un sistema di calcolo da parte di
Giorgio Giacinto 2016
˃ più di un programma applicativo ˃ più di un utente
» È comunque un programma… …che controlla altri programmi… 31
Sistemi Operativi
L’evoluzione dei sistemi operativi L’ontogenesi ricapitola la filogenesi
Giorgio Giacinto 2016
La storia dei sistemi operativi si ripete ad ogni evoluzione nella tecnologia dei calcolatori Accoppiamento più o meno stretto del sistema operativo con architettura hardware 32
Sistemi Operativi
Giorgio Giacinto 2016
Evoluzione
33
Giorgio Giacinto 2016
Sistemi Operativi
34
Sistemi Operativi
Il sistema operativo UNIX
Giorgio Giacinto 2016
» Nella seconda metà degli anni ‘60 grande impulso allo sviluppo di sistemi operativi (innovators) » MIT, Bell Labs e General Electric progettarono MULTICS (Multiplexed Information and Computing Service) » I Bell Labs ad un certo punto uscirono dal progetto, ma Ken Thompson decise di riscrivere MULTICS su un “piccolo” calcolatore » Brian Kernigham dei Bell Labs chiamò quel sistema UNICS (Uniplexed Information and Computing Service) ˃ gioco di parole con l’inglese “eunhucs”
» I Bell Labs si interessano al lavoro: interviene Dennis Ritchie. 35
Sistemi Operativi
La storia di UNIX » Esigenza di scrivere UNIX in un linguaggio di alto livello ˃ Thompson progettò il linguaggio B che non funzionò tanto bene ˃ Ritchie progettò il successore del B, il C
Giorgio Giacinto 2016
» Nel 1974 Ritchie e Thompson pubblicarono un articolo su UNIX
˃ Molte università richiedettero UNIX. Essendo i Bell Labs parte di AT&T (monopolio regolato), non poteva vendere computer e cedette UNIX all’università per un prezzo modesto. ˃ Molti ricercatori iniziarono a lavorarci essendo decisamente più evoluto dei SO “fatti in casa” utilizzati dai singoli dipartimenti Sistemi Operativi
36
Giorgio Giacinto 2016
Ritchie (in piedi) e Thompson
37
“Porting” di UNIX su PDP-11 Sistemi Operativi
Tappe Fondamentali » 1976: Prima versione disponibile al pubblico (V6) » 1978: V7, antesignana dei moderni sistemi UNIX » 1985: AT&T produsse System V » 1993: AT&T vendette UNIX a Novell
Giorgio Giacinto 2016
» 1995: Novell vendette UNIX a Santa Cruz Operation (SCO) » Parallelamente l’Università di Berkeley sviluppò la propria versione BSD » POSIX (Portable Operating System): tentativo di standardizzare UNIX (IEEE) http://www.levenez.com/unix/ Sistemi Operativi
38
Linux » 1991 - Linus Torvalds, finlandese, studente di informatica, distribuì in Internet la versione preliminare del nucleo di una versione Unix per PC-IBM
Giorgio Giacinto 2016
˃ Ispirato da MINIX, versione didattica di UNIX per PC-IBM sviluppata da Andrew Tanenbaum
» Il sistema si è evoluto grazie al contributo di numerosissime persone che attraverso Internet hanno contribuito allo sviluppo » Oggi numerose versioni, sia per personal computer, sia server 39
Sistemi Operativi
Lo studio dei sistemi operativi » Oggi lo studio dei sistemi operativi è facilitato da
Giorgio Giacinto 2016
˃ disponibilità di codice sorgente (Linux, Max OS X, Solaris, Windows, ecc.) ˃ possibilità di eseguire sistemi operativi diversi su una stessa architettura grazie alle tecniche di virtualizzazione
40
Sistemi Operativi
Sistema Operativo Apple » Apple nacque nella seconda metà degli anni ‘70. » Pioniere nell’introduzione di “applicazioni” ˃ Elaboratore testi ˃ Foglio di calcolo ˃ Grafica
e nell’introduzione del sistema operativo grafico
Giorgio Giacinto 2016
˃ Finestre ˃ Mouse
» 1983: Apple Lisa » 1984: Apple Macintosh » 2000: Mac OS X (basato su FreeBSD e Mach)
41
Sistemi Operativi
Sistemi Operativi Microsoft » Nel 1974 venne creato alla Intel CP/M, il sistema operativo per la nuova famiglia di microprocessori 80xx ˃ Sistema “a riga di comando”
Giorgio Giacinto 2016
» Nel 1981 la Microsoft creò un clone di CP/M e lo vendette a IBM che lo usò come sistema operativo per il primo “personal” computer ˃ PC-DOS per i computer IBM ˃ MS-DOS per i computer IBM-compatibili
» Nel 1985 prima versione di Windows ˃ Interfaccia grafica per DOS, ispirata da quella del sistema operativo Apple, che era un sistema operativo senza interfaccia a riga di comando Sistemi Operativi
42
Evoluzione di MS Windows » 1990: Windows 3.0 » 1995: Windows 95
˃ Introduce memoria virtuale, gestione dei processi, multiprogrammazione
» 1998: Windows 98
˃ Miglioramento grafico e integrazione con Internet
» Windows NT (1993) Giorgio Giacinto 2016
˃ Nuovo progetto slegato da MS-DOS
» Windows 2000 (basato su NT), XP e Vista » Oggi ˃ Windows 10 per sistemi “desktop” ˃ Windows 2016 per sistemi “server”
43
Sistemi Operativi