Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system...

59
Interfaccia del File Interfaccia del File System System

Transcript of Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system...

Page 1: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Interfaccia del File SystemInterfaccia del File System

Page 2: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.2

Interfaccia del file systemInterfaccia del file system

Concetto di file

Modalità di accesso

Struttura delle directory

Unix come caso di studio

Montaggio di un file system

Condivisione di file

Protezione

Page 3: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.3

FileFileSpazio di indirizzi logici contigui; è un insieme di informazioni correlate e registrate nella memoria secondaria, a cui è stato assegnato un nomeDal punto di vista dell’utente...

...è la più piccola porzione di memoria secondaria indirizzabile logicamentei dati possono essere scritti nella memoria secondaria soltanto all’interno di un file

Dal punto di vista del SO......i file vengono mappati su dispositivi fisici di memorizzazione non volatili

Tipi: Dati

Numerici, alfanumerici, binariProgrammi

Page 4: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.4

Struttura dei fileStruttura dei fileNessuna sequenza di parole o byte

Struttura a record semplice

Linee

Record a lunghezza fissa

Record a lunghezza variabile

Struttura complessa

Documento formattato

File rilocabile

Si possono simulare i tipi di file complessi con file a struttura semplice, tramite utilizzo di appropriati caratteri di controllo

Chi decide:

Il sistema operativo

Il programma

Page 5: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.5

Attributi dei fileAttributi dei fileNomeNome: identificativo del file (unico attributo “in chiaro”)

IdentificativoIdentificativo: etichetta unica (numero progressivo) che identifica il file all’interno del file system

TipoTipo: necessario per sistemi che supportano tipi differenti

LocazioneLocazione: puntatore al dispositivo ed alla posizione del file sul dispositivo

DimensioneDimensione: dimensione attuale del file

ProtezioneProtezione: parametri di controllo per l’accesso in lettura, scrittura ed esecuzione del file

OraOra, datadata e identificazione dell’utenteidentificazione dell’utente: dati necessari alla sicurezza del sistema e per il controllo d’uso

Le informazioni sui file sono conservate nella struttura di directorydirectory, che risiede sulla memoria secondaria

Page 6: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.6

File systemFile systemIl file systemfile system è responsabile della gestione dei file in memoria di massa

struttura i dati in file...

...li organizza in directory (o cartelle)

fornisce all’utente un insieme di funzioni di alto livello per operare su di essi, mascherando le operazioni che vengono realmente effettuate per allocare la memoria di massa e per accedervi in lettura/scrittura

Il file system garantisce una gestione dei file indipendente dalle caratteristiche fisiche dei dispositivi che costituiscono la memoria di massa: astrazione utile sia per l’utente sia per i programmi

Page 7: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.7

Operazioni sui file Operazioni sui file 1 1

Un file è un tipo di dato astrattotipo di dato astratto su cui sono definite le operazioni di:

CreazioneCreazione

ScritturaScrittura

LetturaLettura

Posizionamento nel file Posizionamento nel file file seekfile seek

CancellazioneCancellazione

TroncamentoTroncamento

Impostazione degli attributiImpostazione degli attributi

Page 8: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.8

Operazioni sui file Operazioni sui file 2 2

Creazione Creazione Reperire lo spazio per memorizzare il file all’interno del file system

Creare un nuovo elemento nella directory in cui registrare nome del file, posizione nel file system, altre informazioni

ScritturaScritturaChiamata al sistema con nome del file e dati da scrivere come parametri

Reperimento del file nel file system

Scrittura dei dati nella posizione indicata dal puntatore di scritturapuntatore di scrittura e aggiornamento del contatore

Page 9: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.9

Operazioni sui file Operazioni sui file 3 3LetturaLettura

Chiamata al sistema con il nome del file come parametro

Reperimento del file nel file system

Lettura dei dati nella posizione indicata dal puntatore di letturapuntatore di lettura e aggiornamento del contatore

Di solito si mantiene un solo puntatore alla puntatore alla posizione corrente nel fileposizione corrente nel file, che serve sia per effettuare operazioni di lettura che di scrittura

Posizionamento nel filePosizionamento nel fileReperimento del file nel file system

Aggiornamento del puntatore alla posizione corrente

Nessuna operazione di I/O

