Prosegue la risistemazione degli indici. Trattata CLONE_FS.
[gapil.git] / filedir.tex
index 37ca3b647e17385c6c54a6e0324bfb3a89dd5f80..dea3f7fcfbcf5b9816129c2f9a206131fb0280df 100644 (file)
@@ -758,8 +758,8 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   e \param{data} vengono ignorati.
 
   In sostanza quello che avviene è che in corrispondenza del \textit{pathname}
-  indicato da \param{target} viene montato \itindex{inode} l'\textit{inode}
-  di \param{source}, così che la porzione di albero dei file presente sotto
+  indicato da \param{target} viene montato l'\textit{inode} di \param{source},
+  così che la porzione di albero dei file presente sotto
   \param{source} diventi visibile allo stesso modo sotto
   \param{target}. Trattandosi esattamente dei dati dello stesso filesystem,
   ogni modifica fatta in uno qualunque dei due rami di albero sarà visibile
@@ -769,9 +769,9 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   Dal punto di vista del VFS l'operazione è analoga al montaggio di un
   filesystem proprio nel fatto che anche in questo caso si inserisce in
   corrispondenza della \textit{dentry} di \texttt{target} un diverso
-  \itindex{inode} \textit{inode}, che stavolta, invece di essere quello della
-  radice del filesystem indicato da un file di dispositivo, è quello di una
-  directory già montata.
+  \textit{inode}, che stavolta, invece di essere quello della radice del
+  filesystem indicato da un file di dispositivo, è quello di una directory già
+  montata.
 
   Si tenga presente che proprio per questo sotto \param{target} comparirà il
   contenuto che è presente sotto \param{source} all'interno del filesystem in
@@ -856,9 +856,8 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   di dispositivo eventualmente presenti su di esso. L'opzione viene usata come
   misura di precauzione per rendere inutile la presenza di eventuali file di
   dispositivo su filesystem che non dovrebbero contenerne.\footnote{si ricordi
-    che le convenzioni del \itindex{Filesystem~Hierarchy~Standard~(FHS)}
-    \textit{Linux Filesystem Hierarchy Standard} richiedono che questi siano
-    mantenuti esclusivamente sotto \texttt{/dev}.}
+    che le convenzioni del \textit{Linux Filesystem Hierarchy Standard}
+    richiedono che questi siano mantenuti esclusivamente sotto \texttt{/dev}.}
 
   Viene utilizzata, assieme a \const{MS\_NOEXEC} e \const{MS\_NOSUID}, per
   fornire un accesso più controllato a quei filesystem di cui gli utenti hanno
@@ -1284,6 +1283,7 @@ trattazione, di queste funzioni, rimandando al manuale della \acr{glibc}
 % TODO (bassa priorità) documentare ? swapon e swapoff (man 2 ...) 
 
 
+
 \section{La gestione di file e directory}
 \label{sec:file_dir}
 
@@ -1297,7 +1297,6 @@ directory di lavoro e le funzioni per la gestione di file speciali e
 temporanei.
 
 
-
 \subsection{La gestione dei nomi dei file}
 \label{sec:link_symlink_rename}
 
@@ -2014,10 +2013,9 @@ sez.~\ref{sec:files_std_interface}. La prima funzione di questa interfaccia è
 
 La funzione apre un \textit{directory stream} per la directory
 \param{dirname}, ritornando il puntatore ad un oggetto di tipo \type{DIR} (che
-è il \index{tipo!opaco} tipo opaco usato dalle librerie per gestire i
-\textit{directory stream}) da usare per tutte le operazioni successive, la
-funzione inoltre posiziona lo \textit{stream} sulla prima voce contenuta nella
-directory.
+è il tipo opaco usato dalle librerie per gestire i \textit{directory stream})
+da usare per tutte le operazioni successive, la funzione inoltre posiziona lo
+\textit{stream} sulla prima voce contenuta nella directory.
 
 Si tenga presente che comunque la funzione opera associando il
 \textit{directory stream} ad un opportuno file descriptor sottostante, sul
@@ -2059,8 +2057,7 @@ La funzione restituisce il file descriptor associato al \textit{directory
   stream} \param{dir}. Di solito si utilizza questa funzione in abbinamento a
 funzioni che operano sui file descriptor, ad esempio si potrà usare
 \func{fstat} per ottenere le proprietà della directory, o \func{fchdir} per
