50
1 Lezione 16 Virtual File System Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2016/2017 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Lezione 16 Virtual File System - Unimore

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lezione 16 Virtual File System - Unimore

1

Lezione 16Virtual File SystemSistemi Operativi (9 CFU), CdL Informatica, A. A. 2016/2017Dipartimento di Scienze Fisiche, Informatiche e MatematicheUniversità di Modena e Reggio Emiliahttp://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Page 2: Lezione 16 Virtual File System - Unimore

2

Quote of the day(Meditate, gente, meditate...)

“In UNIX, everything is a file; if something is not a file, it is a process.”

Ken Thompson (1943-)ProgrammatoreIl padre dei SO UNIX e Plan 9Ideatore dei linguaggi B e Go

Page 3: Lezione 16 Virtual File System - Unimore

3

SOLUZIONI DEGLI ESERCIZI

Page 4: Lezione 16 Virtual File System - Unimore

4

Esercizi (5 min.)1. A quale file speciale corrisponde il dispositivo

“memoria della console virtuale”? Quali credenziali servono per accedervi direttamente? Che cosa si può ottenere con l’accesso a tale dispositivo?

Page 5: Lezione 16 Virtual File System - Unimore

5

Soluzioni1. La sezione 4 del manuale contiene informazioni

sui file speciali dei dispositivi. Si provi a cercare l’espressione regolare seguente: “.*virtual.*console.*memory.*”

Si dovrebbe ottenere la pagina di manule dei file speciali /dev/vcs e /dev/vcsa. Tramite questi file speciali è possibile accedere ai buffer di memoria dei terminali ttyX (x=0, …, 63).

Page 6: Lezione 16 Virtual File System - Unimore

6

SoluzioniSi supponga, ad esempio, di voler leggere il buffer del terminale tty3, accessibile tramite la sequenza di tasti CTRL-ALT-F3.

Per chi usa VirtualBox: CtrlDestro-F3.

Il dispositivo che contiene il buffer di memoria di tty3 è /dev/vcs3. Si provi a leggerlo.

Esisterebbe anche /dev/vcsa3, che contiene altreinformazioni sui caratteri (posizione, colore, …).Per il momento ci si può concentrare su /dev/vcs3.

Page 7: Lezione 16 Virtual File System - Unimore

7

SoluzioniSi visualizzino i permessi del file /dev/vcs3:

ls -l /dev/vcs3

Per poter leggere il contenuto di /dev/vcs3, occorre essere root oppure far parte del gruppo tty.

Si diventi root in uno dei tanti modi possibili, ad esempio:

sudo -i

Page 8: Lezione 16 Virtual File System - Unimore

8

SoluzioniSi visualizzi il contenuto di /dev/vcs3:

cat /dev/vcs3

Si ottiene il contenuto attuale del terminale tty3.

Page 9: Lezione 16 Virtual File System - Unimore

9

SoluzioniSi effettui il login su tty3.Si dia un comando (ad esempio, ls).Si ritorni sul terminale grafico.

Si ottiene il contenuto attuale del terminale tty3.

Page 10: Lezione 16 Virtual File System - Unimore

10

SoluzioniÈ possibile eseguire periodicamente (ad esempio, ogni secondo) il comando precedente. Si usa il comando watch -n 1:

watch -n 1 cat /dev/vcs3

Page 11: Lezione 16 Virtual File System - Unimore

11

Esercizi (2 min.)2. Usando mount è possibile visualizzare tutti i

file system montati? Se sì, come?

Page 12: Lezione 16 Virtual File System - Unimore

12

Soluzioni2. La pagina di manuale di mount (sezione “The

listing.”) spiega come visualizzare tutti i file system montati. È sufficiente eseguire mount senza argomenti.mount

Si ottiene un elenco di righe.Una riga un record descrivente un file system.→Un record un insieme di campi separati da spazi.→

Page 13: Lezione 16 Virtual File System - Unimore

13

SoluzioniIl formato di un record è il seguente.filespec on mntp type fstype (opt,opt,…)

Filespec: file speciale (per dispositivi veri) o tipo di file system (per dispositivi virtuali).Mntp: il mount point.Fstype: il tipo di file system.Opt: opzione di mount.

Page 14: Lezione 16 Virtual File System - Unimore

14

SoluzioniAd esempio, il file system di root presenta il record seguente:/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)

/dev/sda1: il dispositivo fisico su cui il file system è ospitato.

Page 15: Lezione 16 Virtual File System - Unimore

15

SoluzioniAd esempio, il file system di root presenta il record seguente:/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)

/: il mount point.

Page 16: Lezione 16 Virtual File System - Unimore

16