Page 10: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.10

Operazioni sui file Operazioni sui file 4 4

CancellazioneCancellazione

Reperimento del file nel file system

Si rilascia lo spazio allocato al file e si elimina il corrispondente elemento della directory

TroncamentoTroncamento

Cancellazione del contenuto del file, che mantiene immutati tutti gli attributi (esclusa la dimensione)

Si rilascia lo spazio allocato al file

Altre operazioni sui file si ottengono mediante opportune combinazioni delle operazioni di base

Page 11: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.11

Operazioni sui file Operazioni sui file 5 5

Esempio:Esempio: operazione dioperazione di copiacopia

Creazione di un nuovo file

Lettura del file da copiare

Scrittura nel nuovo file

Quasi tutte le operazioni su file richiedono una ricerca dell’elemento associato al file all’interno della struttura delle directory Occorre “aprire” il file prima di qualsiasi accesso

Il SO mantiene in memoria centrale una tabella contenente informazioni su tutti i file aperti: la tabella dei file aperti tabella dei file aperti

Page 12: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.12

Operazioni sui file Operazioni sui file 6 6Quando si richiede un’operazione su file, si ricercano le informazioni relative reperendole, tramite un indice, nella tabella dei file aperti

Inoltre, quando il file non è più in uso attivo deve essere chiuso ed il SO rimuove l’elemento relativo nella tabella dei file aperti

Le chiamate di sistema per aprire e chiudere i file sono:

openopen ((FFii )) ricerca nella struttura di directory sul disco l’elemento Fi , e ne copia il contenuto nella tabella dei file aperti (in memoria centrale); riporta un puntatore all’elemento nella tabella

closeclose ((FFii )) copia il contenuto dell’elemento Fi , attualmente residente in memoria principale, nella struttura di directory sul disco

Page 13: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.13

File aperti File aperti 1 1Nei sistemi multiutente, due livelli di tabelle:

Tabella di sistemaTabella di sistemaRiferimenti a tutti i file aperti nel sistema

Posizione del file nel disco

Dimensione del file

Date di ultimo accesso/ultima modifica

Contatore di aperture

Tabella associata al processoTabella associata al processoRiferimenti a tutti i file aperti dal processo

Puntatore alla posizione corrente nel file

Diritti di accesso e informazioni di contabilizzazione

Gli elementi della tabella dei file associata al processo puntano al relativo elemento contenuto nella tabella di sistema

Page 14: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.14

File aperti File aperti 2 2In particolare…

Puntatore a file Puntatore a file puntatore all’ultima locazione dove è stata realizzata un’operazione di lettura/scrittura per ogni processo che ha aperto il file (contenuto nella tabella dei file aperti associata al processo)

Contatore di aperture Contatore di aperture conta il numero di processi che hanno aperto il file, per rimuovere opportunamente i dati dalla tabella dei file aperti alla chiusura del file da parte dell’ultimo processo

Locazione del file su discoLocazione del file su disco cache delle informazioni di accesso ai dati permanenti

Diritti di accesso Diritti di accesso controllati dal SO per permettere o negare le operazioni di I/O richieste (contenuti nel tabella dei file aperti associata al processo)

Page 15: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.15

Lock dei file apertiLock dei file aperti

Garantito da alcuni sistemi operativi e realizzazioni del file system

Offre una mediazione per l’accesso a file

Obbligatorio o consigliato:ObbligatorioObbligatorio l’accesso a file viene negato se il lock è già stato acquisito da altro processo

ConsigliatoConsigliato i processi trovano che lo stato di un dato file è “bloccato” e decidono sul da farsi

Se il lock è obbligatorio, il SO assicura l’integrità dei dati soggetti a lock; se il lock è consigliato, è compito del programmatore garantire la corretta acquisizione e cessione dei lock

Page 16: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.16

Tipi di file Tipi di file nome, estensione nome, estensione

Un SO che riconosce il tipo di un file può manipolare il file in modo “ragionevole”

ESEMPI:ESEMPI:

In MS–DOSMS–DOS possono essere eseguiti solo file con estensione .COM, .EXE, .BAT

Nei sistemi Apple MacintoshApple Macintosh e nelle nuove versioni di MS MS WindowsWindows ciascun file possiede un attributo di creazione contenente il nome del programma che lo ha creato

