Inizio revisione capitolo 3 e solite indicizzazioni e aggiornamento
[gapil.git] / fileintro.tex
index 1d2f9368fc94313fc10ff094b45a438f6de8c776..374a87017cb9b7303cee2ab1ac5ea6d56d5307cd 100644 (file)
@@ -172,7 +172,7 @@ dispositivo sottostante effettua le operazioni di I/O.\footnote{in sostanza i
       Un file che contiene dei dati (l'accezione normale di file).\\
       \textit{directory} & \textsl{cartella o direttorio} &
       Un file che contiene una lista di nomi associati a degli
       Un file che contiene dei dati (l'accezione normale di file).\\
       \textit{directory} & \textsl{cartella o direttorio} &
       Un file che contiene una lista di nomi associati a degli
-      \index{inode} \textit{inode} (vedi sez.~\ref{sec:file_vfs}).\\
+      \itindex{inode} \textit{inode} (vedi sez.~\ref{sec:file_vfs}).\\
       \textit{symbolic link} & \textsl{collegamento simbolico} &
       Un file che contiene un riferimento ad un altro file/directory.\\
       \textit{char device} & \textsl{dispositivo a caratteri} &
       \textit{symbolic link} & \textsl{collegamento simbolico} &
       Un file che contiene un riferimento ad un altro file/directory.\\
       \textit{char device} & \textsl{dispositivo a caratteri} &
@@ -354,7 +354,7 @@ fig.~\ref{fig:file_VFS_scheme}.
 Il VFS definisce un insieme di funzioni che tutti i filesystem devono
 implementare. L'interfaccia comprende tutte le funzioni che riguardano i file;
 le operazioni sono suddivise su tre tipi di oggetti: \textit{filesystem},
 Il VFS definisce un insieme di funzioni che tutti i filesystem devono
 implementare. L'interfaccia comprende tutte le funzioni che riguardano i file;
 le operazioni sono suddivise su tre tipi di oggetti: \textit{filesystem},
-\index{inode} \textit{inode} e \textit{file}, corrispondenti a tre apposite
+\itindex{inode} \textit{inode} e \textit{file}, corrispondenti a tre apposite
 strutture definite nel kernel.
 
 Il VFS usa una tabella mantenuta dal kernel che contiene il nome di ciascun
 strutture definite nel kernel.
 
 Il VFS usa una tabella mantenuta dal kernel che contiene il nome di ciascun
@@ -384,7 +384,7 @@ Gli altri due descrittori usati dal VFS sono relativi agli altri due oggetti
 su cui è strutturata l'interfaccia. Ciascuno di essi contiene le informazioni
 relative al file in uso, insieme ai puntatori alle funzioni dello specifico
 filesystem usate per l'accesso dal VFS; in particolare il descrittore
 su cui è strutturata l'interfaccia. Ciascuno di essi contiene le informazioni
 relative al file in uso, insieme ai puntatori alle funzioni dello specifico
 filesystem usate per l'accesso dal VFS; in particolare il descrittore
-\index{inode} dell'inode contiene i puntatori alle funzioni che possono essere
+\itindex{inode} dell'inode contiene i puntatori alle funzioni che possono essere
 usate su qualunque file (come \func{link}, \func{stat} e \func{open}), mentre
 il descrittore di file contiene i puntatori alle funzioni che vengono usate
 sui file già aperti.
 usate su qualunque file (come \func{link}, \func{stat} e \func{open}), mentre
 il descrittore di file contiene i puntatori alle funzioni che vengono usate
 sui file già aperti.
@@ -401,7 +401,7 @@ viene eseguita una ricerca dentro la \textit{directory entry cache} (in breve
 efficiente il \textit{pathname} a una specifica \textit{dentry}.
 
 Una singola \textit{dentry} contiene in genere il puntatore ad un
 efficiente il \textit{pathname} a una specifica \textit{dentry}.
 
 Una singola \textit{dentry} contiene in genere il puntatore ad un
-\index{inode} \textit{inode}; quest'ultimo è la struttura base che sta sul
+\itindex{inode} \textit{inode}; quest'ultimo è la struttura base che sta sul
 disco e che identifica un singolo oggetto del VFS sia esso un file ordinario,
 una directory, un link simbolico, una FIFO, un file di
 \index{file!di~dispositivo} dispositivo, o una qualsiasi altra cosa che possa
 disco e che identifica un singolo oggetto del VFS sia esso un file ordinario,
 una directory, un link simbolico, una FIFO, un file di
 \index{file!di~dispositivo} dispositivo, o una qualsiasi altra cosa che possa
@@ -412,11 +412,11 @@ file, contiene anche il riferimento alle funzioni (i \textsl{metodi} del VFS)
 da usare per poterlo manipolare.
 
 Le \textit{dentry} ``vivono'' in memoria e non vengono mai salvate su disco,
 da usare per poterlo manipolare.
 
 Le \textit{dentry} ``vivono'' in memoria e non vengono mai salvate su disco,
-vengono usate per motivi di velocità, gli \index{inode} \textit{inode} invece
+vengono usate per motivi di velocità, gli \itindex{inode} \textit{inode} invece
 stanno su disco e vengono copiati in memoria quando serve, ed ogni cambiamento
 viene copiato all'indietro sul disco (aggiornando i cosiddetti
 stanno su disco e vengono copiati in memoria quando serve, ed ogni cambiamento
 viene copiato all'indietro sul disco (aggiornando i cosiddetti
-\textsl{metadati} del file), gli \index{inode} inode che stanno in memoria
-sono \index{inode} inode del VFS ed è ad essi che puntano le singole
+\textsl{metadati} del file), gli \itindex{inode} inode che stanno in memoria
+sono \itindex{inode} inode del VFS ed è ad essi che puntano le singole
 \textit{dentry}.
 
 La \textit{dcache} costituisce perciò una sorta di vista completa di tutto
 \textit{dentry}.
 
 La \textit{dcache} costituisce perciò una sorta di vista completa di tutto
@@ -424,9 +424,9 @@ l'albero dei file, ovviamente per non riempire tutta la memoria questa vista è
 parziale (la \textit{dcache} cioè contiene solo le \textit{dentry} per i file
 per i quali è stato richiesto l'accesso), quando si vuole risolvere un nuovo
 \itindex{pathname} \textit{pathname} il VFS deve creare una nuova
 parziale (la \textit{dcache} cioè contiene solo le \textit{dentry} per i file
 per i quali è stato richiesto l'accesso), quando si vuole risolvere un nuovo
 \itindex{pathname} \textit{pathname} il VFS deve creare una nuova
-\textit{dentry} e caricare \index{inode} l'inode corrispondente in memoria.
+\textit{dentry} e caricare \itindex{inode} l'inode corrispondente in memoria.
 
 
-Questo procedimento viene eseguito dal metodo \code{lookup()} \index{inode}
+Questo procedimento viene eseguito dal metodo \code{lookup()} \itindex{inode}
 dell'inode della directory che contiene il file; questo viene installato nelle
 relative strutture in memoria quando si effettua il montaggio lo specifico
 filesystem su cui l'inode va a vivere.
 dell'inode della directory che contiene il file; questo viene installato nelle
 relative strutture in memoria quando si effettua il montaggio lo specifico
 filesystem su cui l'inode va a vivere.
@@ -434,7 +434,7 @@ filesystem su cui l'inode va a vivere.
 Una volta che il VFS ha a disposizione la \textit{dentry} (ed il relativo
 \textit{inode}) diventa possibile accedere alle varie operazioni sul file come
 la \func{open} per aprire il file o la \func{stat} per leggere i dati
 Una volta che il VFS ha a disposizione la \textit{dentry} (ed il relativo
 \textit{inode}) diventa possibile accedere alle varie operazioni sul file come
 la \func{open} per aprire il file o la \func{stat} per leggere i dati
-\index{inode} dell'inode e passarli in user space.
+\itindex{inode} dell'inode e passarli in user space.
 
 L'apertura di un file richiede comunque un'altra operazione, l'allocazione di
 una struttura di tipo \struct{file} in cui viene inserito un puntatore alla
 
 L'apertura di un file richiede comunque un'altra operazione, l'allocazione di
 una struttura di tipo \struct{file} in cui viene inserito un puntatore alla
@@ -515,7 +515,7 @@ superblock (ma sulle caratteristiche di \acr{ext2} e derivati torneremo in
 sez.~\ref{sec:file_ext2}). È comunque caratteristica comune di tutti i
 filesystem per Unix, indipendentemente da come poi viene strutturata nei
 dettagli questa informazione, prevedere una divisione fra la lista degli
 sez.~\ref{sec:file_ext2}). È comunque caratteristica comune di tutti i
 filesystem per Unix, indipendentemente da come poi viene strutturata nei
 dettagli questa informazione, prevedere una divisione fra la lista degli
-\index{inode} inode e lo spazio a disposizione per i dati e le directory.
+\itindex{inode} inode e lo spazio a disposizione per i dati e le directory.
 
 \begin{figure}[!htb]
   \centering
 
 \begin{figure}[!htb]
   \centering
@@ -547,12 +547,12 @@ particolare è opportuno ricordare sempre che:
 
 \begin{enumerate}
   
 
 \begin{enumerate}
   
-\item L'\textit{inode} \index{inode} contiene tutte le informazioni (i
+\item L'\textit{inode} \itindex{inode} contiene tutte le informazioni (i
   cosiddetti \textsl{metadati}) riguardanti il file: il tipo di file, i
   permessi di accesso, le dimensioni, i puntatori ai blocchi fisici che
   contengono i dati e così via. Le informazioni che la funzione \func{stat}
   fornisce provengono dall'\textit{inode}; dentro una directory si troverà
   cosiddetti \textsl{metadati}) riguardanti il file: il tipo di file, i
   permessi di accesso, le dimensioni, i puntatori ai blocchi fisici che
   contengono i dati e così via. Le informazioni che la funzione \func{stat}
   fornisce provengono dall'\textit{inode}; dentro una directory si troverà
-  solo il nome del file e il numero \index{inode} dell'\textit{inode} ad esso
+  solo il nome del file e il numero \itindex{inode} dell'\textit{inode} ad esso
   associato, cioè quella che da qui in poi chiameremo una \textsl{voce} (come
   traduzione dell'inglese \textit{directory entry}, che non useremo anche per
   evitare confusione con le \textit{dentry} del kernel di cui si parlava in
   associato, cioè quella che da qui in poi chiameremo una \textsl{voce} (come
   traduzione dell'inglese \textit{directory entry}, che non useremo anche per
   evitare confusione con le \textit{dentry} del kernel di cui si parlava in
@@ -565,18 +565,18 @@ particolare è opportuno ricordare sempre che:
   i dati del file vengono effettivamente rimossi dal disco. Per questo la
   funzione per cancellare un file si chiama \func{unlink}, ed in realtà non
   cancella affatto i dati del file, ma si limita ad eliminare la relativa voce
   i dati del file vengono effettivamente rimossi dal disco. Per questo la
   funzione per cancellare un file si chiama \func{unlink}, ed in realtà non
   cancella affatto i dati del file, ma si limita ad eliminare la relativa voce
-  da una directory e decrementare il numero di riferimenti \index{inode}
+  da una directory e decrementare il numero di riferimenti \itindex{inode}
   nell'\textit{inode}.
   
 \item Il numero di \textit{inode} nella voce si riferisce ad un \textit{inode}
   nello stesso filesystem e non ci può essere una directory che contiene
   nell'\textit{inode}.
   
 \item Il numero di \textit{inode} nella voce si riferisce ad un \textit{inode}
   nello stesso filesystem e non ci può essere una directory che contiene
-  riferimenti ad \index{inode} \textit{inode} relativi ad altri filesystem.
+  riferimenti ad \itindex{inode} \textit{inode} relativi ad altri filesystem.
   Questo limita l'uso del comando \cmd{ln} (che crea una nuova voce per un
   file esistente con la funzione \func{link}) al filesystem corrente.
   
 \item Quando si cambia nome ad un file senza cambiare filesystem, il contenuto
   del file non viene spostato fisicamente, viene semplicemente creata una
   Questo limita l'uso del comando \cmd{ln} (che crea una nuova voce per un
   file esistente con la funzione \func{link}) al filesystem corrente.
   
 \item Quando si cambia nome ad un file senza cambiare filesystem, il contenuto
   del file non viene spostato fisicamente, viene semplicemente creata una
-  nuova voce per \index{inode} l'\textit{inode} in questione e rimossa la
+  nuova voce per \itindex{inode} l'\textit{inode} in questione e rimossa la
   vecchia (questa è la modalità in cui opera normalmente il comando \cmd{mv}
   attraverso la funzione \func{rename}). Questa operazione non modifica
   minimamente neanche l'\textit{inode} del file dato che non si opera su
   vecchia (questa è la modalità in cui opera normalmente il comando \cmd{mv}
   attraverso la funzione \func{rename}). Questa operazione non modifica
   minimamente neanche l'\textit{inode} del file dato che non si opera su
@@ -597,7 +597,7 @@ anche per le directory; per cui, se a partire dalla situazione mostrata in
 fig.~\ref{fig:file_filesys_detail} creiamo una nuova directory \file{img}
 nella directory \file{gapil}, avremo una situazione come quella in
 fig.~\ref{fig:file_dirs_link}, dove per chiarezza abbiamo aggiunto dei numeri
 fig.~\ref{fig:file_filesys_detail} creiamo una nuova directory \file{img}
 nella directory \file{gapil}, avremo una situazione come quella in
 fig.~\ref{fig:file_dirs_link}, dove per chiarezza abbiamo aggiunto dei numeri
-di \index{inode} inode.
+di \itindex{inode} inode.
 
 \begin{figure}[!htb]
   \centering 
 
 \begin{figure}[!htb]
   \centering 
@@ -657,7 +657,7 @@ le seguenti:
   in fase di creazione, a seconda delle sue esigenze (blocchi più grandi
   permettono un accesso più veloce, ma sprecano più spazio disco).
 \item il filesystem implementa link simbolici veloci, in cui il nome del file
   in fase di creazione, a seconda delle sue esigenze (blocchi più grandi
   permettono un accesso più veloce, ma sprecano più spazio disco).
 \item il filesystem implementa link simbolici veloci, in cui il nome del file
-  non è salvato su un blocco, ma tenuto all'interno \index{inode} dell'inode
+  non è salvato su un blocco, ma tenuto all'interno \itindex{inode} dell'inode
   (evitando letture multiple e spreco di spazio), non tutti i nomi però
   possono essere gestiti così per limiti di spazio (il limite è 60 caratteri).
 \item vengono supportati i file immutabili (che possono solo essere letti) per
   (evitando letture multiple e spreco di spazio), non tutti i nomi però
   possono essere gestiti così per limiti di spazio (il limite è 60 caratteri).
 \item vengono supportati i file immutabili (che possono solo essere letti) per
@@ -683,7 +683,7 @@ filesystem (superblock e descrittore del filesystem sono quindi ridondati) per
 una maggiore affidabilità e possibilità di recupero in caso di corruzione del
 superblock principale. L'utilizzo di raggruppamenti di blocchi ha inoltre
 degli effetti positivi nelle prestazioni dato che viene ridotta la distanza
 una maggiore affidabilità e possibilità di recupero in caso di corruzione del
 superblock principale. L'utilizzo di raggruppamenti di blocchi ha inoltre
 degli effetti positivi nelle prestazioni dato che viene ridotta la distanza
-fra i dati e la tabella degli \index{inode} inode.
+fra i dati e la tabella degli \itindex{inode} inode.
 
 \begin{figure}[!htb]
   \centering
 
 \begin{figure}[!htb]
   \centering
@@ -694,7 +694,7 @@ fra i dati e la tabella degli \index{inode} inode.
 
 Le directory sono implementate come una \itindex{linked~list} \textit{linked
   list} con voci di dimensione variabile. Ciascuna voce della lista contiene
 
 Le directory sono implementate come una \itindex{linked~list} \textit{linked
   list} con voci di dimensione variabile. Ciascuna voce della lista contiene
-il numero di inode \index{inode}, la sua lunghezza, il nome del file e la sua
+il numero di inode \itindex{inode}, la sua lunghezza, il nome del file e la sua
 lunghezza, secondo lo schema in fig.~\ref{fig:file_ext2_dirs}; in questo modo
 è possibile implementare nomi per i file anche molto lunghi (fino a 1024
 caratteri) senza sprecare spazio disco.
 lunghezza, secondo lo schema in fig.~\ref{fig:file_ext2_dirs}; in questo modo
 è possibile implementare nomi per i file anche molto lunghi (fino a 1024
 caratteri) senza sprecare spazio disco.