SoluzioniAd esempio, il file system di root presenta il record seguente:/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)

ext4: il tipo di file system (EXT4).

Page 17: Lezione 16 Virtual File System - Unimore

17

SoluzioniAd esempio, il file system di root presenta il record seguente:/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)

rw: file system leggibile e scrivibile.

Page 18: Lezione 16 Virtual File System - Unimore

18

SoluzioniAd esempio, il file system di root presenta il record seguente:/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)

relatime: aggiorna l’atime solo se il precedente era più piccolo dell’mtime o ctime correnti.Ovvero, aggiorna l’atime solo se il file non è stato acceduto dopo l’ultima modifica.

Page 19: Lezione 16 Virtual File System - Unimore

19

SoluzioniAd esempio, il file system di root presenta il record seguente:/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)

errors=remount-ro: in caso di errore fisico, rimonta il file system in sola lettura.

Page 20: Lezione 16 Virtual File System - Unimore

20

SoluzioniAd esempio, il file system di root presenta il record seguente:/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)

data=ordered: si usa un file di log (journal) per il registro delle scritture.Si scrivono direttamente su disco i dati del file.Si scrivono nel journal le modifiche ai metadati (e successivamente si scrivono su disco).In caso di crash, il journal preserva i metadati del file.

Page 21: Lezione 16 Virtual File System - Unimore

21

Esercizi (2 min.)3. Si individui una modalità di visualizzazione

contenente il tipo di file system. Si mostrino tutti i file system associati ed i relativi tipi.

Page 22: Lezione 16 Virtual File System - Unimore

22

Soluzioni3. La pagina di manuale di lsblk illustra l’opzione -f per la visualizzazione del tipo di file system.lsblk -f

In Debian GNU/Linux, per motivi di sicurezza l’accesso a tale campo è interdetto agli utenti normali.

Page 23: Lezione 16 Virtual File System - Unimore

23

Esercizi (3 min.)4. Si risolvano i percorsi dei file seguenti:/dev/pts/0$HOME$HOME/.bashrcChe differenze sussistono?

Page 24: Lezione 16 Virtual File System - Unimore

24

Soluzioni4. È richiesta l’immissione dei comandi seguenti:

namei -lx /dev/pts/0namei -lx $HOMEnamei -lx $HOME/.bashrc

Page 25: Lezione 16 Virtual File System - Unimore

25

SoluzioniTre filesystem distinti

File specialea caratteri

(driver seriale)

root può leggere e scrivereI membri del gruppo tty possono scrivere

Il resto del mondo non può fare nulla

Page 26: Lezione 16 Virtual File System - Unimore

26

SoluzioniUn filesystem

Una directory andreoli può leggere, scrivere ed accedereGli altri utenti possono leggere ed accedere

Page 27: Lezione 16 Virtual File System - Unimore

27

SoluzioniUn file system

Un fileregolare

andreoli può leggere e scrivereI membri del gruppo andreoli possono scrivere

Il resto del mondo può leggere

Page 28: Lezione 16 Virtual File System - Unimore

28

Esercizi (2 min.)5. Si visualizzi il numero di collegamenti del file

eseguibile unzip su un SO Debian.

Page 29: Lezione 16 Virtual File System - Unimore

29

Soluzioni5. In quale directory è presente il comando unzip?which unzip

→ unzip è presente nella directory /usr/bin.

Quanti collegamenti fisici ha unzip?ls -l /usr/bin/unzip

I collegamentifisici sono due.

Page 30: Lezione 16 Virtual File System - Unimore

30

Esercizi (2 min.)6. Quali sono i due collegamenti fisici del

programma eseguibile unzip distribuito su Debian GNU/Linux?

Page 31: Lezione 16 Virtual File System - Unimore

31

Soluzioni6. Si ordini la directory /usr/bin per

identificatore di inode:ls -li /usr/bin | sort -nrk 1

Si individui il file unzip.SHIFT-7 unzip INVIO

Page 32: Lezione 16 Virtual File System - Unimore

32

SoluzioniSi individua l’inode relativo al file unzip.Sulla macchina del docente, l’identificatore dell’inode è 950566.

Quale altro file condivide tale inode? → Il file eseguibile

/usr/bin/zipinfo.

Page 33: Lezione 16 Virtual File System - Unimore

33

Esercizi (2 min.)7. Si verifichi la relazione L=2+N per la directory

radice del file system.

Page 34: Lezione 16 Virtual File System - Unimore

34

Soluzioni7. Si visualizzino i metadati della directory /:

ls -ld /