UNIXUNIX memorizza un magic magic numbernumber per indicare il tipo di file; usa le estensioni solo come suggerimento, non vengono imposte né dipendono dal SO

Page 17: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.17

Modalità di accessoModalità di accesso

read nextread nextwrite next write next resetresetno read after last writeno read after last write ((rewriterewrite))

Accesso sequenzialeAccesso sequenziale: È un modello di accesso a file che si “ispira” al nastro; utilizzato da compilatori e editor

Impossibilità di lettura oltre l’ultima posizione scritta; la scrittura aggiunge informazioni in fondo al file

Accesso direttoAccesso diretto: È un modello di accesso a file che si “ispira” al disco

read nread nwrite nwrite nposition to nposition to n read nextread next write next write next rewrite nrewrite nn = numero di blocco

relativo

Page 18: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.18

Accesso sequenzialeAccesso sequenzialeFile ad accesso sequenziale

Simulazione di accesso sequenziale su file ad accesso diretto

Page 19: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.19

Modalità di accesso (Cont.)Modalità di accesso (Cont.)Accesso indicizzatoAccesso indicizzato: può essere realizzato sulla base del metodo ad accesso diretto; implica la costruzione di un file indicefile indice per l’accesso a file

L’indice contiene puntatori ai vari blocchi; per reperire un elemento del file occorre prima cercare nell’indice l’elemento corrispondente e utilizzare il puntatore in esso contenuto per accedere ai dati

Page 20: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.20

Struttura delle directoryStruttura delle directoryIl disco è suddiviso in partizioni o volumi; ciascuna partizione ha una directory di dispositivodirectory di dispositivo che contiene informazioni su tutti i fileSia la struttura di directory che i file risiedono su discoLa directory può essere considerata come una tabella di simboli che traduce i nomi dei file nelle modalità di accesso alle informazioni in essi contenute

F1F2 F3

F4

Fn

Directory

File

Page 21: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.21

Tipiche organizzazioni di file Tipiche organizzazioni di file systemsystem

Partizioni multiple Partizione singola

Page 22: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.22

Informazioni contenute in una Informazioni contenute in una directory directory

Operazioni sulle directoryOperazioni sulle directory

Informazioni Informazioni Nome

Tipo

Indirizzo

Lunghezza attuale

Lunghezza massima

Data ultimo accesso

Data ultima modifica

ID del proprietario

Informazioni di protezione

Operazioni Operazioni Ricerca di un fileCreazione di un file Cancellazione di un fileElenco dei contenuti di una directoryRidenominazione di un fileAttraversamento del file system

Page 23: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.23

RicercaRicerca Possibilità di scorrere la directory per reperire l’elemento associato ad un particolare file

I file hanno nomi simbolici

Nomi simili possono corrispondere a relazioni logiche fra i contenuti dei file

Capacità di reperire tutti i file il cui nome soddisfi una particolare espressione

Elenco dei contenuti di una directoryElenco dei contenuti di una directory Possibilità di elencare tutti i file di una directory ed il contenuto degli elementi della directory associati ai file

Ridenominazione di fileRidenominazione di file Possibilità di modificare il nome di un file che dovrebbe essere significativo del contenuto a fronte di cambiamenti di contenuto o uso del file

Operazioni sulle directoryOperazioni sulle directory

Page 24: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.24

L’organizzazione della struttura di directory deve garantire…

EfficienzaEfficienza capacità di reperire file rapidamente

NominazioneNominazione conveniente per gli utenti

• Due utenti possono utilizzare nomi uguali per Due utenti possono utilizzare nomi uguali per file diversifile diversi

• Lo stesso file può avere diversi nomiLo stesso file può avere diversi nomi

GroupingGrouping Raggruppamento dei file sulla base di proprietà logiche (ad esempio, tutti i programmi Java, tutti i giochi, etc.)

Come organizzare una directory?Come organizzare una directory?

Page 25: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.25

Directory monolivelloDirectory monolivello

Una directory unica per tutti gli utenti

Problemi di nominazione: occorre scegliere un nome diverso per ogni file

Nessun raggruppamento logico

Page 26: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.26

Directory a due livelli Directory a due livelli 1 1Directory separate per ciascun utente

