Software: di sistema e applicativo
Di sistema: controlla il comportamento del sistema stesso
il più importante dei software di sistema è il sistema operativo:
controlla le risorse del sistema
fornisce la base su cui costruire tutti gli altri programmi
Applicativo: risolve i problemi dell’utente, appoggiandosi
sullo strato fornito dal sistema operativo
Alessandro Di Nuovo
1
1
Il sistema operativo
Con il termine sistema operativo si intende
l’insieme di programmi e librerie che opera
direttamente sulla macchina fisica...
... mascherandone le caratteristiche specifiche...
... e fornendo agli utenti un insieme di funzionalità
di alto livello
Il sistema opera-vo fornisce all'utente vari strumen-, quale un ambiente per l'esecuzione di altri programmi e una visione astra:a del hardware. Alessandro Di Nuovo
2
2
Funzione del sistema operativo
Rendere u-lizzabili le risorse fisiche presen- nel sistema informa-co infrastru:ura so@ware, che si pone come interfaccia per l’infrastru:ura hardware e serve a facilitarne l’u-lizzo e la ges-one Il sistema opera-vo è un insieme di moduli so@ware che virtualizzano le cara:eris-che dell’hardware so:ostante, rendendolo accessibile come una macchina astra:a, più semplice da u-lizzare di quella fisicamente disponibile. Alessandro Di Nuovo
3
SO: funzionalità
GESTORE DELLE RISORSE, controlla tu:e le risorse del calcolatore e le ges-sce in modo efficiente: -ene traccia di chi u-lizza la risorse acce:a e soddisfa le richieste di u-lizzo di una risorsa fa da mediatore fra le risorse che risultano in confli:o. MACCHINA ESTESA: cos-tuisce la base su cui è possibile scrivere i programmi applica-vi. presenta all’utente una macchina estesa più facile da programmare dell’HW so:ostante. Alessandro Di Nuovo
4
Sistemi Operativi
•  MS-DOS
•  MS-Windows (95, 98, 2000, XP, Vista,
Seven)
•  Unix
•  Commerciali: Sun Solaris, IBM AIX, HP-UX,…
•  Linux
•  BSD
•  Apple
•  Mac OS X
•  iOS
•  Altri (IBM AS/400, Symbian, Android…)
Alessandro Di Nuovo
5
5
Architettura di un S.O. - 1
•  Un moderno S.O. è organizzato secondo una architettura
“a strati” (a cipolla)
•  Ogni strato implementa una macchina virtuale più potente
del precedente
•  Appoggiandosi alle funzionalità offerte dallo strato precedente
•  Tale approccio permette una chiara separazione tra
interfaccia e implementazione delle diverse funzionalità
•  Ogni strato è costituito da un insieme di programmi e
librerie
•  I meccanismi di chiamate tra livelli possono essere diversi
•  chiamate a sottoprogrammi, interruzioni sincrone o asincrone, invio di
messaggi a processi
Alessandro Di Nuovo
6
6
Architettura di un S.O. - 2
Programmi utente
Interfacce utente
Interprete dei
comandi
Interfaccia
grafica
Gestore del file system
Gestori di risorse
(kernel/nucleo)
Gestore delle periferiche
Gestore della memoria
Gestore dei processi (nucleo)
Macchina fisica
Alessandro Di Nuovo
7
7
Il Nucleo
•  Il nucleo
•  Si appoggia direttamente sulla macchina fisica
•  Effettua la gestione dei processi
•  In un sistema multitasking realizza una
macchina virtuale in cui ad ogni processo è
assegnata un processore virtuale
•  Comprende i principali programmi di risposta
ad interruzione
•  Realizza le primitive di sincronizzazione e
scambio messaggi tra processi
Alessandro Di Nuovo
8
8
Il nucleo
La macchina virtuale realizzata dal nucleo
Processore
virtuale
Processore
virtuale
...
Processore
virtuale
Bus di sistema
Disco
Memoria
centrale
Alessandro Di Nuovo
Interfaccia
delle
periferiche
9
9
Il gestore della memoria
•  Il gestore della memoria
•  Realizza le funzionalità di allocazione della
memoria
•  Supera i limiti della memoria fisica e mostra ai
processi uno spazio di memoria virtuale
•  Partiziona la memoria tra i vari processi che la
richiedono
•  Garantendo la protezione delle diverse zone di
memoria
Alessandro Di Nuovo
10
10
Il gestore della memoria
La macchina virtuale realizzata dal
gestore della memoria
Memoria
virtuale
Memoria
virtuale
...
Memoria
virtuale
Processore
virtuale
Processore
virtuale
...
Processore
virtuale
Bus di sistema
Interfaccia
delle
periferiche
Disco
Alessandro Di Nuovo
11
11
Il gestore delle periferiche
Il gestore delle periferiche
Maschera le caratteristiche fisiche delle
periferiche
Fornisce agli strati superiori un insieme di
procedure di alto livello per l’accesso alle
diverse periferiche
Offre ad ogni processo la visibilità di un insieme di
periferiche virtuali dedicate
Gestisce, almeno in parte, i malfunzionamenti
delle periferiche
Cultura tecnologica del progetto
Alessandro Di Nuovo
12
12
Il gestore delle periferiche
La macchina virtuale realizzata dal
gestore delle periferiche
Memoria
virtuale
Interfaccia
periferiche
virtuali
Memoria
virtuale
...
Bus
Interfaccia
periferiche
virtuali
Bus
Processore
virtuale
Processore
virtuale
Bus di sistema
Disco
Alessandro Di Nuovo
13
13
Il gestore del file system
Il gestore del file system
E’ responsabile della gestione delle periferiche di
massa
Hard disk
CD / DVD
Memory stick USB
...
Fornisce agli strati superiori un insieme di
procedure per l’accesso al file system
Garantisce la protezione nell’accesso ai file
Alessandro Di Nuovo
14
14
Il gestore del file system
•  Le funzioni di base che sono supportate da
un file system sono
Il recupero di dati precedentemente memorizzati
L’eliminazione di dati obsoleti
La modifica/aggiornamento di dati preesistenti
La copia di dati
Tra supporti di memorizzazione diversi (ad es. da HD a
CD)
In cartelle diverse nello stesso supporto
Alessandro Di Nuovo
15
15
Il gestore del file system
I dati contenuti nella memoria di massa
vengono strutturati e gestiti mediante una
organizzazione in file
Un file è un contenitore logico identificato da
un nome (filename)
I filename generalmente sono composti da
due parti
ad es. informatica.pdf
Il filename vero e proprio (informatica)
L’estensione (pdf)
Alessandro Di Nuovo
16
16
Il gestore del file system
L’estensione è spesso associata al programma che ha
generato il file e individua pertanto la tipologia del
contenuto del file
.exe à file eseguibili
.txt à file di testo
.doc à documenti di testo (MS Word)
.wav à file audio
.bmp à immagine in formato bitmap
...
Ad ogni file sono poi associati dal sistema operativo altri dati
Data di creazione / modifica
Lunghezza del file (in byte)
Utenti/Gruppi che possono accedere ai file
Alessandro Di Nuovo
17
17
Il gestore del file system
I file vengono suddivisi in più contenitori logici, chiamati directory,
cataloghi o cartelle (folders)
Le cartelle sono organizzate secondo una struttura ad albero
Il file system contiene una directory detta radice dell’albero che può
contenere file o altre cartelle
Ciascun file è individuato univocamente dal suo nome completo o
percorso assoluto
Ad es. D:\downloads\temp\002.part
Due file con lo stesso nome in due cartelle distinte, ad esempio
D:\Immagini\Compleanno\foto1.jpg
D:\Documenti\foto1.jpg
fanno riferimento a due file che in generale possono essere DIVERSI
Alessandro Di Nuovo
18
18
Il gestore del file system
D:
Documenti
Downloads
Incoming
Temp
...
...
Alessandro Di Nuovo
19
19
Nozioni di base
File System
Alessandro Di Nuovo
20
Organizzazione fisica dei dati
Come mantenere la corrispondenza tra il nome del file e i blocchi su disco che ne contengono i da-: lista concatenata (e.g. Windows 95/98) a par-re dal primo elemento, in coda a ogni blocco di da- viene riportato l’indirizzo del successivo), la lista può essere memorizzata in una par-colare area del disco: File Alloca-on Table, FAT l’indirizzo del primo blocco dei da- si trova nel descri:ore di file per arrivare a conoscere l’effe]vo indirizzo su disco di un dato è necessario analizzare, qualora il file sia composto da N blocchi, un numero di blocchi proporzionale a N. i‑node (e.g. UNIX) se il file è piccolo, l’i-­‐node con-ene l’indicazione dei blocchi di da-, se il file è grande, l’i-­‐node iden-ficare un insieme di altri i‑node, che a loro volta specificano blocchi di da-; se il file è molto grande si ripete il procedimento con un livello ulteriore di indirezione; … per arrivare a conoscere l’effe]vo indirizzo su disco di un dato è necessario analizzare, qualora il file sia composto da N blocchi, un numero di i‑node proporzionale a log(N). Alessandro Di Nuovo
21
Il controllo degli accessi
Iden-ficazione degli accessi al sistema. Associare a ogni utente un account (login) e una parola d’ordine (password). All’interno del sistema opera-vo, in un apposito file, è contenuta la lista di tu] gli account e delle rela-ve password: solo se viene specificato un account fra quelli previs- (utente abilitato) e la password corrisponde a quella memorizzata (cer-ficazione di iden-tà) viene consen-to l’accesso al sistema. Questo consente di personalizzare il sistema, per esempio definendo: la distribuzione dei cos- di ges-one fra i vari uten-; la visibilità del sistema in termini di porzione del file system complessivo, periferiche e programmi applica-vi disponibili; la personalizzazione dell’ambiente opera-vo. Consente di controllare gli accessi ai file: livello di protezione a livello di file o di directory; es. UNIX: tre -pi di uten-: il proprietario, il gruppo e il “resto del mondo”. tre abilitazioni: le:ura (R), scri:ura (W) ed esecuzione (X). altro metodo: Access Control List nel SO esiste una tabella in cui ogni riga corrisponde a una diversa risorsa del sistema (programmi, stampan-, directory...), la riga con-ene una lista che specifica tu] gli uten- abilita- all’uso della corrispondente risorsa e le modalità per la sua fruizione (per esempio a un utente potrebbe essere consen-to solo leggere ma non scrivere in una directory, oppure proibito l’uso di alcune stampan- collegate in rete). Alessandro Di Nuovo
22
Il gestore del file system
La macchina virtuale realizzata dal gestore
del file system
Memoria
virtuale
Interfaccia
periferiche
virtuali
Memoria
virtuale
File ... File
...
Bus
Interfaccia
periferiche
virtuali
File
... File
23
23
Bus
Processore
virtuale
Processore
virtuale
Bus di sistema
Alessandro Di Nuovo
Modulo del SO direttamente accessibile
dall’utente
Ha la funzione di interpretare i comandi che gli
giungono (da tastiera e/o point&click) e di
attivare i programmi corrispondenti.
Le operazioni che svolge sono:
lettura dalla memoria di massa del programma
da eseguire (tramite il gestore dei file);
allocazione della memoria centrale (tramite il
gestore della memoria);
caricamento del programma e dei relativi dati
nella memoria allocata (tramite il gestore della
memoria);
creazione e attivazione del processo
corrispondente (tramite il nucleo).
17/12/13 Alessandro Di Nuovo
Informa-ca e cultura dell’informazione – capitolo 3 – Il sistema opera-vo 24
24 Il gestore delle interfacce - Shell
Interfaccia
grafica
(point & click)
Interfaccia a
caratteri
Alessandro Di Nuovo
25
L’interprete dei comandi e l’interfaccia grafica
L’interprete comandi e l’interfaccia grafica
Costituiscono l’interfaccia verso l’utente
Consentono l’interazione dell’utente con il s.o. e
con i programmi applicativi in esecuzione
Permettono di accedere ai programmi
conservati su memoria di massa e mandarli
in esecuzione
allocando la memoria necessaria e creando il
processo relativo
Nel caso di un sistema multiutente forniscono ai
diversi utenti la visione di una macchina virtuale
dedicata
Cultura tecnologica del progetto
Alessandro Di Nuovo
26
26
Una possibile classificazione dei moderni S.O.
•  I moderni sistemi operativi possono essere
classificati in:
• 
Sistemi monotask:
•  Permettono l’esecuzione di un solo programma utente per
volta (es. DOS)
•  Il computer a disposizione del programma dall’inizio alla fine
della sua esecuzione
•  Coda dei job, gestita FIFO (first in, first out) e/o con priorità
• 
Sistemi multitask
•  Permettono l’esecuzione di più programmi utente
contemporaneamente
•  Classificazione ulteriore:
• 
• 
Multitasking cooperativo (Windows 3.1, MacOS)
Multitasking preemptive (Windows 95/98/NT, Unix)
•  Time sharing o meno
Alessandro Di Nuovo
27
27
elaborazione
attesa per operazioni di I/O
Sistema uniprogrammato
Tempo
Progr. 1
Sistema
multiprogramma
to
con time sharing
Progr. 2
Progr. 3
Tempo
elaborazione
17/12/13 Alessandro Di Nuovo
Informa-ca e cultura dell’informazione – capitolo 3 – Il sistema opera-vo attesa per operazioni di I/O
28
28 Svantaggi dei sistemi monoprocessore mono-tasking
Nessuna interazione utente-programma
Lentezza: la CPU non può essere usata da nessun
processo mentre il programma in esecuzione svolge
operazioni di I/O (molto piu’ lente di letture/scritture in
Memoria)
Esempio: DOS è un SO monotasking; non si può fare
niente altro mentre si formatta un floppy o si
memorizzano dati su disco
Alessandro Di Nuovo
29
29
Miglior sfruttamento del processore
In un sistema uniprocessore è possibile
commutare da un programma all’altro quando
il programma in esecuzione è in attesa di
operazioni di ingresso/uscita
Presenza in memoria di diversi programmi
consente commutazione più efficiente
tempo di accesso alla memoria centrale molto
inferiore rispetto alla memoria di massa
Possibilità di gestione di più utenti senza
degrado eccessivo delle prestazioni
17/12/13 Alessandro Di Nuovo
Informa-ca e cultura dell’informazione – capitolo 3 – Il sistema opera-vo 30
30 Multitasking (time sharing)
Ripartizione del tempo di CPU tra tutti i processi che la vogliono
Ogni job rimane in esecuzione solo per un quanto di tempo, poi
l’esecuzione passa al prossimo job e il primo va in attesa à
Esecuzione globale più veloce
Durata del quanto di tempo tra 100 e 200 millisecondi à
granularità molto fine
A ciascun utente sembra di avere la CPU tutta per lui, solo più
lenta
Cultura tecnologica del progetto
Alessandro Di Nuovo
31
31
Stati di un processo
Inizio
esecuzio
ne
Selezione primo processo
pronto e sua esecuzione
Processo
in esecuzione
Processi
pronti
Termine quanto di tempo
Richiesta di operazione di I/
O
Processo
Completamento operazione in attesa
di I/O (evento esterno atteso)
Alessandro Di Nuovo
32
32
Attesa
Se il processo richiede operazioni ad altri dispositivi (es.
Operazioni di I/O), la CPU rimarrebbe inutilizzata è
lo scheduler mette il processo in stato di attesa,
il dispatcher sceglie un nuovo processo tra i pronti dalla tabella,
quando l’operazione sarà finita, lo scheduler dichiarerà di nuovo
pronto il processo
Permette un utilizzo molto più efficiente delle risorse di
elaborazione
Esempio:
durante la digitazione di un documento di testo, l’utente compie
molte pause per riflettere sul contenuto che sta scrivendo
questo tempo è usato dal sistema per compiere altre operazioni
in contemporanea (ad es. gestire la ricezione di e-mail)
Alessandro Di Nuovo
33
33
Spesso la memoria centrale non ha dimensioni
tali da contenere tutti i programmi che
occorre eseguire in modo concorrente:
l 
l 
manca spazio per attivare nuovi processi
manca spazio per consentire l’evoluzione di
qualche processo già in esecuzione
Soluzione: trasferire il contenuto di un’area
della memoria centrale in un’area della
memoria di massa (area di swap)
l 
l 
17/12/13 OK per processi in attesa
~ OK per i processi pronti
Alessandro Di Nuovo
Informa-ca e cultura dell’informazione – capitolo 3 – Il sistema opera-vo 34
34 Il processo non si rende conto delle interruzioni:
il nucleo maschera al processo come effettivamente la sua elaborazione evolve nel tempo;
il nucleo rende trasparente la presenza delle operazioni di interruzione e di riassegnamento del
processore a un processo.
Contesto di un processo
insieme dei dati che rappresentano lo “stato” del processo: situazione della memoria, contenuto
dei registri, livello di priorità, …
quando un processo viene interrotto (esce dallo stato di esecuzione) il nucleo provvede a
salvare del suo contesto (in una struttura dati chiamata descrittore del processo);
quando un processo torna nello stato di esecuzione il nucleo provvede a ripristinare il suo
contesto (recuperando i dati precedentemente salvati nel descrittore).
Cambio di contesto (context swapping)
si verifica quando un processo (e.g. P1) in esecuzione viene sostituito da un altro processo P2
(il primo del processi pronti);
il nucleo provvede a
•  salvare il contesto di P1 e gestirne l’evoluzione (pronto vs attesa);
•  ripristinare il contesto di P2 per consentirgli una corretta evoluzione.
17/12/13 Alessandro Di Nuovo
Informa-ca e cultura dell’informazione – capitolo 3 – Il sistema opera-vo 35
35 Vantaggi dell’esecuzione concorrente di più processi:
impiegare in maniera trasparente una o più CPU (sia inserite in un solo calcolatore che in più
calcolatori, collegati in rete);
aumentare l’utilizzo della CPU nei sistemi a partizione di tempo, ove si eseguono più lavori in
quasi parallelismo;
condividere la stessa risorsa fisica fra diversi utenti in modo del tutto trasparente ma controllato;
accedere contemporaneamente, da parte di diversi utenti, a una base di dati comune e
centralizzata;
…
Problemi
starvation: un processo non riesce ad accedere ad una risorsa perché la trova sempre occupata
da altri processi (che per esempio possono avere un livello di priorità maggiore);
blocco critico: un insieme di processi rimane bloccato perché ciascuno di essi aspetta delle
risorse che sono occupate da un altro processo compreso in questo stesso insieme (vincolo
circolare).
Evitare (prevenzione) o risolvere (eliminazione) situazioni di blocco critico o di starvation riduce
le prestazioni complessive del sistema.
17/12/13 Alessandro Di Nuovo
Informa-ca e cultura dell’informazione – capitolo 3 – Il sistema opera-vo 36
36 Introduzione al Deadlock
Definizione:
Un insieme di processi è in stallo se ogni processo
dell’insieme è in attesa di un evento che solo un
altro processo dell’insieme può causare
Normalmente l’evento è l’accesso ad una risorsa
occupata
Nessun processo può
Andare in esecuzione
Rilasciare la risorsa
Essere sbloccato
Alessandro Di Nuovo
37
37
Condizioni per il Deadlock
•  Condizione di mutua esclusione
Ogni risorsa è assegnata ad un processo o è disponibile
•  Condizione di “Hold and wait”
I processi che detengono risorse possono chiederne altre
•  Condizione di assenza di prerilascio
Le risorse assegnate non possono essere tolte forzatamente ad
un processo
•  Condizione di attesa circolare
Deve esistere una catena circolare di due o più processi ognuno
dei quali è in attesa di una risorsa occupata dal prossimo processo
della catena
Alessandro Di Nuovo
38
38
Algoritmo dello struzzo
•  Fare finta che il problema non esiste
•  È ragionevole se
•  Il deadlock è un evento raro
•  Il costo della sua prevenzione è alto
•  UNIX e Windows hanno tale approccio
•  La valutazione da fare è rispetto a
•  convenienza
•  correttezza
Alessandro Di Nuovo
39
39
Sistemi mono e multiprocessore
Time sharing in sistemi mono-processore:
multi-tasking (più programmi in
esecuzione con una sola CPU)
Sistemi multiprocessore:
le varie CPU possono lavorare
contemporaneamente su job diversi
ciascuna CPU opera in multi-tasking
Alessandro Di Nuovo
40
40
Bootstrap: avvio del SO
All’inizio, la CPU ha in indirizzo fissato nel registro contatore di
programma, che punta all’indirizzo nella ROM (Read Only Memory)
ove inizia il programma di bootstrap che è sempre memorizzato lì
L’esecuzione del programma di bootsrap trasferisce il kernel del Sistema
Operativo da una parte prestabilita della memoria di massa (hard-disk,
floppy-disk, CD-Rom,…) in memoria principale
Quindi l’esecuzione prosegue con un salto all’area di memoria principale
contenente il Sistema Operativo (che quindi viene mandato in
esecuzione)
Tra le prime operazione del kernel del Sistema Operativo vi sono
tipicamente quelle di caricamento di altri componenti software:
driver delle periferiche installate
programmi di sistema lanciati automaticamente all’avvio
Alessandro Di Nuovo
41
41
Bootstrap
Alessandro Di Nuovo
42
42
MS-DOS
Sviluppato dalla Microsoft nel 1981 per il PC
IBM
Adottato da altri con PC IBM-compatibili
Molto limitato:
mono-utente,
mono-tasking
Circa 50 comandi per il SO:
DIR per vedere il contenuto di una directory
COPY per copiare file
DEL per cancellare un file
REN per cambiare il nome a un file
CD per muoversi in un altra directory
MD per creare nuove directory
RD per cancellare directory
Nome file: per eseguire il file (se eseguibile)
…
Cultura tecnologica del progetto
Alessandro Di Nuovo
43
43
MS Windows – Elementi principali
Interfaccia grafica
Mouse che sposta un
cursore
Cut & paste (copia e
incolla)
Drag & drop (trascina e
lascia)
Icone associate a file,
directory, dischi, …
Directory come cartelle
Pulsanti
Finestre: cornici con
strumenti
Menu di comandi
Alessandro Di Nuovo
44
44
Breve storia di windows 1/2
Nel 1980 la Microsoft era una piccola società con 40 dipendenti, che fatturava 8 milioni di
dollari.
Bill Gates venne contattato dall'IBM, che in quel periodo dominava il mercato degli
elaboratori mainframe ed aveva appena iniziato la realizzazione di un personal
computer, per scrivere un nuovo sistema operativo.
Nasce così l'MS DOS ed esplode il boom del computer per tutti.
Due anni dopo Bill Gates annuncia la nascita di una prima versione di Windows (1982).
Non è un sistema operativo, ma una semplice interfaccia grafica attaccata al DOS
molto rozza. Gli utenti cominciano a prendere confidenza con questa nuova
dimensione.
A maggio, nel 1990, viene lanciato Windows 3.0 e un anno dopo esce Windows 3.1.
Nel '94 il fatturato è di 4,65 miliardi di dollari.
Nel '95 viene lanciato Windows 95 e i dollari salgono a quasi 6 miliardi. Internet Explorer
comincia ad insidiare la posizione di leader tra i browser di Netscape.
Infine nel '98 esce la nuova versione di Windows (Windows 98) e nel frattempo la
crescita del sistema operativo di rete, Windows NT, si consolida fino a creare serie
minacce a ben più blasonati sistemi.
Cultura tecnologica del progetto
Alessandro Di Nuovo
45
45
Breve storia di windows 2/2
Il successore di windows NT è Windows 2000. Windows 2000 compare in due
versioni: la Professional e la Server. La prima è la soluzione ideale per
applicazioni desktop mentre la seconda per la gestione e l’amministrazioni
di reti, domini, ecc.
Con il nuovo millennio si registra l’uscita del nuovo Windows Millennium
Edition (ME), praticamente un Windows 98 SE rivisto nella grafica,
potenziato a livello di funzioni multimediali e nel quale fa la sua definitiva
scomparsa il buon vecchio DOS.
Alla fine del 2002 viene presentato Windows XP nelle versioni Home,
Professional e Server. La prima prenderà il posto di Windows ME mentre le
altre due sostituiranno le analoghe versioni di Windows 2000.
Windows XP presenta un’interfaccia completamente ridisegnata, un ottimo
supporto alle periferiche attualmente sul mercato e una grande supporto ai
prodotti multimediali non ultimi i videogame grazie all’integrazione diretta
delle DirectX.
Windows XP è presente sul mercato anche nella versione a 64 bit per
processori Alpha.
Nel 2006 è stata rilasciato Windows Vista. Tra le principali novità: pieno
supporto dei processori a 64 bit (funziona però anche a 32 bit); nuovo
motore per l’interfaccia grafica; funzionalità avanzate di ricerca dei
documenti archiviati; maggiore protezione rispetto agli attacchi informatici.
Cultura tecnologica del progetto
Alessandro Di Nuovo
46
46
Unix
Sistema Operativo:
multi-utente,
multi-tasking, con time-sharing
Nato negli anni ’60 con un progetto
congiunto AT&T e MIT
Concepito per poter funzionare su diverse
piattaforme hardware con adattamenti
limitati
Interprete dei comandi: shell
testuale
più di 300 comandi, con opzioni
Disponibilità di interfaccia grafica (finestre,
mouse, etc.) messa a disposizione da un
insieme di moduli separati (sistema X
Window)
Cultura tecnologica del progetto
Alessandro Di Nuovo
47
47
Linux
Linux è una delle molte varianti di Unix con la peculiarità di essere
open source (= il cui codice sorgente è liberamente disponibile)
La sua nascita è dovuta in parte alle restrizioni imposte da AT&T
all’uso di del codice sorgente di UNIX per la didattica:
hanno indotto Andy Tanenbaum allo sviluppo di MINIX, un
implementazione di UNIX per scopi didattici
MINIX ha ispirato Linus Torvalds a realizzare una propria
implementazione del kernel UNIX
Il kernel sviluppato da Linus è stato combinato con una suite di
programmi UNIX, sviluppati nell’ambito del progetto GNU
(iniziativa che ha originato il movimento open source), per formare
la prima distribuzione di Linux e renderla disponibile su Internet
come software open source
Oggi esistono innumerevoli distribuzioni di Linux, distinte per
diverse combinazioni di kernel, interfacce grafiche (le più note
sono Gnome e KDE) e programmi di utilità.
Alessandro Di Nuovo
48
48
Linux
Gnome
à
ß KDE
Alessandro Di Nuovo
49
49
BSD
BSD è un’altra versione open source del sistema
operativo Unix, in questo caso nata alla
University of California, Berkeley (USA)
Ritenuto più stabile di Linux (anche grazie ad un
gruppo di sviluppo più ristretto, quindi più
controllabile) ma il numero di applicazioni
disponibili è più ristretto (principalmente
applicazioni per i server)
Oggi esistono 4 distribuzioni principali di BSD:
3 distribuzioni free: FreeBSD, OpenBSD, NetBSD
1 distribuzione a pagamento, all’interno del Sistema
Operativo Apple MAC OS-X
50 50
Alessandro Di Nuovo
MAC OS-X
Architettura MAC OS-X
Applicazioni
•  MAC OS-X è l’ultima
generazione di S.O. per i
personal computer prodotti
da Apple
•  Abbandonato il precedente
sistema operativo Apple ha
costruito la nuova
generazione del proprio
S.O. a partire da una
variante di BSD, chiamata
Darwin, che rimane open
source
•  A questo nucleo, Apple ha
aggiunto componenti
proprietari, dall’interfaccia
grafica (Aqua) ad una suite
di applicazioni e utilities.
GUI à
Kernel,
gestori di
risorse e
servizi di
base
Alessandro Di Nuovo
51
51