UNIX Introduzione a UNIX Un po` di storia …

Sperimentazioni di SO
UNIX
Cristina Baroglio
[email protected]
Mercoledì 14:00-16:00
1.
2.
3.
4.
5.
6.
Introduzione
Utenti
Processi
System call (fork - IPC)
Shell e file system
Comandi principali
Introduzione a UNIX
Un po’ di storia …
1969: Unics
1971: Unix v1
1979: Unix v7
1987: minix
1991:Linux
1975: Unix v6
1977: PWB
1979: Xenix
1983: System V
1993: Solaris
1978: BSD
1993:
freeBSD
netBSD
openBSD
1
Per chi arriva da Windows
Windows:
Centralità della grafica
Vantaggi:
1. Intuitività delle operazioni + comuni
2. Conseguente ampia diffusione (uffici,
uso domestico, …)
Limiti:
1. Come adattare il sistema alle mie
esigenze?
2. Cosa c’è sotto alla grafica?
Approccio testuale
L’ idea è di interagire con il sistema “parlandogli”
(impartendo ordini) tramite un apposito linguaggio
Hello?!?
Svantaggi:
Bisogna imparare il linguaggio
Vantaggi:
Enorme flessibilità del sistema
Struttura dei comandi
anticipazione
prompt> comando [opzioni] [arg1 arg2 … argN] ↵
prompt> ls *.gif
Lista i file con estensione “gif” della
directory corrente
prompt> mv img11.jpg foto/ritratto.jpg
Cambia il nome del file img11.jpg in ritratto.jpg
e inseriscilo nella directory foto
2
UNIX
Sistema operativo
1. Multiutente
2. Multitask, CPU scheduling
= coda a priorità
3. File system = albero
multilivello, utenti in
4.
5.
grado di costruire le proprie
sottodirectory
Scelte dettate da un
principio di semplicità:
costruire un kernel semplice
+ librerie su cui fosse
possibile realizzare dei SO
ad hoc o più sofisticati
Portabile, Scritto in C
Occorre riconoscre gli
utenti e proteggere gli
uni dagli altri
Il sistema gestisce molti
processi che lavorano in
parallelo
6. Uso di un formato unico
per i file (byte stream)
7. Interfaccia unica per
gestione di file e device
periferici
8. Possibilità di estendere
l’interfaccia utente
Sistema strutturato vs.
monolitico
Unix = kernel + componenti caricate quando servono
Unica parte necessaria
(gestisce le funzioni principali,
es. scheduling dei processi,
gestione memoria, I/O)
Piccolo (<15000 linee di codice)
Scritto in C
Gestiscono funzioni non vitali
(es. interfaccia grafica, mail, rete)
Possono essere attivate,
disattivate, sostituite, aggiunte
senza inficiare il funzionamento del
sistema
Per chi vuole dare un’ occhiata
ai file …
/usr/src/linux
kernel
mm
fs
init
[ LINUX ]
3
Struttura a livelli
KERNEL INTERF. TO HW
HW
SYSTEM CALL INTERFACE
A
1
B
2
C
3
Shell,
interpreti,
I
N
compilatori.
T
librerie
di sistema
E
R
F
A
C
C
I
A
utente
utente
KERNEL
kernel
1
1. Segnali, gestione dell’I/O, terminali
2. File system, swap di memoria, driver dei
dischi
2
3. Gestione dei processi, CPU scheduling,
memoria virtuale
3
KERNEL
Basso livello
A. Controller dei terminali
B. Controller dei device
A
B
C. Controller della memoria fisica
C
4