Sei sulla pagina 1di 60

Sistemi Operativi: avvio

All’avvio del computer, terminate le verifiche del


BIOS, il controllo passa al sistema operativo.
operativo

Il Sistema Operativo
p opera
p
come intermediario tra
ll’hardware
hardware del sistema e uno
o più utenti.
Sistema Operativo: funzioni

Due sono le funzioni principali


svolte da un sistema operativo:

• gestione delle risorse hardware


• interfaccia verso l’utente

Come tali funzioni vengano


g svolte,, e se sia
interamente il sistema operativo ad occuparsene,
dipende dal dispositivo in questione.
Dispositivi
Esistono diversi dispositivi elettronici la cui
complessità ha reso necessario dotarli di un
sistema operativo.

Tra questi,
questi agende
Palm m505
elettroniche e
telefoni cellulari
sono esempi
Sendo z100
comuni.
Nokia 7650
Dispositivi

La gestione dell’hardware è un aspetto


di secondaria importanza per gli utenti
di q
questi dispositivi.
p

L’interfaccia ha un’importanza maggiore,


ed
d è sia
i fisica
fi i che
h virtuale
i l (software).
( f )
Sistemi operativi:
un po
po’ di storia
Sistemi operativi: storia
I primi sistemi operativi sono stati progettati
negli anni ’50 per i calcolatori allora disponibili.
disponibili
Consistevano in poche centinaia di istruzioni per
il caricamento del programma in memoria
centrale e per la produzione,
produzione su un dispositivo di
output, dei risultati dell’elaborazione.
L’interfaccia era quella comune allora –
interruttori e spie luminose.
luminose
I comandi venivano impartiti in codice binario.
Sistemi operativi: storia (UNIX)
Nella seconda metà degli anni ’60, la AT&T
abbandona il progetto MULTICS – un sistema a
time-sharing – rivelatosi deludente.
Ken Thompson, allora ai Bell Labs della
AT&T, scrive un sistema operativo in
assembler e lo battezza, scherzosamente,
UNICS ((Uniplexed
p Information and
Computing Services).

Nasceva cosìì UNIX


N UNIX, capostipite
ti it di una numerosa e
varia famiglia di sistemi operativi. Era il 1969.
Sistemi operativi: storia (UNIX)
Nel frattempo Dennis Ritchie, che
collaborava
ll b con Th
Thompson, sviluppa
il
il linguaggio di programmazione “C”.
Nel 1972 UNIX viene riscritto in C,
aprendo
d lla strada
t d all’utilizzo
ll’ tili su
altre piattaforme hardware.
Dal 1975 in poi, UNIX inizia a diffondersi nelle
università
i ità – negli
li Stati
St ti Uniti,
U iti iin Gi
Giappone,
Australia, Europa…
Sistemi operativi: storia (DOS)
Negli anni ’70, iniziano a diffondersi i
primi personal computer.
computer Gary Kildall
sviluppa, nel 1972, il CP/M (Control
P
Program for
f Microprocessors),
i ) un
sistema operativo funzionante su uno
dei primi processori Intel (il 4004).
Il primo
i BIOS fu
f scritto
i d
da Kild
Kildall
ll come modulo
d l
per il proprio CP/M, in modo da rendere il
sistema meno dipendente dall’hardware.
Sistemi operativi: storia (DOS)
Nel 1980 Tim Patterson, della Seattle Computer
Products sviluppò un proprio sistema operativo
Products,
basato sul CP/M. Impiegò due mesi, e lo battezzò
QDOS (Quick
(Q i k and
d Di
Dirty O
Operating
i SSystem).)
Dopo quattro mesi,
mesi un’altra
un altra ditta di Seattle,
Seattle la
Microsoft di Bill Gates, acquista dalla SCP i diritti
per rivendere
i d il DOS ad
d un cliente
li non menzionato.
i
Il cliente è ll’IBM
IBM che nel 1981 lancerà il primo PC,
IBM, PC
dando il via alla rivoluzione dei personal computer.
Sistemi operativi: storia (Win & Mac)
La Apple Computer, negli stessi anni, sta portando
avanti diversi progetti
progetti, e sperimenta diversi sistemi
operativi. Nel 1984, con il lancio (e il successo)
d ll’A l Macintosh,
dell’Apple i h sii ffocalizzerà
li à sull suo sistema
i
operativo, il System – allora alla versione 1.0.
Al contrario del DOS, nelle sue varie incarnazioni, il
S
System h
ha un’interfaccia
’i f i grafica.
fi
L anno successivo,
L’anno successivo il 1985
1985, la Microsoft lancia la
prima versione di Windows.
Sistemi operativi: storia (Win & Mac)
Dal 1984-85 ad oggi, sia la Apple che la Microsoft
hanno aggiornato più volte i propri sistemi
operativi.
L’interfaccia Apple è rimasta simile (perché molto
funzionale) mentre la Microsoft ha via via
funzionale),
abbandonato il DOS, e nel 1995 ha introdotto, con
Wi d
Windows 95
95, un’interfaccia
’i f i grafica
fi piùiù curata ed
d
efficiente.
Sistemi operativi: storia (Linux)
Nel 1991 uno studente finlandese, Linus
Torvalds sviluppò il kernel per un sistema
Torvalds,
operativo basato su una variante di UNIX.
Lo distribuì in rete secondo la GNU
General Public License,
License una licenza che ne
consentiva l’uso, la redistribuzione e la
modifica
difi ((a certe condizioni).
di i i)
Iniziò a ricevere da subito contributi da
altri sviluppatori.
Sistemi operativi: storia (Linux)
Nasceva così Linux
Linux, una delle varianti UNIX oggi
più diffuse.
diffuse Il kernel di Linux è continuamente
aggiornato, e disponibile anche gratuitamente.
Uno dei punti di forza di questo sistema è la
comunità che lo supporta,
supporta e la filosofia su cui si
basa, quella del software libero.
libero
Sistemi operativi:
struttura interna
Livelli