Ammessi nomi uguali per file di utenti diversi

Ricerca efficiente

Nessuna capacità di raggruppamento logico (se non in base ai proprietari)

Nome di percorso permette ad un utente di vedere i file degli altri utenti

Page 27: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.27

Directory a due livelli Directory a due livelli 2 2Quando si apre la sessione di lavoro si ricerca nella MFD (Master File Directory) l’identificativo dell’utente, che viene ammesso al sistema all’interno della propria UFD (User File Directory)

Ogni riferimento a file da parte dell’utente viene interpretato dal SO come esclusivamente correlato ai file presenti nella relativa UFD

Per riferirsi a file di altri utenti, se l’accesso è autorizzato, ogni utente deve utilizzare il pathname completo del file (nome utente, nome file)

I file di sistema vengono raccolti in opportune directory raggiungibili da tutti gli utenti

Page 28: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.28

Directory con struttura ad albero Directory con struttura ad albero 11

Ricerca efficiente

Capacità di raggruppamento logico

Directory corrente (o directory di lavoro)

Page 29: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.29

Pathname (percorso) assolutoassoluto o relativorelativo

La creazione di un nuovo file o la cancellazione di un file esistente viene effettuata nella directory corrente

La creazione di una nuova directory viene interpretata come la creazione di una sottodirectory della directory corrente

Cancellazione di una directory

Solo se vuota (MSDOS)

Anche se contenente file e sottodirectory (es.: rm rm –r–r, in UNIX)

Directory con struttura ad albero Directory con struttura ad albero 22

Page 30: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.30

Directory a grafo aciclico Directory a grafo aciclico 1 1Presenza di file e sottodirectory condivisi

AliasingAliasing due o più nomi diversi possono venir utilizzati per identificare lo stesso oggetto (file o directory)

Nella di directory, la condivisione può essere implementata per mezzo di link link o per duplicazione

Se dictdict cancella ww // listlist puntatore errato

Page 31: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.31

Soluzioni:Soluzioni:

Puntatori all’indietro che permettano il reperimento di tutti i link al file cancellato e la loro eliminazione

Conservazione del file fino a che non esistano più link

Lista dei riferimenti a file: record di lunghezza variabile

È sufficiente mantenere il numero di riferimenti: quando il contatore è 0 il file può essere cancellato

Nuovi “oggetti” contenuti nelle directory e operazioni correlate

LinkLink un nome diverso (un puntatore) per un file già esistente

Risolvere un linkRisolvere un link seguire il puntatore corrispondente per reperire il file

Directory a grafo aciclico Directory a grafo aciclico 2 2

Page 32: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.32

Directory a grafo generale Directory a grafo generale 1 1

Page 33: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.33

Come garantire l’assenza di cicli?

Sono ammessi link a file, ma non a sottodirectory

Garbage collectionGarbage collection si attraversa il file system, marcando i file accessibili; in un secondo passaggio, si rimuovono i file non marcati

Ogni volta che viene aggiunto un nuovo link, si verifica la presenza di cicli, mediante uso di un algoritmo di rilevamento

Directory a grafo generale Directory a grafo generale 2 2

Page 34: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.34

UNIX UNIX 1 1

I file e le directory possono appartenere a più directory, a costituire strutture a grafo generalegrafo generale

Varie directory ospitano programmi di sistema (per es.: devdev contiene i device driver, binbin il codice eseguibile, includeinclude le librerie di sistema, etc.)

A ciascun utente è associata una directory, detta home directoryhome directory

• Le home directory sono normalmente sotto-directory della usr usr (o della home home)

• I file creati dall’utente sono contenuti nella home o in sottodirectory della home

Page 35: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.35

UNIX UNIX 2 2

Il file system di UNIX

Page 36: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.36

Ciascun file viene identificato da un pathnamepathname che include l’intero cammino, dalla radice dell’albero al file stesso

Tutti i file e sottodirectory presenti nella stessa directory devono avere nomi distinti ciascun pathname è unico

Il nome completo del file art.html è:

/users/jen/pers/art.html/users/jen/pers/art.html

UNIX UNIX 3 3

Page 37: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.37