NOTA BENE: l’opzione -d visualizza i metadati della directory / (e non delle sue sotto-directory di primo livello.

I collegamentifisici sono ventidue.

Page 35: Lezione 16 Virtual File System - Unimore

35

SoluzioniDovrebbero essere presenti:

due collegamenti . e ..;venti collegamenti (uno per ogni directory di primolivello).

Per verificare ciò, si visualizzi l’elenco lungo dei file nella directory /.

ls -l /

Page 36: Lezione 16 Virtual File System - Unimore

36

Soluzioni

2

5

15

+

+

=

22

Page 37: Lezione 16 Virtual File System - Unimore

37

Esercizi (1 min.)8. Si crei la directory d. Si crei un collegamento

fisico alla directory d di nome link_d.Si è riusciti nell’intento?

Page 38: Lezione 16 Virtual File System - Unimore

38

Soluzioni8. Per creare una directory d:

mkdir d

Per creare il collegamento fisico a d:ln link_d d

Il comando ln si rifiuta di creare un collegamento fisico ad una directory.

Page 39: Lezione 16 Virtual File System - Unimore

39

Esercizi (2 min.)9. Si monti il file system EXT3 sul secondo disco

rigido. Su tale file system si crei un file vuoto di nome f.txt. Si provi a creare un collegamento fisico dalla propria $HOME a f.txt.

Si è riusciti nell’intento?

Page 40: Lezione 16 Virtual File System - Unimore

40

Soluzioni9. Per montare il file system EXT3 (contenuto nella

partizione /dev/sdb1) sul mount point /mnt:mount /dev/sdb1 /mnt

Per creare il file f.txt:touch /mnt/f.txt

Per creare il collegamento fisico a f.txt dalla home directory:

ln /mnt/f.txt link_f.txt

Page 41: Lezione 16 Virtual File System - Unimore

41

SoluzioniIl comando ln si rifiuta di creare un collegamento fisico ad un file su un altro file system.

Page 42: Lezione 16 Virtual File System - Unimore

42

Esercizi (1 min.)10. Si crei la directory e. Si crei un collegamento

simbolico alla directory d di nome link_e.Si è riusciti nell’intento?

Page 43: Lezione 16 Virtual File System - Unimore

43

Soluzioni10. Per creare una directory e:

mkdir e

Per creare il collegamento simbolico ad e:ln -s link_e e

Il comando ln permette la creazione di un collegamento simbolico ad una directory.

Page 44: Lezione 16 Virtual File System - Unimore

44

Esercizi (2 min.)11. Si monti il file system EXT3 sul secondo disco

rigido. Su tale file system si crei un file vuoto di nome h.txt. Si provi a creare un collegamento fisico dalla propria $HOME a h.txt.

Si è riusciti nell’intento?

Page 45: Lezione 16 Virtual File System - Unimore

45

Soluzioni11. Per montare il file system EXT3 (contenuto

nella partizione /dev/sdb1) sul mount point /mnt:mount /dev/sdb1 /mnt

Per creare il file h.txt:touch /mnt/h.txt

Page 46: Lezione 16 Virtual File System - Unimore

46

SoluzioniPer creare il collegamento simbolico a h.txt dalla home directory:

ln -s /mnt/h.txt link_h.txt

Il comando ln permette la creazione di un collegamento simbolico ad un file su un altro file system.

Page 47: Lezione 16 Virtual File System - Unimore

47

Esercizi (5 min.)12. Si modifichi il monitor in modo tale da

mostrare le sole righe contenenti i campioni.

Page 48: Lezione 16 Virtual File System - Unimore

48

Soluzioni12. Per filtrare le righe contenenti campioni si può

usare il comando grep.Si catturano le righe contenenti sequenze di caratteri numerici (0-9) oppure la virgola (,).L’espressione regolare per catturare stringhe costruite con cifre o virgole è la seguente:

^[0-9,]+$

Inizioriga

Fineriga

Un caratterenumerico ouna virgola

Il blocco precedenteripetuto almeno

una volta

Page 49: Lezione 16 Virtual File System - Unimore

49

SoluzioniSi provi ad estendere il monitor nel modo seguente (tutto su una riga):

mpstat 1 |stdbuf -oL tr -s “ “ |

cut -f 3 -d “ “ |grep -E ‘^[0-9]+$’

Questo comando non funziona. Perché?

Page 50: Lezione 16 Virtual File System - Unimore

50

SoluzioniUna ipotesi è che anche cut e grep siano bufferizzati su STDOUT.Si provi a verificare l’ipotesi impostando, per i suddetti comandi, il buffering orientato alle linee.

mpstat 1 |stdbuf -oL tr -s “ “ |

stdbuf -oL cut -f 3 -d “ “ |stdbuf -oL grep -E ‘^[0-9]+$’

Ora il monitor stampa solo i campioni.