Ristrutturazione della introduzione.
[gapil.git] / fileintro.tex
index a2735a7dd2e5473902dfe5b9c949deffe8c4de82..c03e36032d1b25e5e39a42c322eb9b982a0cf4e2 100644 (file)
@@ -70,10 +70,7 @@ convenzione, sono inseriti nella directory \texttt{/dev}).
 \label{sec:fileintr_vfs}
 
 Esamineremo adesso come viene implementato l'accesso ai files in Linux. Questa
-sezione riporta informazioni sui dettagli di come il kernel gestisce i files,
-ed è basata sul documento di Richard Goochs distribuito coi sorgenti del
-kernel (nella directory \texttt{linux/Documentation/vfs.txt}).
-
+sezione riporta informazioni sui dettagli di come il kernel gestisce i files.
 L'argomento è abbastanza ``esoterico'' e questa sezione può essere saltata ad
 una prima lettura; è bene però tenere presente che vengono introdotti qui
 alcuni termini che potranno comparire in seguito, come \textit{inode},
@@ -81,10 +78,26 @@ alcuni termini che potranno comparire in seguito, come \textit{inode},
 
 In Linux il concetto di \textit{everything is a file} è stato implementato
 attraverso il \textit{virtual filesystem} (da qui in avanti VFS) che è
-l'interfaccia astratta che il kernel rende disponibile ai programmi in user
-space attraverso la quale vengono manipolati i files; esso provvede anche
-un'astrazione delle operazioni di manipolazione sui files che permette la
-coesistenza di diversi filesystem all'interno dello stesso albero.
+l'interfaccia che il kernel rende disponibile ai programmi in user space
+attraverso la quale vengono manipolati i files; esso provvede un livello di
+indirezione che permette di collegare le operazioni di manipolazione sui files
+alle operazioni di I/O e gestisce l'organizzazione di questi ultimi nei vari
+modi in cui diversi filesystem la effettuano, permettendo la coesistenza
+di filesystem differenti all'interno dello stesso albero delle directory
+
+Quando un processo esegue una system call che opera su un file il kernel
+chiama sempre una funzione implementata nel VFS; la funzione eseguirà le
+manipolazioni sulle strutture generiche e ridirigendo la chiamata alla
+opportune routine del filesystem specifico a cui si fa riferimento, saranno
+queste a chiamare le funzioni di piu basso livello che eseguono le operazioni
+di I/O sul dispositivo fisico, secondo lo schema riportato in \nfig.
+
+\begin{figure}[htb]
+  \centering
+  
+  \caption{Schema delle operazioni del VFS}
+  \label{fig:fileintro_VFS_scheme}
+\end{figure}
 
 La funzione più importante implementata dal VFS è la system call \texttt{open}
 che permette di aprire un file. Dato un pathname viene eseguita una ricerca
@@ -220,7 +233,7 @@ torneremo su questo in maggiori dettagli in seguito in \secref{sec:proc_perms}.
 
 Come detto in precedenza esistono vari tipi di oggetti implementati del VFS
 per i quali è disponibile l'interfaccia astratta da esso provveduta. Un elenco
-dei vari tipi di file è il seguente:
+dei vari tipi di file definiti nel VFS è il seguente:
  
 \begin{table}[htb]
   \begin{center}
@@ -266,7 +279,8 @@ Una seconda differenza 
 codificata in maniera diversa da Windows o MacIntosh, in particolare il fine
 riga è il carattere \texttt{LF} (o \verb|\n|) al posto del \texttt{CR}
 (\verb|\r|) del mac e del \texttt{CR LF} di Windows. Questo può causare alcuni
-problemi qualora si facciano assunzioni sul terminatore della riga.
+problemi qualora nei programmi si facciano assunzioni sul terminatore della
+riga.
 
 
 \section{Una panoramica sull'uso dei file}