-spostare su di essa la directory di lavoro (vedi
-sez.~\ref{sec:file_work_dir}).
+spostare su di essa la directory di lavoro (vedi sez.~\ref{sec:file_work_dir}).
 
 Viceversa se si è aperto un file descriptor corrispondente ad una directory è
 possibile associarvi un \textit{directory stream} con la funzione
@@ -2151,12 +2148,12 @@ prototipo è:
   \func{readdir}.} 
 \end{funcproto}
 
-La funzione restituisce in \param{result} come \itindex{value~result~argument}
-\textit{value result argument} l'indirizzo della struttura \struct{dirent}
-dove sono stati salvati i dati, che deve essere allocata dal chiamante, ed il
-cui indirizzo deve essere indicato con l'argomento \param{entry}.  Se si è
-raggiunta la fine del \textit{directory stream} invece in \param{result} viene
-restituito il valore \val{NULL}.
+La funzione restituisce in \param{result} come \textit{value result argument}
+l'indirizzo della struttura \struct{dirent} dove sono stati salvati i dati,
+che deve essere allocata dal chiamante, ed il cui indirizzo deve essere
+indicato con l'argomento \param{entry}.  Se si è raggiunta la fine del
+\textit{directory stream} invece in \param{result} viene restituito il valore
+\val{NULL}.
 
 \begin{figure}[!htb]
   \footnotesize \centering
@@ -2380,10 +2377,10 @@ restituendo un valore positivo, nullo o negativo per indicarne l'ordinamento;
 alla fine l'indirizzo della lista ordinata dei puntatori alle strutture
 \struct{dirent} viene restituito nell'argomento
 \param{namelist}.\footnote{la funzione alloca automaticamente la lista, e
-  restituisce, come \itindex{value~result~argument} \textit{value result
-    argument}, l'indirizzo della stessa; questo significa che \param{namelist}
-  deve essere dichiarato come \code{struct dirent **namelist} ed alla funzione
-  si deve passare il suo indirizzo.}
+  restituisce, come \textit{value result argument}, l'indirizzo della stessa;
+  questo significa che \param{namelist} deve essere dichiarato come
+  \code{struct dirent **namelist} ed alla funzione si deve passare il suo
+  indirizzo.}
 
 \itindend{directory~stream}
 
@@ -2756,10 +2753,9 @@ serie 2.4 alla serie 2.6 è stata aumentata a 32 bit la dimensione del tipo
 \type{dev\_t}, con delle dimensioni passate a 12 bit per il
 \itindex{major~number} \textit{major number} e 20 bit per il
 \itindex{minor~number} \textit{minor number}. La transizione però ha
-comportato il fatto che \type{dev\_t} è diventato un \index{tipo!opaco} tipo
-opaco, e la necessità di specificare il numero tramite delle opportune macro,
-così da non avere problemi di compatibilità con eventuali ulteriori
-estensioni.
+comportato il fatto che \type{dev\_t} è diventato un tipo opaco, e la
+necessità di specificare il numero tramite delle opportune macro, così da non
+avere problemi di compatibilità con eventuali ulteriori estensioni.
 
 Le macro sono definite nel file \headfile{sys/sysmacros.h},\footnote{se si usa
   la \acr{glibc} dalla versione 2.3.3 queste macro sono degli alias alle
@@ -4190,14 +4186,14 @@ memoria virtuale e l'accesso ai file erano molto meno sofisticati e per
 ottenere la massima velocità possibile per i programmi usati più comunemente
 si poteva impostare questo bit.
 
-L'effetto di questo bit era che il \index{segmento!testo} segmento di testo
-del programma (si veda sez.~\ref{sec:proc_mem_layout} per i dettagli) veniva
-scritto nella swap la prima volta che questo veniva lanciato, e vi permaneva
-fino al riavvio della macchina (da questo il nome di \textsl{sticky bit});
-essendo la swap un file continuo o una partizione indicizzata direttamente si
-poteva risparmiare in tempo di caricamento rispetto alla ricerca attraverso la
-struttura del filesystem. Lo \textsl{sticky bit} è indicato usando la lettera
-``\texttt{t}'' al posto della ``\texttt{x}'' nei permessi per gli altri.
+L'effetto di questo bit era che il segmento di testo del programma (si veda
+sez.~\ref{sec:proc_mem_layout} per i dettagli) veniva scritto nella swap la
+prima volta che questo veniva lanciato, e vi permaneva fino al riavvio della
+macchina (da questo il nome di \textsl{sticky bit}); essendo la swap un file
+continuo o una partizione indicizzata direttamente si poteva risparmiare in
+tempo di caricamento rispetto alla ricerca attraverso la struttura del
+filesystem. Lo \textsl{sticky bit} è indicato usando la lettera ``\texttt{t}''
+al posto della ``\texttt{x}'' nei permessi per gli altri.
 
 Ovviamente per evitare che gli utenti potessero intasare la swap solo
 l'amministratore era in grado di impostare questo bit, che venne chiamato