Un utente che interagisce con il file system ha un proprio contesto, cioè una specifica posizione nel file system, corrispondente ad un nodo nel grafoPer default, all’atto del collegamento al sistema, il contesto dell’utente è costituito dalla sua home directoryIl contesto può essere variato, muovendosi ovunque nell’albero delle directory (almeno in quelle accessibili all’utente)Nell’esprimere il nome di un file o di una directory si può omettere di specificare la stringa corrispondente al contesto corrente

UNIX UNIX 4 4

Page 38: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.38

Il simbolo “.” fa riferimento al contesto corrente

Il simbolo “..” fa riferimento alla directory immediatamente superiore al contesto corrente

EsempioEsempio: se il contesto corrente è la directory usersusers, il file [...][...]/users/sniffers/private.html/users/sniffers/private.html può essere identificato con sniffers/private.htmlsniffers/private.html oppure con ./sniffers/private.html./sniffers/private.html

UNIX UNIX 5 5

Page 39: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.39

Comandi per la manipolazione di file e directory:

chmodchmod stabilisce i parametri di protezione del file

chownchown cambia il proprietario di un file

cmpcmp confronta byte a byte due file

cpcp copia un file in un altro (situato in altra directory, o nella stessa, ma con nome diverso)

findfind trova file per nome o per altre caratteristiche

grepgrep ricerca un file attraverso una stringa in esso contenuta

lnln crea un link

moremore visualizza il contenuto di un file (su terminale, per default)

mvmv muove un file (serve anche per rinominarlo)

rmrm cancella un file

UNIX UNIX 6 6

Page 40: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.40

Comandi per la manipolazione di file e directory:

mkdirmkdir crea una directory

cdcd cambia il contesto

lsls elenca i file e le sottodirectory contenute in una directory

pwdpwd mostra il pathname della directory corrente

rmdirrmdir rimuove una directory

mountmount monta un file system

manman per consultare l’help in linea

UNIX UNIX 7 7

Page 41: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.41

Esempio:Esempio: se la directory corrente è /mail/mail, il comando mkdir count mkdir count

produce…

Cancellando /mail/mail viene cancellato l’intero sottoalbero che ha /mail/mail per radice

UNIX UNIX 8 8

mail

prog copy prt exp count

Page 42: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.42

Un hardlinkhardlink è un’etichetta o un nome assegnato ad un file

Si possono avere nomi distinti che identificano lo stesso file (per esempio in directory diverse)

I comandi eseguiti relativamente ad uno qualsiasi dei nomi di un file operano sugli stessi “contenuti”

ln oldfile newlinkln oldfile newlink

crea un nuovo elemento nella directory di lavoro, newlinknewlink, che è comunque correlato ai contenuti del file oldfileoldfile (non rappresenta una copia di oldfileoldfile)

Qualsiasi cambiamento effettuato su oldfileoldfile si manifesta anche su newlinknewlink

Il comando rmrm può essere utilizzato anche per rimuovere un hardlink

Dopo la rimozione del link il contenuto del file viene comunque mantenuto (fino a che c’è almeno un nome che si riferisce a quel file)

UNIX UNIX 9 9

Page 43: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.43

Un link simbolico o softlinksoftlink è un tipo speciale di file che punta ad un altro file

Diversamente dagli hardlink, non contiene i dati relativi al target file, semplicemente punta ad un diverso elemento di directory da qualche parte nel file system

All’atto della cancellazione del file, i softlink divengono inutilizzabili, mentre gli hardlink preservano (fino a quando ne esiste almeno uno) il contenuto del file

Per creare un link simbolico:

ln -s source_file myfileln -s source_file myfile

UNIX UNIX 10 10

Page 44: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.44

Protezione in UNIX Protezione in UNIX 1 1Quando crea un file, l’utente specifica la protezioneprotezione da applicare ad esso, ossia indica quali operazioni possono essere eseguite da ciascun utente sul fileIn UNIX:

Tipi di accesso: lettura, scrittura, esecuzione, append (scrittura in coda), cancellazione, lista degli attributiModo di accesso: read, write, executeTre classi di utenti: user, group, allEsempio:Esempio: il file game.exegame.exe con diritti di accesso

RWX a) accesso del proprietarioaccesso del proprietario 7 1 1 1

RWX b) accesso del gruppoaccesso del gruppo 5 1 0 1