La struttura di un sistema operativo,


tipicamente, è quella a cipolla:
Livelli
L’hardware è dunque “ricoperto” da una serie di
strati di software.
software
Ciascun livello:
– usa le funzionalità di quello
sottostante
tt t t
– fornisce servizi al livello che segue
nella gerarchia
– gestisce delle risorse mediante
politiche invisibili ai livelli superiori
Macchine virtuali
Si crea, in questo modo, una gerarchia di
macchine virtuali
“macchine virtuali”.
• l’esperto
l esperto che scrive un sistema
operativo vede il sistema come un
insieme di risorse fisiche da
comandare direttamente;
• colui che progetta un ambiente
di programmazione vede la
macchina come ll’insieme
insieme delle
funzioni messe a disposizione dal
sistema operativo;
Macchine virtuali
• l’utente che usa un linguaggio di alto
livello p
per p
progettare
g un p
programma
g
applicativo vede l’elaboratore come
l’insieme delle funzionalità messe a
disposizione dall’ambiente di
programmazione;
• per l’utilizzatore di un programma
applicativo infine,
applicativo, infine il sistema appare
virtualmente come l’insieme dei
comandi che può fornire alla macchina
per soddisfare le sue esigenze.
Macchine virtuali
Riassumendo: l’utente finale del sistema
i t
interagisce
i solo
l con il li
livello
ll più
iù esterno
t
della gerarchia.
Idealmente, l’utente finale è ignaro di tutti
i dettagli
d tt li ddelle
ll operazioni
i i svolte
lt d
daii li
livelli
lli
inferiori.
Potrebbe (sempre idealmente) essere a
conoscenza solo
l delle
d ll operazioni
i i che
h è
interessato ad effettuare.
Gestione CPU
Il livello più basso è quello del kernel (nucleo).
Questa parte del sistema operativo si occupa di
gestire l’esecuzione dei programmi.

Un programma in esecuzione è
d tt processo.
detto

Ill kernel
k l distribuisce
d b l
le
risorse di calcolo tra i
vari processi attivi.
Gestione CPU
Una prima distinzione è dunque tra quei sistemi
che eseguono un processo per volta e quelli in
grado di gestirne diversi “contemporaneamente”.
Questi ultimi sono detti multitasking
multitasking.
Gestione memoria
La memoria è una risorsa essenziale e limitata.
Essenziale perché ogni programma in esecuzione
Essenziale,
(processo) deve essere “caricato”
caricato in memoria,
memoria e
così i dati su cui opera.

Limitata perché nei


Limitata,
sistemi moderni
possono essere attivi
più
iù processii nello
ll stesso
t
tempo.
Gestione memoria
Dal momento che la memoria di sistema (RAM) è
una risorsa finita
finita, nell’allocarla ai vari processi il
sistema operativo deve risolvere vari problemi:

• trovare spazio per i vari processi;


• “rilocare” il codice caricato in
memoria;
• ridurre
id lla frammentazione.
f t i
Gestione memoria
A A
B B

C C

In memoria sono Anche C viene Il processo B termina,


caricati i p
processi A e B. caricato in memoria. e libera la memoria.
memoria