@@ -5363,16 +5359,16 @@ voci. La funzione ritorna un valore di tipo \type{acl\_t} da usare in tutte le
 altre funzioni che operano sulla ACL. La funzione si limita alla allocazione
 iniziale e non inserisce nessun valore nella ACL che resta vuota. 
 
-Si tenga presente che pur essendo \type{acl\_t} un \index{tipo!opaco} tipo
-opaco che identifica ``\textsl{l'oggetto}'' ACL, il valore restituito dalla
-funzione non è altro che un puntatore all'area di memoria allocata per i dati
-richiesti. Pertanto in caso di fallimento verrà restituito un puntatore nullo
-di tipo ``\code{(acl\_t) NULL}'' e si dovrà, in questa come in tutte le
-funzioni seguenti che restituiscono un oggetto di tipo \type{acl\_t},
-confrontare il valore di ritorno della funzione con \val{NULL}.\footnote{a
-  voler essere estremamente pignoli si dovrebbe usare ``\code{(acl\_t)
-    NULL}'', ma è sufficiente fare un confronto direttamente con \val{NULL}
-  essendo cura del compilatore fare le conversioni necessarie.}
+Si tenga presente che pur essendo \type{acl\_t} un tipo opaco che identifica
+``\textsl{l'oggetto}'' ACL, il valore restituito dalla funzione non è altro
+che un puntatore all'area di memoria allocata per i dati richiesti. Pertanto
+in caso di fallimento verrà restituito un puntatore nullo di tipo
+``\code{(acl\_t) NULL}'' e si dovrà, in questa come in tutte le funzioni
+seguenti che restituiscono un oggetto di tipo \type{acl\_t}, confrontare il
+valore di ritorno della funzione con \val{NULL}.\footnote{a voler essere
+  estremamente pignoli si dovrebbe usare ``\code{(acl\_t) NULL}'', ma è
+  sufficiente fare un confronto direttamente con \val{NULL} essendo cura del
+  compilatore fare le conversioni necessarie.}
 
 Una volta che si siano completate le operazioni sui dati di una ACL la memoria
 allocata per un oggetto \type{acl\_t} dovrà essere liberata esplicitamente
@@ -5622,9 +5618,9 @@ contenente la rappresentazione in forma estesa della ACL passata come
 argomento, ed alloca automaticamente la memoria necessaria. Questa dovrà poi
 essere liberata, quando non più necessaria, con \func{acl\_free}. Se
 nell'argomento \param{len\_p} si passa un valore puntatore ad una variabile
-intera in questa verrà restituita (come \itindex{value~result~argument}
-\textit{value result argument}) la dimensione della stringa con la
-rappresentazione testuale, non comprendente il carattere nullo finale.
+intera in questa verrà restituita (come \textit{value result argument}) la
+dimensione della stringa con la rappresentazione testuale, non comprendente il
+carattere nullo finale.
 
 La seconda funzione, che permette di controllare con una gran dovizia di
 particolari la generazione della stringa contenente la rappresentazione
@@ -6864,8 +6860,7 @@ opportuno dettagliare maggiormente.
 % Linux specific capabilities
 %
 \hline
-    \const{CAP\_IPC\_LOCK}  & Effettuare il \textit{memory
-                              locking} \itindex{memory~locking} con le
+    \const{CAP\_IPC\_LOCK}  & Effettuare il \textit{memory locking} con le
                               funzioni \func{mlock}, \func{mlockall},
                               \func{shmctl}, \func{mmap} (vedi
                               sez.~\ref{sec:proc_mem_lock} e 
@@ -6875,8 +6870,7 @@ opportuno dettagliare maggiormente.
                               per le operazioni sugli oggetti di
                               intercomunicazione fra processi (vedi
                               sez.~\ref{sec:ipc_sysv}).\\  
-    \const{CAP\_LEASE}      & Creare dei \textit{file lease}
-                              \itindex{file~lease} (vedi
+    \const{CAP\_LEASE}      & Creare dei \textit{file lease} (vedi
                               sez.~\ref{sec:file_asyncronous_lease})
                               pur non essendo proprietari del file (dal kernel
                               2.4).\\ 
@@ -7135,8 +7129,8 @@ della suddetta libreria attraverso l'opzione \texttt{-lcap}.
 \itindbeg{capability~state}
 
 Le funzioni dell'interfaccia alle \textit{capabilities} definite nelle bozze
-dello standard POSIX.1e prevedono l'uso di un \index{tipo!opaco} tipo di dato
-opaco, \type{cap\_t}, come puntatore ai dati mantenuti nel cosiddetto
+dello standard POSIX.1e prevedono l'uso di un tipo di dato opaco,
+\type{cap\_t}, come puntatore ai dati mantenuti nel cosiddetto
 \textit{capability state},\footnote{si tratta in sostanza di un puntatore ad
   una struttura interna utilizzata dalle librerie, i cui campi non devono mai
   essere acceduti direttamente.} in sono memorizzati tutti i dati delle
@@ -7383,9 +7377,8 @@ tab.~\ref{tab:cap_value_type}.
 
 La funzione \func{cap\_get\_flag} legge lo stato della capacità indicata
 dall'argomento \param{cap} all'interno dell'insieme indicato dall'argomento
-\param{flag} e lo restituisce come \itindex{value~result~argument}
-\textit{value result argument} nella variabile puntata
-dall'argomento \param{value\_p}. Questa deve essere di tipo
+\param{flag} e lo restituisce come \textit{value result argument} nella
+variabile puntata dall'argomento \param{value\_p}. Questa deve essere di tipo
 \type{cap\_flag\_value\_t} ed assumerà uno dei valori di
 tab.~\ref{tab:cap_value_type}. La funzione consente pertanto di leggere solo
 lo stato di una capacità alla volta.
@@ -7421,10 +7414,10 @@ testuale, è \funcd{cap\_to\_text}, il cui prototipo è:
 La funzione ritorna l'indirizzo di una stringa contente la descrizione
 testuale del contenuto del \textit{capability state} \param{caps} passato come
 argomento, e, qualora l'argomento \param{length\_p} sia diverso da \val{NULL},
-restituisce come \itindex{value~result~argument} \textit{value result
-  argument} nella variabile intera da questo puntata la lunghezza della
-stringa. La stringa restituita viene allocata automaticamente dalla funzione e
-pertanto dovrà essere liberata con \func{cap\_free}.
+restituisce come \textit{value result argument} nella variabile intera da
+questo puntata la lunghezza della stringa. La stringa restituita viene
+allocata automaticamente dalla funzione e pertanto dovrà essere liberata con
+\func{cap\_free}.
 
 La rappresentazione testuale, che viene usata anche dai programmi di gestione a
 riga di comando, prevede che lo stato venga rappresentato con una stringa di
@@ -7523,9 +7516,8 @@ Linux ed i rispettivi prototipi sono:
 La prima funzione restituisce la stringa (allocata automaticamente e che dovrà
 essere liberata con \func{cap\_free}) che corrisponde al valore della
 capacità \param{cap}, mentre la seconda restituisce nella variabile puntata
-da \param{cap\_p}, come \itindex{value~result~argument} \textit{value result
-  argument}, il valore della capacità rappresentata dalla
-stringa \param{name}.
+da \param{cap\_p}, come \textit{value result argument}, il valore della
+capacità rappresentata dalla stringa \param{name}.
 
 Fin quei abbiamo trattato solo le funzioni di servizio relative alla
 manipolazione dei \textit{capability state} come strutture di dati;