RWX c) accesso pubblicoaccesso pubblico 1 0 0 1

user group all

chmodchmod 751 game.exe

può essere letto, scritto ed eseguito dal legittimo proprietario, letto ed eseguito dagli utenti del suo gruppo, solo eseguito da tutti gli altri utenti del sistema

Page 45: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.45

Protezione in UNIX Protezione in UNIX 2 2Come per i file, a ciascuna directory sono associati tre campi (proprietario, gruppo e universo), ciascuno composto dai tre bit rwx

Un utente può elencare il contenuto di una directory solo se il bit r è inserito nel campo appropriato, può modificarne il contenuto solo se è impostato il bit w, e può accedervi se è impostato x

Page 46: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.46

Montaggio di un file system Montaggio di un file system 1 1Un file system deve essere montatomontato prima di poter essere acceduto dai processi di un sistema

Un file system unmountedunmounted può essere montato ad un mount pointmount point prescelto

Procedura di montaggio

Si fornisce al SO il nome del dispositivo da montare (sotto forma di volume e pathname) e la locazione che dovrà assumere nella struttura del file system (punto di montaggiopunto di montaggio)

Di solito, il punto di montaggio è una directory vuota cui sarà agganciato il file system che deve essere montato

Page 47: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.47

Montaggio di un file systemMontaggio di un file system 2 2Esempio: Esempio:

Se si effettua il montaggio su /users/users del file system in figura (b) identificato, per esempio, da /device/usr/device/usr, le home degli utenti billbill e fredfred (e sottodirectory) diventano inaccessibili

/users/users è il è il mount pointmount pointFile system File system unmountedunmountedFile system esistenteFile system esistente

Page 48: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.48

Condivisione di fileCondivisione di fileLa condivisione di file è particolarmente utile nei sistemi multiutente, per permettere la collaborazione fra utenti e per ridurre le risorse richieste per raggiungere un certo obiettivo di calcolo

Tuttavia, la condivisione non può prescindere da uno schema di protezione che garantisca un controllo di accesso ai file mediato dal SO

Nei sistemi distribuiti, i file vengono condivisi attraverso una rete

Il Network File SystemNetwork File System (NFS) è un metodo molto diffuso (originariamente implementato in ambiente UNIX) per realizzare la condivisione di file in ambienti distribuiti

Page 49: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.49

File sharing in ambiente File sharing in ambiente multiutentemultiutente

Il modello più diffuso è legato al concetto di proprietarioproprietario di un file e di gruppogruppo di utenti a cui il proprietario è “affiliato”

Il proprietario è l’utente che ha creato il file e che può cambiare gli attributi del file (o della directory)

L’attributo di gruppo si usa per definire il sottoinsieme di utenti autorizzati a condividere l’accesso a file

Gli identificatori del gruppo (GroupID) e del proprietario (UserID) di un dato file o directory sono memorizzati come attributi del file

Page 50: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.50

File system remoti File system remoti 1 1

Uso della rete per ottenere l’accesso a file residenti su sistemi remoti

Trasferimento richiesto esplicitamente (anonimo o autenticato) via protocollo FTP

File system distribuito, che permette la visibilità e l’accesso (automatico) dal calcolatore locale di directory remote

Accesso tramite browser (semiautomatico) attraverso il World Wide Web (l’FTP anonimo non è esplicito, ma “nascosto” da un wrapperwrapper, nell’operazione di download)

Page 51: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.51

File system remoti File system remoti 2 2Nel modello clientmodello clientserverserver, il server mette a disposizione risorse (sotto forma di directory e file) ai client che ne fanno richiesta

Modello moltiamolti: un server può gestire richieste provenienti da più client, il client può accedere a più server

Problemi di autenticazione

Protocolli insicuri che possono condurre a spoofingspoofing

Sicurezza ottenuta mediante autenticazione reciproca di client e server tramite chiavi di cifratura

Nuovi problemi:Nuovi problemi: compatibilità fra client e server (relativamente all’algoritmo di cifratura), scambio sicuro delle chiavi

Page 52: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.52

File system remoti File system remoti 3 3NFSNFS è il protocollo clientserver standard nei sistemi UNIX

Gli UserID devono coincidere nel client e nel server

Dopo il montaggio del file system remoto, le richieste di accesso a file vengono inviate al server attraverso la rete