A
D
C Il processo D non trova spazio in cui
inserirsi, anche se la memoria libera
complessiva sarebbe sufficiente.
Gestione memoria: paginazione
E’ anche possibile suddividere la memoria in
blocchi (pagine fisiche).
fisiche) I programmi da caricare
dovranno essere divisi in pagine logiche.
Memoria (RAM) Processi

0
0
1
1
2
2
E
3
3 4
4
5 5
6 6 F
7
7
8
9
8
G
9
Gestione memoria: swapping
Il sistema operativo può riservare un’area
di un disco per lo swapping
swapping.
C
A A
B B D
D
C C
D viene caricato
in memoria.
memoria

In memoria sono presenti A, B, C viene copiato su un


e C. D non trova spazio. disco dal gestore della
memoria.
i
Memoria virtuale
Le tecniche appena esposte possono coesistere
tranquillamente Il risultato della loro interazione
tranquillamente.
è che il sistema può disporre, in apparenza, di
una quantità di memoria maggiore di quella fisica
installata.
L’utilizzo di una memoria secondaria (su disco)
per estendere la memoria di sistema consente di
parlare di memoria virtuale.
virtuale
Gestione Input/Output
L’accesso
accesso alle periferiche di I/O viene gestito dal
sistema operativo insieme ai driver di periferica.
periferica

Questi sono programmi specifici


per ciascun dispositivo
p p che si
colleghi all’elaboratore
(stampanti, scanner
dischi…).
Gestione Input/Output
L’interazione tra un programma e una periferica è
standardizzata Un programma di elaborazione
standardizzata.
testi, ad esempio, può inviare un comando di
stampa senza curarsii d
dell tipo
i di stampante
collegata al computer.

Spetta al sistema operativo


smistare la richiesta al driver
della stampante.
stampante
Gestione Input/Output
A questo livello è implementato anche un sistema
di gestione degli errori di I/O (ad es
es. dischetto
mancante o danneggiato, carta esaurita, ecc.).

Anche il controllo dell’ordine di


accesso ai dispositivi è cruciale. Il
sistema operativo deve prevenire, o
risolvere, eventuali conflitti.
Gestione file
Il file system è il modo in cui il sistema operativo
organizza i file (documenti) sulle unità di
memorizzazione.

Un file è un’astrazione
che rappresenta un
insieme di byte
logicamente collegati.
Gestione file: funzioni
Il file system deve mettere a disposizione diverse
funzioni per la manipolazione dei file:

• creazione/eliminazione
• lettura/scrittura/esecuzione
• coordinamento
di t accessii contemporanei
t i
• controllo degli accessi (nei sistemi
multiutente)
Inteprete dei comandi (shell)
L’interprete
interprete dei comandi è quella parte del
sistema operativo che riceve ed elabora le
istruzioni impartite da un utente.

E’ possibile utilizzare lo
stesso sistema operativo
con shell differenti.
Questo può rendere
molto diverso il modo di
impartire comandi.
Inteprete dei comandi (shell)
La shell è dunque lo strato più esterno di un
sistema operativo
operativo. Di fatto
fatto, rappresenta
l’interfaccia
interfaccia tra utente e sistema.

MacOS X Windows XP Linux – KDE 3.0


Sistemi operativi: implicazioni
La scelta di un sistema operativo ha un’importanza
sia teorica che culturale.
culturale
Un sistema operativo
p non è solo una realizzazione
ingegneristica, ma rispecchia in qualche misura la
g
filosofia che scegliamo di adottare nel nostro
rapporto con il computer.
Bisogna dunque
Bi d guardarsi
d i dal d l considerare
id il sistema
i t
operativo come una sorta di “dato” tecnologico: si
tratta, piuttosto, del
d l risultato
l di
d un processo cheh hha
anche fondamentali aspetti culturali e comunicativi.
Inteprete dei comandi (shell)
L’interprete
interprete dei comandi è quella parte del
sistema
i t operativo
ti che
h riceve
i ed
d elabora
l b lle
istruzioni impartite da un utente.
Inteprete dei comandi (shell) e interfaccia
Che differenza c’è tra “interprete
interprete dei comandi”,
comandi
“shell
shell” e “interfaccia
shell”, interfaccia utente”?
utente

Ip
primi due termini sono sinonimi.
“Shell” vuol dire “guscio”, in riferimento al fatto
che si tratta dello strato più esterno di un
sistema operativo.
E’ un programma
programma.
Interfaccia
L’interfaccia è il mezzo attraverso il quale
l’utente invia comandi alla shell.
shell

Esistono diverse interfacce p


