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
-      \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} &
@@ -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},
-\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
@@ -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
-\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.
@@ -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
-\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
@@ -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,
-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
-\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
@@ -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
-\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.
@@ -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
-\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
@@ -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
-\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
@@ -547,12 +547,12 @@ particolare è opportuno ricordare sempre che:
 
 \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à
-  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
@@ -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
-  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
-  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
-  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
@@ -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
-di \index{inode} inode.
+di \itindex{inode} inode.
 
 \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
-  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
@@ -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
-fra i dati e la tabella degli \index{inode} inode.
+fra i dati e la tabella degli \itindex{inode} inode.
 
 \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
-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.