Il server applica i normali controlli di accesso e, qualora producano un risultato positivo, restituisce un file handlefile handle al client, che lo usa per eseguire le successive operazioni su file

CIFSCIFS (Common Internet File SystemCommon Internet File System) è invece il protocollo standard per Windows

Le chiamate di sistema locali vengono tradotte in chiamate (per gli stessi servizi) su file system remoti

Page 53: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.53

File system remoti File system remoti 4 4

Sistemi informativi distribuitiSistemi informativi distribuiti Presuppongono un protocollo di nominazione uniforme (Domain Name SystemDomain Name System, DNSDNS) per le macchine che accedono al sistema

NISNIS, Network Information ServiceNetwork Information Service: centralizza le informazioni relative a calcolatori e utenti

Metodo di autenticazione insicuro, basato su password trasmesse in chiaro

LDAPLDAP, Lightweight DirectoryLightweight DirectoryAccess ProtocolAccess Protocol, prevede un unico punto di accesso sicuro per gli utenti che si autenticherebbero una sola volta per avere accesso a tutti i servizi distribuiti

Page 54: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.54

Malfunzionamenti Malfunzionamenti 1 1

Nei file system locali possono verificarsi malfunzionamenti dovuti a…

Problemi hardware dei dischi che li contengono

Alterazioni dei metadatimetadati (informazioni per il reperimento dei file nelle directory)

Problemi ai controllori dei dischi

Problemi ai cavi di connessione

Errori umani

Page 55: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.55

Malfunzionamenti Malfunzionamenti 2 2

Nei file system remoti i malfunzionamenti possono avvenire anche per cadute della rete o dei server remoti sui quali sono residenti i file

Per il ripristino da malfunzionamenti è necessario mantenere alcune informazioni di stato sia sui client che sui server

Tuttavia i protocolli attualmente più diffusi, come NFS, non mantengono informazioni di stato

NFS trasferisce tutte le informazioni nella singola richiesta che si suppone legittima con alta tolleranza ai guasti ma scarsa sicurezza

Page 56: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.56

Semantica della coerenzaSemantica della coerenzaLa semantica della coerenzasemantica della coerenza specifica quando le modifiche apportate da un utente ai dati contenuti in un file possano essere osservate da altri utenti La semantica della coerenza è direttamente correlata agli algoritmi di sincronizzazione fra processi, anche se tende ad essere meno critica a causa delle lunghe latenze e delle basse velocità di trasferimento dei dischi e della reteLa semantica UNIX impone:

che le scritture in un file aperto da un utente siano immediatamente visibili agli altri utenti che hanno aperto contemporaneamente lo stesso filela condivisione del puntatore alla posizione corrente nel file: il file ha una singola immagine e tutti gli accessi si alternano, intercalandosi, a prescindere dalla loro origine La contesa per l’immagine fisica del file determina il differimento dei processi utente

Page 57: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.57

Protezione Protezione 1 1

La salvaguardia delle informazioni contenute in un sistema di calcolo dai danni fisici (affidabilità) e da accessi impropri (protezione) è fondamentale per l’integrità e l’usabilità del sistema

L’affidabilità è assicurata dalla ridondanzaL’affidabilità è assicurata dalla ridondanza

La protezione si ottiene mediante controllo degli La protezione si ottiene mediante controllo degli accessiaccessi

Il proprietario/creatore del file deve essere in grado di controllare

quali tipi di accesso sono leciti sul file

chi può accedere al file

Page 58: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.58

Protezione Protezione 2 2

Tipi di accesso a file

LetturaLettura

ScritturaScrittura

EsecuzioneEsecuzione

AppendAppend

CancellazioneCancellazione

ElencazioneElencazione

Si rende l’accesso dipendente dall’identità dell’utente

Page 59: Interfaccia del File System. Sistemi Operativi a.a. 2007-08 10.2 Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory.

Sistemi Operativi a.a. 2007-0810.59

Esempio: Windows XPEsempio: Windows XP

Gestione della lista di controllo degli accessi

Si vieta esplicitamente Si vieta esplicitamente all’utente Guest qualsiasi all’utente Guest qualsiasi tipo di accesso al file tipo di accesso al file 10.tex10.tex