possibili p
per
l’interazione uomo-macchina. Il loro successo
dipende, oltre che da un
un’accurata
accurata progettazione,
dal tipo di utente cui sono rivolte.
Interfacce
Due sono i tipi di interfaccia più diffusi per
i t
interagire
i con un computer: t
• Interfacce a caratteri,
caratteri anche dette a riga di
comando (CLI, command line interfaces)
• Interfacce grafiche (GUI, graphical user interfaces),
i particolare
in ti l di tipo
ti WIMP (Windows, Icons, Menus,
g device)
Pointing
Interfacce a caratteri
Storicamente, per motivi legati
all’hardware le interfacce a caratteri
all’hardware,
vengono prima delle altre.
Il CP/M, il DOS, alcuni sistemi operativi in
uso sui mainframe
f negli
l anni ’60,
’ UNIX..
Hanno tutti un’interfaccia a caratteri.
Interfacce a caratteri

DOS shell
Interfacce a caratteri

Unix shell
(linux
(l u console)
co sole)
Interfacce a caratteri

Esistono molti tipi di shell con


interfaccia a caratteri, così come
con interfaccia grafica.
grafica
La differenza tra le interfacce a
caratteri è nella sintassi e nella
maggiore o minore flessibilità
flessibilità.
Interfacce grafiche
Cosa rende diverse le interfacce grafiche le
une dalle altre?
Evidenziamo due aspetti:
• il tipo di metafora usata;
• gli elementi costitutivi che ll’utente
utente può
manipolare.
Metafore
La metafora più utilizzata nei personal
computer,
t oggi, i è quella
ll d
della
ll ““scrivania”
i i ”
(in inglese, desktop).

Dalla sua introduzione ad oggi sono state


i t d tt iinterfacce
introdotte t f alternative,
lt ti allo
ll scopo
di superarne
p le limitazioni,, ma ancora senza
successo.
Xerox Star
Interfacce grafiche: Magic Cap

Magic Cap, della General Magic


Interfacce grafiche: BOB

Mi
Microsoft
ft BOB (1995)
(1995).
Interfacce grafiche: Macintosh
L’interfaccia grafica dell’Apple Macintosh: il Finder (ver. 0.97)
Interfacce grafiche: Windows 1.0
Un’interfaccia per il DOS: Windows 1.0
Interfacce grafiche: Windows 3.1

Un’interfaccia
U ’i t f i
per il DOS:
Windows 3.1
Interfacce grafiche: Windows 95

Windows
Wi d
95
Interfacce grafiche: Windows XP

Windows
Wi d
XP
Interfacce grafiche: metafore
L’uso – e l’implementazione - di una metafora
pone di fronte,
f t ti tipicamente,
i t a ttre problemi:
bl i

• nel dominio “virtuale” sono possibili azioni


i
impraticabili
i bili in
i quello
ll reale;
l
• nel dominio reale sono possibili azioni impraticabili
in quello virtuale;
• alcune azioni sono presenti in entrambi i domini,
ma funzionano in maniera diversa.
Interfacce grafiche: il desktop
Si tratta di un’interfaccia a manipolazione
di tt esistono
diretta: i t d
degli
li oggetti
tti discreti
di ti suii
quali l’utente può compiere delle azioni
(spostarli, trascinarli, gettarli nel cestino..).

La metafora
L t f associa
i questi
ti oggetti
tti aii lloro
corrispettivi
p nel mondo reale;; l’utente ha g già
un’idea di quali azioni è possibile compiere.
Interfacce grafiche: manipolazione

Il p
problema delle interfacce a
manipolazione diretta è che l’utente deve
manipolare direttamente ogni oggetto…
oggetto
• per compiti ripetitivi,
ripetitivi è frustrante;
• per compiti complessi, a volte non tutti i
passaggi sono noti.
Elementi grafici
Le interfacce attuali, basate sulla metafora
d ll scrivania,
della i i sono di titipo WIMP
WIMP.
Gli elementi che le compongono vengono
detti widget
widget.
Una “widget” è un elemento che fornisce
i f
informazioni
i i all’utente
ll’ t t o glili permette
tt di
interagire
g con il sistema operativo
p o con
un’applicazione.
Interfacce grafiche
Esempi di widget sono le icone, i menu, i
pulsanti,
l ti le
l finestre,
fi t l b
le barre di scorrimento,
i t
le caselle di testo…
Solitamente è il sistema operativo a mettere a
disposizione un insieme di widget.
IIn ambiente
bi t U Unix
i è possibile
ibil usare iinsiemi
i i di
widget
g diversi.
Interfacce grafiche

Macintosh

Maximize
Minimize Close
Windows

Linux (KDE)

Potrebbero piacerti anche