Roba rimasta indietro
[gapil.git] / filedir.tex
index 42e71e5b012aacf5c5f4faa4293d40dbbb5a2f2d..1daeb4e0c0458a4a8ffac4ef33879defc9079326 100644 (file)
@@ -1,6 +1,6 @@
 %% filedir.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@ -107,7 +107,7 @@ restituisce una \textit{dentry}, abbreviazione che sta per \textit{directory
   entry}. Le \textit{dentry} sono gli oggetti che il kernel usa per eseguire
 la \textit{pathname resolution}, ciascuna di esse corrisponde ad un
 \textit{pathname} e contiene il riferimento ad un \textit{inode}, che come
-vedremo a breve è l'oggetto usato dal kernel per identificare un un
+vedremo a breve è l'oggetto usato dal kernel per identificare un
 file.\footnote{in questo caso si parla di file come di un qualunque oggetto
   generico che sta sul filesystem e non dell'oggetto file del VFS cui
   accennavamo prima.} La \textit{dentry} ottenuta dalla chiamata alla funzione
@@ -232,7 +232,7 @@ tab.~\ref{tab:file_inode_operations} le più rilevanti.
     \hline
   \end{tabular}
   \caption{Le principali operazioni sugli \textit{inode} definite tramite
-    \kstruct{inode\_operation}.} 
+    \kstructd{inode\_operation}.} 
   \label{tab:file_inode_operations}
 \end{table}
 
@@ -328,7 +328,7 @@ tab.~\ref{tab:file_file_operations} le più significative.
                              sez.~\ref{sec:file_asyncronous_io}) sul file.\\
     \hline
   \end{tabular}
-  \caption{Operazioni sui file definite tramite \kstruct{file\_operation}.}
+  \caption{Operazioni sui file definite tramite \kstructd{file\_operation}.}
   \label{tab:file_file_operations}
 \end{table}
 
@@ -345,11 +345,11 @@ Il VFS realizza la quasi totalità delle operazioni relative ai file grazie
 alle funzioni presenti nelle due strutture \kstruct{inode\_operation} e
 \kstruct{file\_operation}.  Ovviamente non è detto che tutte le operazioni
 possibili siano poi disponibili in tutti i casi, ad esempio \code{llseek} non
-sarà presente per un dispositivo come la porta seriale o per una fifo, mentre
-sui file del filesystem \texttt{vfat} non saranno disponibili i permessi, ma
-resta il fatto che grazie al VFS le \textit{system call} per le operazioni sui
-file possono restare sempre le stesse nonostante le enormi differenze che
-possono esserci negli oggetti a cui si applicano.
+sarà presente per un dispositivo come la porta seriale o per una
+\textit{fifo}, mentre sui file del filesystem \texttt{vfat} non saranno
+disponibili i permessi, ma resta il fatto che grazie al VFS le \textit{system
+  call} per le operazioni sui file possono restare sempre le stesse nonostante
+le enormi differenze che possono esserci negli oggetti a cui si applicano.
  
 
 \itindend{Virtual~File~System~(VFS)}
@@ -399,7 +399,7 @@ per i dati in essi contenuti.
 
 \begin{figure}[!htb]
   \centering
-  \includegraphics[width=12cm]{img/disk_struct}
+  \includegraphics[width=11cm]{img/disk_struct}
   \caption{Organizzazione dello spazio su un disco in partizioni e
   filesystem.}
   \label{fig:file_disk_filesys}
@@ -414,7 +414,7 @@ esposto in fig.~\ref{fig:file_filesys_detail}.
 
 \begin{figure}[!htb]
   \centering
-  \includegraphics[width=12cm]{img/filesys_struct}
+  \includegraphics[width=11cm]{img/filesys_struct}
   \caption{Strutturazione dei dati all'interno di un filesystem.}
   \label{fig:file_filesys_detail}
 \end{figure}
@@ -698,7 +698,7 @@ indietro al kernel ad ogni scrittura.\footnote{costituiscono quindi un
 
 Il tipo di filesystem che si vuole montare è specificato
 dall'argomento \param{filesystemtype}, che deve essere una delle stringhe
-riportate nel file \procfile{/proc/filesystems} che, come accennato in
+riportate nel file \procfilem{/proc/filesystems} che, come accennato in
 sez.~\ref{sec:file_vfs_work}, contiene l'elenco dei filesystem supportati dal
 kernel. Nel caso si sia indicato un filesystem virtuale, che non è associato a
 nessun file di dispositivo, il contenuto di \param{source} viene ignorato.
@@ -739,9 +739,9 @@ In Linux \param{mountflags} deve essere un intero a 32 bit; fino ai kernel
 della serie 2.2.x i 16 più significativi avevano un valore riservato che
 doveva essere specificato obbligatoriamente,\footnote{il valore era il
   \textit{magic number} \code{0xC0ED}, si può usare la costante
-  \const{MS\_MGC\_MSK} per ottenere la parte di \param{mountflags} riservata
+  \constd{MS\_MGC\_MSK} per ottenere la parte di \param{mountflags} riservata
   al \textit{magic number}, mentre per specificarlo si può dare un OR
-  aritmetico con la costante \const{MS\_MGC\_VAL}.} e si potevano usare solo i
+  aritmetico con la costante \constd{MS\_MGC\_VAL}.} e si potevano usare solo i
 16 meno significativi. Oggi invece, con un numero di opzioni superiore, sono
 utilizzati tutti e 32 i bit, ma qualora nei 16 più significativi sia presente
 detto valore, che non esprime una combinazione valida, esso viene ignorato. Il
@@ -751,7 +751,7 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
 
 \begin{basedescript}{\desclabelwidth{2.cm}\desclabelstyle{\nextlinelabel}}
 \itindbeg{bind~mount}
-\item[\const{MS\_BIND}] Effettua un cosiddetto \textit{bind mount}, in cui è
+\item[\constd{MS\_BIND}] Effettua un cosiddetto \textit{bind mount}, in cui è
   possibile montare una directory di un filesystem in un'altra directory,
   l'opzione è disponibile a partire dai kernel della serie 2.4. In questo caso
   verranno presi in considerazione solo gli argomenti \param{source}, che
@@ -810,7 +810,7 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
 
 \itindend{bind~mount}
 
-\item[\const{MS\_DIRSYNC}] Richiede che ogni modifica al contenuto di una
+\item[\constd{MS\_DIRSYNC}] Richiede che ogni modifica al contenuto di una
   directory venga immediatamente registrata su disco in maniera sincrona
   (introdotta a partire dai kernel della serie 2.6). L'opzione si applica a
   tutte le directory del filesystem, ma su alcuni filesystem è possibile
@@ -824,13 +824,13 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   operazioni sulle directory non saranno più bufferizzate e si bloccheranno
   fino all'arrivo dei dati sul disco prima che un programma possa proseguire.
 
-\item[\const{MS\_MANDLOCK}] Consente l'uso del \textit{mandatory locking}
+\item[\constd{MS\_MANDLOCK}] Consente l'uso del \textit{mandatory locking}
   (vedi sez.~\ref{sec:file_mand_locking}) sui file del filesystem. Per poterlo
   utilizzare effettivamente però esso dovrà essere comunque attivato
   esplicitamente per i singoli file impostando i permessi come illustrato in
   sez.~\ref{sec:file_mand_locking}.
 
-\item[\const{MS\_MOVE}] Effettua uno del spostamento del \textit{mount point}
+\item[\constd{MS\_MOVE}] Effettua uno del spostamento del \textit{mount point}
   di un filesystem. La directory del \textit{mount point} originale deve
   essere indicata nell'argomento \param{source}, e la sua nuova posizione
   nell'argomento \param{target}. Tutti gli altri argomenti della funzione
@@ -840,10 +840,9 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   sotto \param{source} sarà immediatamente visibile sotto \param{target}. Non
   esiste cioè nessun momento in cui il filesystem non risulti montato in una o
   nell'altra directory e pertanto è garantito che la risoluzione di
-  \itindsub{pathname}{relativo} \textit{pathname} relativi all'interno del
-  filesystem non possa fallire.
+  \textit{pathname} relativi all'interno del filesystem non possa fallire.
 
-\item[\const{MS\_NOATIME}] Viene disabilitato sul filesystem l'aggiornamento
+\item[\constd{MS\_NOATIME}] Viene disabilitato sul filesystem l'aggiornamento
   degli \textit{access time} (vedi sez.~\ref{sec:file_file_times}) per
   qualunque tipo di file. Dato che l'aggiornamento degli \textit{access time}
   è una funzionalità la cui utilità è spesso irrilevante ma comporta un costo
@@ -855,7 +854,7 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   sviluppo del kernel sono state introdotte altre opzioni che forniscono
   soluzioni più appropriate e meno radicali.
 
-\item[\const{MS\_NODEV}] Viene disabilitato sul filesystem l'accesso ai file
+\item[\constd{MS\_NODEV}] Viene disabilitato sul filesystem l'accesso ai file
   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
@@ -870,14 +869,14 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   dispositivo con permessi ``opportunamente'' ampliati che gli consentirebbero
   di accedere anche a risorse cui non dovrebbe.
 
-\item[\const{MS\_NODIRATIME}] Viene disabilitato sul filesystem
+\item[\constd{MS\_NODIRATIME}] Viene disabilitato sul filesystem
   l'aggiornamento degli \textit{access time} (vedi
   sez.~\ref{sec:file_file_times}), ma soltanto per le directory. Costituisce
   una alternativa per \const{MS\_NOATIME}, che elimina l'informazione per le
   directory, che in pratica che non viene mai utilizzata, mantenendola per i
   file in cui invece ha un impiego, sia pur limitato.
 
-\item[\const{MS\_NOEXEC}] Viene disabilitata sul filesystem l'esecuzione di un
+\item[\constd{MS\_NOEXEC}] Viene disabilitata sul filesystem l'esecuzione di un
   qualunque file eseguibile eventualmente presente su di esso. L'opzione viene
   usata come misura di precauzione per rendere impossibile l'uso di programmi
   posti su filesystem che non dovrebbero contenerne.
@@ -893,7 +892,7 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
     vuole che gli utenti eseguano solo i programmi forniti
     dall'amministratore.}
 
-\item[\const{MS\_NOSUID}] Viene disabilitato sul filesystem l'effetto dei bit
+\item[\constd{MS\_NOSUID}] Viene disabilitato sul filesystem l'effetto dei bit
   dei permessi \acr{suid} e \acr{sgid} (vedi sez.~\ref{sec:file_special_perm})
   eventualmente presenti sui file in esso contenuti. L'opzione viene usata
   come misura di precauzione per rendere inefficace l'effetto di questi bit
@@ -908,7 +907,7 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   di un altro utente, che gli consentirebbe di eseguirlo per conto di
   quest'ultimo.
 
-\item[\const{MS\_PRIVATE}] Marca un \textit{mount point} come privato. Si
+\item[\constd{MS\_PRIVATE}] Marca un \textit{mount point} come privato. Si
   tratta di una delle nuove opzioni (insieme a \const{MS\_SHARED},
   \const{MS\_SLAVE} e \const{MS\_UNBINDABLE}) facenti parte
   dell'infrastruttura degli \textit{shared subtree} introdotta a partire dal
@@ -923,14 +922,14 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   \const{MS\_BIND}. Si usa questo flag principalmente per revocare gli effetti
   delle altre opzioni e riportare il comportamento a quello ordinario.
 
-\item[\const{MS\_RDONLY}] Esegue il montaggio del filesystem in sola lettura,
+\item[\constd{MS\_RDONLY}] Esegue il montaggio del filesystem in sola lettura,
   non sarà possibile nessuna modifica ai suoi contenuti. Viene usato tutte le
   volte che si deve accedere ai contenuti di un filesystem con la certezza che
   questo non venga modificato (ad esempio per ispezionare un filesystem
   corrotto). All'avvio di default il kernel monta la radice in questa
   modalità.
 
-\item[\const{MS\_REC}] Applica ricorsivamente a tutti i \textit{mount point}
+\item[\constd{MS\_REC}] Applica ricorsivamente a tutti i \textit{mount point}
   presenti al di sotto del \textit{mount point} indicato gli effetti della
   opzione degli \textit{shared subtree} associata. Anche questo caso
   l'argomento \param{target} deve fare riferimento ad un \textit{mount point}
@@ -941,7 +940,7 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   % TODO trattare l'opzione \texttt{lazytime} introdotta con il kernel 4.0,
   % vedi http://lwn.net/Articles/621046/
 
-\item[\const{MS\_RELATIME}] Indica di effettuare l'aggiornamento degli
+\item[\constd{MS\_RELATIME}] Indica di effettuare l'aggiornamento degli
   \textit{access time} sul filesystem soltanto quando questo risulti
   antecedente il valore corrente del \textit{modification time} o del
   \textit{change time} (per i tempi dei file si veda
@@ -962,7 +961,7 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   l'introduzione di questo comportamento l'uso delle alternative
   \const{MS\_NOATIME} e \const{MS\_NODIRATIME} è sostanzialmente inutile.
 
-\item[\const{MS\_REMOUNT}] Consente di rimontare un filesystem già montato
+\item[\constd{MS\_REMOUNT}] Consente di rimontare un filesystem già montato
   cambiandone le opzioni di montaggio in maniera atomica. In questo modo si
   possono modificare le opzioni del filesystem anche se questo è in uso. Gli
   argomenti \param{source} e \param{target} devono essere gli stessi usati per
@@ -979,7 +978,7 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
 
 \itindbeg{shared~subtree}
 
-\item[\const{MS\_SHARED}] Marca un \textit{mount point} come \textit{shared
+\item[\constd{MS\_SHARED}] Marca un \textit{mount point} come \textit{shared
     mount}. Si tratta di una delle nuove opzioni (insieme a
   \const{MS\_PRIVATE}, \const{MS\_SLAVE} e \const{MS\_UNBINDABLE}) facenti
   parte dell'infrastruttura dei cosiddetti \textit{shared subtree} introdotta
@@ -1000,13 +999,13 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
 
 \itindend{shared~subtree}
 
-\item[\const{MS\_SILENT}] Richiede la soppressione di alcuni messaggi di
+\item[\constd{MS\_SILENT}] Richiede la soppressione di alcuni messaggi di
   avvertimento nei log del kernel (vedi sez.~\ref{sec:sess_daemon}). L'opzione
   è presente a partire dal kernel 2.6.17 e sostituisce, utilizzando un nome
   non fuorviante, la precedente \const{MS\_VERBOSE}, introdotta nel kernel
   2.6.12, che aveva lo stesso effetto.
 
-\item[\const{MS\_SLAVE}] Marca un \textit{mount point} come \textit{slave
+\item[\constd{MS\_SLAVE}] Marca un \textit{mount point} come \textit{slave
     mount}. Si tratta di una delle nuove opzioni (insieme a
   \const{MS\_PRIVATE}, \const{MS\_SHARED} e \const{MS\_UNBINDABLE}) facenti
   parte dell'infrastruttura degli \textit{shared subtree} introdotta a partire
@@ -1024,13 +1023,13 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   essi potranno eseguire al loro interno ulteriori montaggi che non saranno
   propagati né negli altri né nel \textit{mount point} originale.
 
-\item[\const{MS\_STRICTATIME}] Ripristina il comportamento tradizionale per
+\item[\constd{MS\_STRICTATIME}] Ripristina il comportamento tradizionale per
   cui l'\textit{access time} viene aggiornato ad ogni accesso al
   file. L'opzione è disponibile solo a partire dal kernel 2.6.30 quando il
   comportamento di default del kernel è diventato quello fornito da
   \const{MS\_RELATIME}.
 
-\item[\const{MS\_SYNCHRONOUS}] Abilita la scrittura sincrona richiedendo che
+\item[\constd{MS\_SYNCHRONOUS}] Abilita la scrittura sincrona richiedendo che
   ogni modifica al contenuto del filesystem venga immediatamente registrata su
   disco. Lo stesso comportamento può essere ottenuto con il flag
   \const{O\_SYNC} di \func{open} (vedi sez.~\ref{sec:file_open_close}).
@@ -1042,7 +1041,7 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   compromesso in cui questo comportamento avviene solo per le directory, ed ha
   quindi una incidenza nettamente minore, si può usare \const{MS\_DIRSYNC}.
 
-\item[\const{MS\_UNBINDABLE}] Marca un \textit{mount point} come
+\item[\constd{MS\_UNBINDABLE}] Marca un \textit{mount point} come
   \textit{unbindable mount}. Si tratta di una delle nuove opzioni (insieme a
   \const{MS\_PRIVATE}, \const{MS\_SHARED} e \const{MS\_SLAVE}) facenti parte
   dell'infrastruttura degli \textit{shared subtree} introdotta a partire dal
@@ -1135,7 +1134,7 @@ un filesystem anche quando questo risulti occupato; il suo prototipo è:
 Il valore di \param{flags} è una maschera binaria dei flag che controllano le
 modalità di smontaggio, che deve essere specificato con un OR aritmetico delle
 costanti illustrate in tab.~\ref{tab:umount2_flags}.  Specificando
-\const{MNT\_FORCE} la funzione cercherà di liberare il filesystem anche se è
+\constd{MNT\_FORCE} la funzione cercherà di liberare il filesystem anche se è
 occupato per via di una delle condizioni descritte in precedenza. A seconda
 del tipo di filesystem alcune (o tutte) possono essere superate, evitando
 l'errore di \errcode{EBUSY}. In tutti i casi prima dello smontaggio viene
@@ -1150,20 +1149,21 @@ eseguita una sincronizzazione dei dati.
     \hline
     \hline
     \const{MNT\_FORCE}  & Forza lo smontaggio del filesystem anche se questo è
-                          occupato (presente dai kernel della serie 2.2).\\
+                           occupato (presente dai kernel della serie 2.2).\\
     \const{MNT\_DETACH} & Esegue uno smontaggio ``\textsl{pigro}'', in cui si
-                          blocca l'accesso ma si aspetta che il filesystem si
-                          liberi (presente dal kernel 2.4.11 e dalla
-                          \acr{glibc} 2.11).\\ 
+                           blocca l'accesso ma si aspetta che il filesystem si
+                           liberi (presente dal kernel 2.4.11 e dalla
+                           \acr{glibc} 2.11).\\ 
     \const{MNT\_EXPIRE} & Se non occupato marca un \textit{mount point} come
-                          ``\textsl{in scadenza}'' in modo che ad una
-                          successiva chiamata senza utilizzo del filesystem
-                          questo venga smontato (presente dal 
-                          kernel 2.6.8 e dalla \acr{glibc} 2.11).\\ 
+                           ``\textsl{in scadenza}'' in modo che ad una
+                           successiva chiamata senza utilizzo del filesystem
+                           questo venga smontato (presente dal 
+                           kernel 2.6.8 e dalla \acr{glibc} 2.11).\\ 
     \const{UMOUNT\_NOFOLLOW}& Non dereferenzia \param{target} se questo è un
-                          collegamento simbolico (vedi
-                          sez.~\ref{sec:link_symlink_rename}) evitando
-                          problemi di sicurezza (presente dal kernel 2.6.34).\\ 
+                               collegamento simbolico (vedi
+                               sez.~\ref{sec:link_symlink_rename}) evitando
+                               problemi di sicurezza (presente dal kernel
+                               2.6.34).\\  
     \hline
   \end{tabular}
   \caption{Costanti che identificano i bit dell'argomento \param{flags}
@@ -1171,13 +1171,13 @@ eseguita una sincronizzazione dei dati.
   \label{tab:umount2_flags}
 \end{table}
 
-Con l'opzione \const{MNT\_DETACH} si richiede invece uno smontaggio
+Con l'opzione \constd{MNT\_DETACH} si richiede invece uno smontaggio
 ``\textsl{pigro}'' (o \textit{lazy umount}) in cui il filesystem diventa
 inaccessibile per i nuovi processi subito dopo la chiamata della funzione, ma
 resta accessibile per quelli che lo hanno ancora in uso e non viene smontato
 fintanto che resta occupato.
 
-Con \const{MNT\_EXPIRE}, che non può essere specificato insieme agli altri
+Con \constd{MNT\_EXPIRE}, che non può essere specificato insieme agli altri
 due, si marca il \textit{mount point} di un filesystem non occupato come
 ``\textsl{in scadenza}'', in tal caso \func{umount2} ritorna con un errore di
 \errcode{EAGAIN}, mentre in caso di filesystem occupato si sarebbe ricevuto
@@ -1187,7 +1187,7 @@ verrà smontato. Questo flag consente di realizzare un meccanismo che smonti
 automaticamente i filesystem che restano inutilizzati per un certo periodo di
 tempo.
 
-Infine il flag \const{UMOUNT\_NOFOLLOW} non dereferenzia \param{target} se
+Infine il flag \constd{UMOUNT\_NOFOLLOW} non dereferenzia \param{target} se
 questo è un collegamento simbolico (vedi
 sez.~\ref{sec:link_symlink_rename}). Questa è una misura di sicurezza
 introdotta per evitare, per quei filesystem per il quale è prevista una
@@ -1248,17 +1248,19 @@ del filesystem stesso.
   \label{fig:sys_statfs}
 \end{figure}
 
+\conffilebeg{/etc/mtab} 
+
 La \acr{glibc} provvede infine una serie di funzioni per la gestione dei due
-file \conffile{/etc/fstab}\footnote{più precisamente \funcm{setfsent},
+file \conffiled{/etc/fstab}\footnote{più precisamente \funcm{setfsent},
   \funcm{getfsent}, \funcm{getfsfile}, \funcm{getfsspec}, \funcm{endfsent}.}
 ed \conffile{/etc/mtab}\footnote{più precisamente \funcm{setmntent},
   \funcm{getmntent},\funcm{getmntent\_r}, \funcm{addmntent},\funcm{endmntent},
   \funcm{hasmntopt}.} che convenzionalmente sono usati in quasi tutti i
 sistemi unix-like per mantenere rispettivamente le informazioni riguardo ai
 filesystem da montare e a quelli correntemente montati. Le funzioni servono a
-leggere il contenuto di questi file in opportune strutture \struct{fstab} e
-\struct{mntent}, e, nel caso di \conffile{/etc/mtab}, per inserire e rimuovere
-le voci presenti nel file.
+leggere il contenuto di questi file in opportune strutture \structd{fstab} e
+\structd{mntent}, e, nel caso di \conffile{/etc/mtab}, per inserire e
+rimuovere le voci presenti nel file.
 
 In generale si dovrebbero usare queste funzioni, in particolare quelle
 relative a \conffile{/etc/mtab}, quando si debba scrivere un programma che
@@ -1276,6 +1278,8 @@ disponibile e sempre aggiornata. Per questo motivo tralasceremo la
 trattazione, di queste funzioni, rimandando al manuale della \acr{glibc}
 \cite{GlibcMan} per la documentazione completa.
 
+\conffileend{/etc/mtab}
+
 % TODO (bassa priorità) scrivere delle funzioni (getfsent e getmntent &C)
 % TODO (bassa priorità) documentare ? swapon e swapoff (man 2 ...) 
 
@@ -1607,7 +1611,7 @@ nella directory porterebbe il comando ad esaminare \file{/boot},
 Per questo motivo il kernel e le librerie prevedono che nella risoluzione di
 un \textit{pathname} possano essere seguiti fino ad un certo numero massimo di
 collegamenti simbolici, il cui valore limite è specificato dalla costante
-\const{MAXSYMLINKS}. Qualora questo limite venga superato viene generato un
+\constd{MAXSYMLINKS}. Qualora questo limite venga superato viene generato un
 errore ed \var{errno} viene impostata al valore \errcode{ELOOP}, che nella
 quasi totalità dei casi indica appunto che si è creato un collegamento
 simbolico che fa riferimento ad una directory del suo stesso
@@ -1688,11 +1692,11 @@ La funzione elimina il nome specificato dall'argomento \param{pathname} nella
 directory che lo contiene e decrementa il numero di riferimenti nel relativo
 \textit{inode}.\footnote{come per \func{link} queste due operazioni sono
   effettuate all'interno della \textit{system call} in maniera atomica.} Nel
-caso di socket, fifo o file di dispositivo rimuove il nome, ma come per i file
-normali i processi che hanno aperto uno di questi oggetti possono continuare
-ad utilizzarli.  Nel caso di cancellazione di un collegamento simbolico, che
-consiste solo nel rimando ad un altro file, questo viene immediatamente
-eliminato.
+caso di socket, \textit{fifo} o file di dispositivo rimuove il nome, ma come
+per i file normali i processi che hanno aperto uno di questi oggetti possono
+continuare ad utilizzarli.  Nel caso di cancellazione di un collegamento
+simbolico, che consiste solo nel rimando ad un altro file, questo viene
+immediatamente eliminato.
 
 Per cancellare una voce in una directory è necessario avere il permesso di
 scrittura su di essa, dato che si va a rimuovere una voce dal suo contenuto, e
@@ -2001,7 +2005,7 @@ sez.~\ref{sec:files_std_interface}. La prima funzione di questa interfaccia è
 \end{funcproto}
 
 La funzione apre un \textit{directory stream} per la directory
-\param{dirname}, ritornando il puntatore ad un oggetto di tipo \type{DIR} (che
+\param{dirname}, ritornando il puntatore ad un oggetto di tipo \typed{DIR} (che
 è 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.
@@ -2171,9 +2175,9 @@ terminata da uno zero, ed il campo \var{d\_ino}, che contiene il numero di
 segnalata dalla definizione di altrettante macro nella forma
 \code{\_DIRENT\_HAVE\_D\_XXX} dove \code{XXX} è il nome del relativo
 campo. Come si può evincere da fig.~\ref{fig:file_dirent_struct} nel caso di
-Linux sono pertanto definite le macro \macro{\_DIRENT\_HAVE\_D\_TYPE},
-\macro{\_DIRENT\_HAVE\_D\_OFF} e \macro{\_DIRENT\_HAVE\_D\_RECLEN}, mentre non
-è definita la macro \macro{\_DIRENT\_HAVE\_D\_NAMLEN}.
+Linux sono pertanto definite le macro \macrod{\_DIRENT\_HAVE\_D\_TYPE},
+\macrod{\_DIRENT\_HAVE\_D\_OFF} e \macrod{\_DIRENT\_HAVE\_D\_RECLEN}, mentre non
+è definita la macro \macrod{\_DIRENT\_HAVE\_D\_NAMLEN}.
 
 Dato che possono essere presenti campi opzionali e che lo standard
 POSIX.1-2001 non specifica una dimensione definita per il nome dei file (che
@@ -2192,7 +2196,7 @@ ottenere la dimensione della prima parte con la macro di utilità generica
 \vspace{3pt}
 \begin{funcbox}{
 \fhead{stddef.h}
-\fdecl{size\_t \macro{offsetof}(type, member)}
+\fdecl{size\_t \macrod{offsetof}(type, member)}
 \fdesc{Restituisce la posizione del campo \param{member} nella
   struttura \param{type}.}
 } 
@@ -2207,8 +2211,8 @@ sez.~\ref{sec:sys_file_limits}) più un ulteriore carattere per la terminazione
 della stringa.
 
 Per quanto riguarda il significato dei campi opzionali, il campo \var{d\_type}
-indica il tipo di file (se fifo, directory, collegamento simbolico, ecc.), e
-consente di evitare una successiva chiamata a \func{lstat} (vedi
+indica il tipo di file (se \textit{fifo}, directory, collegamento simbolico,
+ecc.), e consente di evitare una successiva chiamata a \func{lstat} (vedi
 sez.~\ref{sec:file_stat}) per determinarlo. I suoi possibili valori sono
 riportati in tab.~\ref{tab:file_dtype_macro}. Si tenga presente che questo
 valore è disponibile solo per i filesystem che ne supportano la restituzione
@@ -2226,14 +2230,14 @@ valore è disponibile solo per i filesystem che ne supportano la restituzione
     \textbf{Valore} & \textbf{Tipo di file} \\
     \hline
     \hline
-    \const{DT\_UNKNOWN} & Tipo sconosciuto.\\
-    \const{DT\_REG}     & File normale.\\
-    \const{DT\_DIR}     & Directory.\\
-    \const{DT\_LNK}     & Collegamento simbolico.\\
-    \const{DT\_FIFO}    & Fifo.\\
-    \const{DT\_SOCK}    & Socket.\\
-    \const{DT\_CHR}     & Dispositivo a caratteri.\\
-    \const{DT\_BLK}     & Dispositivo a blocchi.\\
+    \constd{DT\_UNKNOWN} & Tipo sconosciuto.\\
+    \constd{DT\_REG}     & File normale.\\
+    \constd{DT\_DIR}     & Directory.\\
+    \constd{DT\_LNK}     & Collegamento simbolico.\\
+    \constd{DT\_FIFO}    & \textit{Fifo}.\\
+    \constd{DT\_SOCK}    & Socket.\\
+    \constd{DT\_CHR}     & Dispositivo a caratteri.\\
+    \constd{DT\_BLK}     & Dispositivo a blocchi.\\
     \hline    
   \end{tabular}
   \caption{Costanti che indicano i vari tipi di file nel campo \var{d\_type}
@@ -2249,10 +2253,10 @@ definite anche due macro di conversione, \macro{IFTODT} e \macro{DTTOIF}:
 \vspace{3pt}
 \begin{funcbox}{
 \fhead{dirent.h}
-\fdecl{int \macro{IFTODT}(mode\_t MODE)}
+\fdecl{int \macrod{IFTODT}(mode\_t MODE)}
 \fdesc{Converte il tipo di file dal formato di \var{st\_mode} a quello di
   \var{d\_type}.}
-\fdecl{mode\_t \macro{DTTOIF}(int DTYPE)}
+\fdecl{mode\_t \macrod{DTTOIF}(int DTYPE)}
 \fdesc{Converte il tipo di file dal formato di \var{d\_type} a quello di
   \var{st\_mode}.}  
 } 
@@ -2498,9 +2502,9 @@ directory nel filesystem,\footnote{questa viene mantenuta all'interno dei dati
   precisamente nel campo \texttt{pwd} della sotto-struttura
   \kstruct{fs\_struct}.} che è chiamata \textsl{directory corrente} o
 \textsl{directory di lavoro} (in inglese \textit{current working directory}).
-La directory di lavoro è quella da cui si parte quando un
-\itindsub{pathname}{relativo} \textit{pathname} è espresso in forma relativa,
-dove il ``\textsl{relativa}'' fa riferimento appunto a questa directory.
+La directory di lavoro è quella da cui si parte quando un \textit{pathname} è
+espresso in forma relativa, dove il ``\textsl{relativa}'' fa riferimento
+appunto a questa directory.
 
 Quando un utente effettua il login, questa directory viene impostata alla
 \textit{home directory} del suo account. Il comando \cmd{cd} della shell
@@ -2639,7 +2643,7 @@ ha il permesso di attraversamento alla directory specificata da \param{fd}.
 Finora abbiamo parlato esclusivamente di file, directory e collegamenti
 simbolici, ma in sez.~\ref{sec:file_file_types} abbiamo visto che il sistema
 prevede anche degli altri tipi di file, che in genere vanno sotto il nome
-generico di \textsl{file speciali}, come i file di dispositivo, le fifo ed i
+generico di \textsl{file speciali}, come i file di dispositivo, le \textit{fifo} ed i
 socket.
 
 La manipolazione delle caratteristiche di questi file speciali, il cambiamento
@@ -2662,7 +2666,7 @@ funzione di sistema \funcd{mknod}, il cui prototipo è:
   \item[\errcode{EEXIST}] \param{pathname} esiste già o è un collegamento
     simbolico. 
   \item[\errcode{EINVAL}] il valore di \param{mode} non indica un file, una
-    fifo, un socket o un dispositivo.
+    \textit{fifo}, un socket o un dispositivo.
   \item[\errcode{EPERM}] non si hanno privilegi sufficienti a creare
     l'\texttt{inode}, o il filesystem su cui si è cercato di
     creare \param{pathname} non supporta l'operazione.
@@ -2685,8 +2689,8 @@ Per il tipo di file può essere specificato solo uno fra i seguenti valori:
 \const{S\_IFREG} per un file regolare (che sarà creato vuoto),
 \const{S\_IFBLK} per un dispositivo a blocchi, \const{S\_IFCHR} per un
 dispositivo a caratteri, \const{S\_IFSOCK} per un socket e \const{S\_IFIFO}
-per una fifo;\footnote{con Linux la funzione non può essere usata per creare
-  directory o collegamenti simbolici, si dovranno usare le funzioni
+per una \textit{fifo};\footnote{con Linux la funzione non può essere usata per
+  creare directory o collegamenti simbolici, si dovranno usare le funzioni
   \func{mkdir} e \func{symlink} a questo dedicate.} un valore diverso
 comporterà l'errore \errcode{EINVAL}. Inoltre \param{pathname} non deve
 esistere, neanche come collegamento simbolico.
@@ -2701,9 +2705,9 @@ dispositivo usando questa funzione (il processo deve avere la capacità
   mentre è presente in SVr4 e 4.4BSD, ma esistono differenze nei comportamenti
   e nei codici di errore, tanto che questa è stata introdotta in POSIX.1-2001
   con una nota che la definisce portabile solo quando viene usata per creare
-  delle fifo, ma comunque deprecata essendo utilizzabile a tale scopo la
-  specifica \func{mkfifo}.} l'uso per la creazione di un file ordinario, di
-una fifo o di un socket è consentito anche agli utenti normali.
+  delle \textit{fifo}, ma comunque deprecata essendo utilizzabile a tale scopo
+  la specifica \func{mkfifo}.} l'uso per la creazione di un file ordinario, di
+una \textit{fifo} o di un socket è consentito anche agli utenti normali.
 
 I nuovi \textit{inode} creati con \func{mknod} apparterranno al proprietario e
 al gruppo del processo (usando \ids{UID} e \ids{GID} del gruppo effettivo) che
@@ -2745,10 +2749,10 @@ 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
-  versioni specifiche di questa libreria, \macro{gnu\_dev\_major},
-  \macro{gnu\_dev\_minor} e \macro{gnu\_dev\_makedev} che si possono usare
+Le macro sono definite nel file \headfiled{sys/sysmacros.h},\footnote{se si
+  usa la \acr{glibc} dalla versione 2.3.3 queste macro sono degli alias alle
+  versioni specifiche di questa libreria, \macrod{gnu\_dev\_major},
+  \macrod{gnu\_dev\_minor} e \macrod{gnu\_dev\_makedev} che si possono usare
   direttamente, al costo di una minore portabilità.} che viene automaticamente
 incluso quando si include \headfile{sys/types.h}. Si possono pertanto ottenere
 i valori del \textit{major number} e \textit{minor number} di un dispositivo
@@ -2758,9 +2762,9 @@ rispettivamente con le macro \macro{major} e \macro{minor}:
 \vspace{3pt}
 \begin{funcbox}{
 \fhead{sys/types.h}
-\fdecl{int \macro{major}(dev\_t dev)}
+\fdecl{int \macrod{major}(dev\_t dev)}
 \fdesc{Restituisce il \textit{major number} del dispositivo \param{dev}.}
-\fdecl{int \macro{minor}(dev\_t dev)}
+\fdecl{int \macrod{minor}(dev\_t dev)}
 \fdesc{Restituisce il \textit{minor number} del dispositivo \param{dev}.}  
 } 
 \end{funcbox}
@@ -2774,7 +2778,7 @@ macro \macro{makedev}:
 \vspace{3pt}
 \begin{funcbox}{
 \fhead{sys/types.h}
-\fdecl{dev\_t \macro{makedev}(int major, int minor)}
+\fdecl{dev\_t \macrod{makedev}(int major, int minor)}
 \fdesc{Dati \textit{major number} e \textit{minor number} restituisce
   l'identificativo di un dispositivo.} 
 } 
@@ -2788,17 +2792,17 @@ macro \macro{makedev}:
 
 Dato che la funzione di sistema \func{mknod} presenta diverse varianti nei
 vari sistemi unix-like, lo standard POSIX.1-2001 la dichiara portabile solo in
-caso di creazione delle fifo, ma anche in questo caso alcune combinazioni
-degli argomenti restano non specificate, per cui nello stesso standard è stata
-introdotta una funzione specifica per creare una fifo deprecando l'uso di
-\func{mknod} a tale riguardo.  La funzione è \funcd{mkfifo} ed il suo
-prototipo è:
+caso di creazione delle \textit{fifo}, ma anche in questo caso alcune
+combinazioni degli argomenti restano non specificate, per cui nello stesso
+standard è stata introdotta una funzione specifica per creare una
+\textit{fifo} deprecando l'uso di \func{mknod} a tale riguardo.  La funzione è
+\funcd{mkfifo} ed il suo prototipo è:
 
 \begin{funcproto}{
 \fhead{sys/types.h}
 \fhead{sys/stat.h}
 \fdecl{int mkfifo(const char *pathname, mode\_t mode)}
-\fdesc{Crea una fifo.} 
+\fdesc{Crea una \textit{fifo}.} 
 }
 {La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
   caso \var{errno} assumerà \errval{EACCES}, \errval{EEXIST},
@@ -2806,11 +2810,11 @@ prototipo è:
   \errval{EROFS} nel loro significato generico.}
 \end{funcproto}
 
-La funzione crea la fifo \param{pathname} con i permessi \param{mode}. Come
-per \func{mknod} il file \param{pathname} non deve esistere (neanche come
-collegamento simbolico); al solito i permessi specificati da \param{mode}
-vengono modificati dal valore di \textit{umask} (vedi
-sez.~\ref{sec:file_perm_management}).
+La funzione crea la \textit{fifo} \param{pathname} con i
+permessi \param{mode}. Come per \func{mknod} il file \param{pathname} non deve
+esistere (neanche come collegamento simbolico); al solito i permessi
+specificati da \param{mode} vengono modificati dal valore di \textit{umask}
+(vedi sez.~\ref{sec:file_perm_management}).
 
 \index{file!speciali|)} 
 
@@ -2855,20 +2859,20 @@ la prima di queste funzioni create a questo scopo era
 La funzione restituisce il puntatore ad una stringa contente un nome di file
 valido e non esistente al momento dell'invocazione. Se si è passato come
 argomento \param{string} un puntatore non nullo ad un buffer di caratteri
-questo deve essere di dimensione \const{L\_tmpnam} ed il nome generato vi
+questo deve essere di dimensione \constd{L\_tmpnam} ed il nome generato vi
 verrà copiato automaticamente, altrimenti il nome sarà generato in un buffer
 statico interno che verrà sovrascritto ad una chiamata successiva.  Successive
 invocazioni della funzione continueranno a restituire nomi unici fino ad un
-massimo di \const{TMP\_MAX} volte, limite oltre il quale il comportamento è
+massimo di \constd{TMP\_MAX} volte, limite oltre il quale il comportamento è
 indefinito. Al nome viene automaticamente aggiunto come prefisso la directory
-specificata dalla costante \const{P\_tmpdir}.\footnote{le costanti
+specificata dalla costante \constd{P\_tmpdir}.\footnote{le costanti
   \const{L\_tmpnam}, \const{P\_tmpdir} e \const{TMP\_MAX} sono definite in
   \headfile{stdio.h}.}
 
-Di questa funzione esiste una versione \ rientrante,
-\funcm{tmpnam\_r}, che non fa nulla quando si passa \val{NULL} come argomento.
-Una funzione simile, \funcd{tempnam}, permette di specificare un prefisso per
-il file esplicitamente, il suo prototipo è:
+Di questa funzione esiste una versione rientrante, \funcm{tmpnam\_r}, che non
+fa nulla quando si passa \val{NULL} come argomento.  Una funzione simile,
+\funcd{tempnam}, permette di specificare un prefisso per il file
+esplicitamente, il suo prototipo è:
 
 \begin{funcproto}{
 \fhead{stdio.h}
@@ -2881,11 +2885,11 @@ il file esplicitamente, il suo prototipo è:
 \end{funcproto}
 
 La funzione alloca con \code{malloc} la stringa in cui restituisce il nome,
-per cui è sempre \ rientrante, occorre però
-ricordarsi di disallocare con \code{free} il puntatore che restituisce.
-L'argomento \param{pfx} specifica un prefisso di massimo 5 caratteri per il
-nome provvisorio. La funzione assegna come directory per il file temporaneo,
-verificando che esista e sia accessibile, la prima valida fra le seguenti:
+per cui è sempre rientrante, occorre però ricordarsi di disallocare con
+\code{free} il puntatore che restituisce.  L'argomento \param{pfx} specifica
+un prefisso di massimo 5 caratteri per il nome provvisorio. La funzione
+assegna come directory per il file temporaneo, verificando che esista e sia
+accessibile, la prima valida fra le seguenti:
 \begin{itemize*}
 \item la variabile di ambiente \envvar{TMPDIR} (non ha effetto se non è
   definita o se il programma chiamante è \acr{suid} o \acr{sgid}, vedi
@@ -3098,7 +3102,7 @@ informazioni relative ad esso e non al file a cui fa riferimento. Infine
 tramite il suo file descriptor \param{filedes}.
 
 La struttura \struct{stat} usata da queste funzioni è definita nell'header
-\headfile{sys/stat.h} e in generale dipende dall'implementazione; la versione
+\headfiled{sys/stat.h} e in generale dipende dall'implementazione; la versione
 usata da Linux è mostrata in fig.~\ref{fig:file_stat_struct}, così come
 riportata dalla pagina di manuale di \func{stat}. In realtà la definizione
 effettivamente usata nel kernel dipende dall'architettura e ha altri campi
@@ -3120,7 +3124,7 @@ sez.~\ref{sec:file_file_times}).
 Si noti come i vari membri della struttura siano specificati come tipi
 primitivi del sistema, di quelli definiti in
 tab.~\ref{tab:intro_primitive_types}, e dichiarati in \headfile{sys/types.h},
-con l'eccezione di \type{blksize\_t} e \type{blkcnt\_t} che sono nuovi tipi
+con l'eccezione di \typed{blksize\_t} e \typed{blkcnt\_t} che sono nuovi tipi
 introdotti per rendersi indipendenti dalla piattaforma. 
 
 Benché la descrizione dei commenti di fig.~\ref{fig:file_stat_struct} sia
@@ -3157,6 +3161,8 @@ questa sezione:
 
 \end{itemize*}
 
+% TODO trattare anche statx, aggiunta con il kernel 4.11 (vedi
+% https://lwn.net/Articles/707602/ e https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a528d35e8bfcc521d7cb70aaf03e1bd296c8493f)
 
 
 \subsection{I tipi di file}
@@ -3185,13 +3191,13 @@ tipo di file in maniera standardizzata.
     \textbf{Macro} & \textbf{Tipo del file} \\
     \hline
     \hline
-    \macro{S\_ISREG}\texttt{(m)}  & File normale.\\
-    \macro{S\_ISDIR}\texttt{(m)}  & Directory.\\
-    \macro{S\_ISCHR}\texttt{(m)}  & Dispositivo a caratteri.\\
-    \macro{S\_ISBLK}\texttt{(m)}  & Dispositivo a blocchi.\\
-    \macro{S\_ISFIFO}\texttt{(m)} & Fifo.\\
-    \macro{S\_ISLNK}\texttt{(m)}  & Collegamento simbolico.\\
-    \macro{S\_ISSOCK}\texttt{(m)} & Socket.\\
+    \macrod{S\_ISREG}\texttt{(m)}  & File normale.\\
+    \macrod{S\_ISDIR}\texttt{(m)}  & Directory.\\
+    \macrod{S\_ISCHR}\texttt{(m)}  & Dispositivo a caratteri.\\
+    \macrod{S\_ISBLK}\texttt{(m)}  & Dispositivo a blocchi.\\
+    \macrod{S\_ISFIFO}\texttt{(m)} & \textit{Fifo}.\\
+    \macrod{S\_ISLNK}\texttt{(m)}  & Collegamento simbolico.\\
+    \macrod{S\_ISSOCK}\texttt{(m)} & Socket.\\
     \hline    
   \end{tabular}
   \caption{Macro per i tipi di file (definite in \headfile{sys/stat.h}).}
@@ -3215,36 +3221,36 @@ come argomento il valore di \var{st\_mode}.
     \textbf{Flag} & \textbf{Valore} & \textbf{Significato} \\
     \hline
     \hline
-    \const{S\_IFMT}   &  0170000 & Maschera per i bit del tipo di file.\\
-    \const{S\_IFSOCK} &  0140000 & Socket.\\
-    \const{S\_IFLNK}  &  0120000 & Collegamento simbolico.\\
-    \const{S\_IFREG}  &  0100000 & File regolare.\\ 
-    \const{S\_IFBLK}  &  0060000 & Dispositivo a blocchi.\\
-    \const{S\_IFDIR}  &  0040000 & Directory.\\
-    \const{S\_IFCHR}  &  0020000 & Dispositivo a caratteri.\\
-    \const{S\_IFIFO}  &  0010000 & Fifo.\\
+    \constd{S\_IFMT}   &  0170000 & Maschera per i bit del tipo di file.\\
+    \constd{S\_IFSOCK} &  0140000 & Socket.\\
+    \constd{S\_IFLNK}  &  0120000 & Collegamento simbolico.\\
+    \constd{S\_IFREG}  &  0100000 & File regolare.\\ 
+    \constd{S\_IFBLK}  &  0060000 & Dispositivo a blocchi.\\
+    \constd{S\_IFDIR}  &  0040000 & Directory.\\
+    \constd{S\_IFCHR}  &  0020000 & Dispositivo a caratteri.\\
+    \constd{S\_IFIFO}  &  0010000 & \textit{Fifo}.\\
     \hline
-    \const{S\_ISUID}  &  0004000 & Set user ID (\acr{suid}) bit, vedi
+    \constd{S\_ISUID}  &  0004000 & Set user ID (\acr{suid}) bit, vedi
                                    sez.~\ref{sec:file_special_perm}).\\
-    \const{S\_ISGID}  &  0002000 & Set group ID (\acr{sgid}) bit, vedi
+    \constd{S\_ISGID}  &  0002000 & Set group ID (\acr{sgid}) bit, vedi
                                    sez.~\ref{sec:file_special_perm}).\\
-    \const{S\_ISVTX}  &  0001000 & \acr{Sticky} bit, vedi
+    \constd{S\_ISVTX}  &  0001000 & \acr{Sticky} bit, vedi
                                    sez.~\ref{sec:file_special_perm}).\\
     \hline
-    \const{S\_IRWXU}  &  00700   & Maschera per i permessi del proprietario.\\
-    \const{S\_IRUSR}  &  00400   & Il proprietario ha permesso di lettura.\\
-    \const{S\_IWUSR}  &  00200   & Il proprietario ha permesso di scrittura.\\
-    \const{S\_IXUSR}  &  00100   & Il proprietario ha permesso di esecuzione.\\
+    \constd{S\_IRWXU}  &  00700   & Maschera per i permessi del proprietario.\\
+    \constd{S\_IRUSR}  &  00400   & Il proprietario ha permesso di lettura.\\
+    \constd{S\_IWUSR}  &  00200   & Il proprietario ha permesso di scrittura.\\
+    \constd{S\_IXUSR}  &  00100   & Il proprietario ha permesso di esecuzione.\\
     \hline
-    \const{S\_IRWXG}  &  00070   & Maschera per i permessi del gruppo.\\
-    \const{S\_IRGRP}  &  00040   & Il gruppo ha permesso di lettura.\\
-    \const{S\_IWGRP}  &  00020   & Il gruppo ha permesso di scrittura.\\
-    \const{S\_IXGRP}  &  00010   & Il gruppo ha permesso di esecuzione.\\
+    \constd{S\_IRWXG}  &  00070   & Maschera per i permessi del gruppo.\\
+    \constd{S\_IRGRP}  &  00040   & Il gruppo ha permesso di lettura.\\
+    \constd{S\_IWGRP}  &  00020   & Il gruppo ha permesso di scrittura.\\
+    \constd{S\_IXGRP}  &  00010   & Il gruppo ha permesso di esecuzione.\\
     \hline
-    \const{S\_IRWXO}  &  00007   & Maschera per i permessi di tutti gli altri\\
-    \const{S\_IROTH}  &  00004   & Gli altri hanno permesso di lettura.\\
-    \const{S\_IWOTH}  &  00002   & Gli altri hanno permesso di esecuzione.\\
-    \const{S\_IXOTH}  &  00001   & Gli altri hanno permesso di esecuzione.\\
+    \constd{S\_IRWXO}  &  00007   & Maschera per i permessi di tutti gli altri\\
+    \constd{S\_IROTH}  &  00004   & Gli altri hanno permesso di lettura.\\
+    \constd{S\_IWOTH}  &  00002   & Gli altri hanno permesso di esecuzione.\\
+    \constd{S\_IXOTH}  &  00001   & Gli altri hanno permesso di esecuzione.\\
     \hline    
   \end{tabular}
   \caption{Costanti per l'identificazione dei vari bit che compongono il campo
@@ -3289,7 +3295,7 @@ Abbiamo visto in fig.~\ref{fig:file_stat_struct} che campo \var{st\_size} di
 una struttura \struct{stat} contiene la dimensione del file in byte. Questo
 però è vero solo se si tratta di un file regolare, mentre nel caso di un
 collegamento simbolico la dimensione è quella del \textit{pathname} che il
-collegamento stesso contiene, infine per le fifo ed i file di dispositivo
+collegamento stesso contiene, infine per le \textit{fifo} ed i file di dispositivo
 questo campo è sempre nullo.
 
 Il campo \var{st\_blocks} invece definisce la lunghezza del file in blocchi di
@@ -3777,8 +3783,8 @@ tempo di ultimo accesso ed il secondo quello di ultima modifica, e se si usa
 il valore \val{NULL} verrà impostato il tempo corrente sia per l'ultimo
 accesso che per l'ultima modifica. Nei singoli elementi di \param{times} si
 possono inoltre utilizzare due valori speciali per il campo \var{tv\_nsec}:
-con \const{UTIME\_NOW} si richiede l'uso del tempo corrente, mentre con
-\const{UTIME\_OMIT} si richiede di non impostare il tempo. Si può così
+con \constd{UTIME\_NOW} si richiede l'uso del tempo corrente, mentre con
+\constd{UTIME\_OMIT} si richiede di non impostare il tempo. Si può così
 aggiornare in maniera specifica soltanto uno fra il tempo di ultimo accesso e
 quello di ultima modifica. Quando si usa uno di questi valori speciali per
 \var{tv\_nsec} il corrispondente valore di \var{tv\_sec} viene ignorato.
@@ -3799,13 +3805,13 @@ partire dalla versione 2.6.\footnote{in precedenza, a partire dal kernel
 seconda supporta invece, rispetto ad \func{utimes}, una sintassi più complessa
 che consente una indicazione sicura del file su cui operare specificando la
 directory su cui si trova tramite il file descriptor \param{dirfd} ed il suo
-nome come \itindsub{pathname}{relativo} \textit{pathname relativo}
-in \param{pathname}.\footnote{su Linux solo \func{utimensat} è una
-  \textit{system call} e \func{futimens} è una funzione di libreria, infatti
-  se \param{pathname} è \var{NULL} \param{dirfd} viene considerato un file
-  descriptor ordinario e il cambiamento del tempo applicato al file
-  sottostante, qualunque esso sia, per cui \code{futimens(fd, times}) è del
-  tutto equivalente a \code{utimensat(fd, NULL, times, 0)}.}
+nome come \textit{pathname relativo} in \param{pathname}.\footnote{su Linux
+  solo \func{utimensat} è una \textit{system call} e \func{futimens} è una
+  funzione di libreria, infatti se \param{pathname} è \var{NULL} \param{dirfd}
+  viene considerato un file descriptor ordinario e il cambiamento del tempo
+  applicato al file sottostante, qualunque esso sia, per cui
+  \code{futimens(fd, times}) è del tutto equivalente a \code{utimensat(fd,
+    NULL, times, 0)}.}
 
 Torneremo su questa sintassi e sulla sua motivazione in
 sez.~\ref{sec:file_openat}, quando tratteremo tutte le altre funzioni (le
@@ -4280,10 +4286,10 @@ controllati sono disponibili.
     \textbf{\param{mode}} & \textbf{Significato} \\
     \hline
     \hline
-    \const{R\_OK} & Verifica il permesso di lettura. \\
-    \const{W\_OK} & Verifica il permesso di scrittura. \\
-    \const{X\_OK} & Verifica il permesso di esecuzione. \\
-    \const{F\_OK} & Verifica l'esistenza del file. \\
+    \constd{R\_OK} & Verifica il permesso di lettura. \\
+    \constd{W\_OK} & Verifica il permesso di scrittura. \\
+    \constd{X\_OK} & Verifica il permesso di esecuzione. \\
+    \constd{F\_OK} & Verifica l'esistenza del file. \\
     \hline
   \end{tabular}
   \caption{Valori possibili per l'argomento \param{mode} della funzione 
@@ -4343,8 +4349,8 @@ filename e su un file descriptor, i loro prototipi sono:
 
 Entrambe le funzioni utilizzano come secondo argomento \param{mode}, una
 variabile dell'apposito tipo primitivo \type{mode\_t} (vedi
-tab.~\ref{tab:intro_primitive_types}) utilizzato per specificare i permessi sui
-file.
+tab.~\ref{tab:intro_primitive_types}) utilizzato per specificare i permessi
+sui file.
 
 \begin{table}[!htb]
   \centering
@@ -4865,7 +4871,7 @@ tab.~\ref{tab:extended_attribute_class}, si hanno i seguenti casi:
   due casi hanno a che fare con il contenuto del file, e nella discussione
   relativa all'uso degli \textit{extended user attributes} nessuno è mai stato
   capace di indicare una qualche forma sensata di utilizzo degli stessi per
-  collegamenti simbolici o file di dispositivo, e neanche per le fifo o i
+  collegamenti simbolici o file di dispositivo, e neanche per le \textit{fifo} o i
   socket.  Per questo motivo essi sono stati completamente disabilitati per
   tutto ciò che non sia un file regolare o una directory.\footnote{si può
     verificare la semantica adottata consultando il file \texttt{fs/xattr.c}
@@ -4990,9 +4996,9 @@ Il valore che verrà assegnato all'attributo dovrà essere preparato nel buffer
 puntato da \param{value}, e la sua dimensione totale (in byte) sarà indicata
 dall'argomento \param{size}. Infine l'argomento \param{flag} consente di
 controllare le modalità di sovrascrittura dell'attributo esteso, esso può
-prendere due valori: con \const{XATTR\_REPLACE} si richiede che l'attributo
+prendere due valori: con \constd{XATTR\_REPLACE} si richiede che l'attributo
 esista, nel qual caso verrà sovrascritto, altrimenti si avrà errore, mentre
-con \const{XATTR\_CREATE} si richiede che l'attributo non esista, nel qual
+con \constd{XATTR\_CREATE} si richiede che l'attributo non esista, nel qual
 caso verrà creato, altrimenti si avrà errore ed il valore attuale non sarà
 modificato.  Utilizzando per \param{flag} un valore nullo l'attributo verrà
 modificato se è già presente, o creato se non c'è.
@@ -5151,21 +5157,21 @@ la capacità \const{CAP\_FOWNER}.
     \textbf{Tipo} & \textbf{Descrizione} \\
     \hline
     \hline
-    \const{ACL\_USER\_OBJ} & Voce che contiene i diritti di accesso del
+    \constd{ACL\_USER\_OBJ}& Voce che contiene i diritti di accesso del
                              proprietario del file.\\
-    \const{ACL\_USER}      & Voce che contiene i diritti di accesso per
+    \constd{ACL\_USER}     & Voce che contiene i diritti di accesso per
                              l'utente indicato dal rispettivo
                              qualificatore.\\  
-    \const{ACL\_GROUP\_OBJ}& Voce che contiene i diritti di accesso del
+    \constd{ACL\_GROUP\_OBJ}&Voce che contiene i diritti di accesso del
                              gruppo proprietario del file.\\
-    \const{ACL\_GROUP}     & Voce che contiene i diritti di accesso per
+    \constd{ACL\_GROUP}    & Voce che contiene i diritti di accesso per
                              il gruppo indicato dal rispettivo
                              qualificatore.\\
-    \const{ACL\_MASK}      & Voce che contiene la maschera dei massimi
+    \constd{ACL\_MASK}     & Voce che contiene la maschera dei massimi
                              permessi di accesso che possono essere garantiti
                              da voci del tipo \const{ACL\_USER},
                              \const{ACL\_GROUP} e \const{ACL\_GROUP\_OBJ}.\\
-    \const{ACL\_OTHER}     & Voce che contiene i diritti di accesso di chi
+    \constd{ACL\_OTHER}    & Voce che contiene i diritti di accesso di chi
                              non corrisponde a nessuna altra voce dell'ACL.\\
     \hline
   \end{tabular}
@@ -5330,11 +5336,11 @@ queste funzioni che prendiamo in esame è \funcd{acl\_init}, il cui prototipo
 
 La funzione alloca ed inizializza un'area di memoria che verrà usata per
 mantenere i dati di una ACL contenente fino ad un massimo di \param{count}
-voci. La funzione ritorna un valore di tipo \type{acl\_t} da usare in tutte le
+voci. La funzione ritorna un valore di tipo \typed{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 tipo opaco che identifica
+Si tenga presente che pur essendo \typed{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
@@ -5469,7 +5475,7 @@ tramite un file descriptor usando \func{acl\_get\_fd} o con un
 funzione, che può richiedere anche la ACL relativa ad una directory, il
 secondo argomento \param{type} consente di specificare se si vuole ottenere la
 ACL di default o quella di accesso. Questo argomento deve essere di tipo
-\type{acl\_type\_t} e può assumere solo i due valori riportati in
+\typed{acl\_type\_t} e può assumere solo i due valori riportati in
 tab.~\ref{tab:acl_type}.
 
 \begin{table}[htb]
@@ -5480,8 +5486,8 @@ tab.~\ref{tab:acl_type}.
     \textbf{Tipo} & \textbf{Descrizione} \\
     \hline
     \hline
-    \const{ACL\_TYPE\_ACCESS} & Indica una ACL di accesso.\\
-    \const{ACL\_TYPE\_DEFAULT}& Indica una ACL di default.\\  
+    \constd{ACL\_TYPE\_ACCESS} & Indica una ACL di accesso.\\
+    \constd{ACL\_TYPE\_DEFAULT}& Indica una ACL di default.\\  
     \hline
   \end{tabular}
   \caption{Le costanti che identificano il tipo di ACL.}
@@ -5640,21 +5646,21 @@ tab.~\ref{tab:acl_to_text_options}.
     \textbf{Tipo} & \textbf{Descrizione} \\
     \hline
     \hline
-    \const{TEXT\_ABBREVIATE}     & Stampa le voci in forma abbreviata.\\
-    \const{TEXT\_NUMERIC\_IDS}   & non effettua la risoluzione numerica di
+    \constd{TEXT\_ABBREVIATE}    & Stampa le voci in forma abbreviata.\\
+    \constd{TEXT\_NUMERIC\_IDS}  & non effettua la risoluzione numerica di
                                    \ids{UID} e \ids{GID}.\\
-    \const{TEXT\_SOME\_EFFECTIVE}& Per ciascuna voce che contiene permessi che
+    \constd{TEXT\_SOME\_EFFECTIVE}&Per ciascuna voce che contiene permessi che
                                    vengono eliminati dalla \const{ACL\_MASK}
                                    viene generato un commento con i permessi 
                                    effettivamente risultanti; il commento è
                                    separato con un tabulatore.\\
-    \const{TEXT\_ALL\_EFFECTIVE} & Viene generato un commento con i permessi
+    \constd{TEXT\_ALL\_EFFECTIVE}& Viene generato un commento con i permessi
                                    effettivi per ciascuna voce che contiene
                                    permessi citati nella \const{ACL\_MASK},
                                    anche quando questi non vengono modificati
                                    da essa; il commento è separato con un
                                    tabulatore.\\
-    \const{TEXT\_SMART\_INDENT}  & Da usare in combinazione con le precedenti
+    \constd{TEXT\_SMART\_INDENT} & Da usare in combinazione con le precedenti
                                    opzioni \const{TEXT\_SOME\_EFFECTIVE} e
                                    \const{TEXT\_ALL\_EFFECTIVE}, aumenta
                                    automaticamente il numero di spaziatori
@@ -5828,7 +5834,7 @@ prototipo è:
 }
 \end{funcproto}
 
-La funzione è del tutto è analoga a \funcd{acl\_set\_file} ma opera
+La funzione è del tutto è analoga a \func{acl\_set\_file} ma opera
 esclusivamente sui file identificati tramite un file descriptor. Non dovendo
 avere a che fare con directory (e con la conseguente possibilità di avere una
 ACL di default) la funzione non necessita che si specifichi il tipo di ACL,
@@ -5847,7 +5853,7 @@ manuale.
 
 Se si vuole operare direttamente sui contenuti di un oggetto di tipo
 \type{acl\_t} infatti occorre fare riferimento alle singole voci tramite gli
-opportuni puntatori di tipo \type{acl\_entry\_t}, che possono essere ottenuti
+opportuni puntatori di tipo \typed{acl\_entry\_t}, che possono essere ottenuti
 dalla funzione \funcm{acl\_get\_entry} (per una voce esistente) o dalla
 funzione \funcm{acl\_create\_entry} per una voce da aggiungere. Nel caso della
 prima funzione si potrà poi ripetere la lettura per ottenere i puntatori alle
@@ -6021,7 +6027,7 @@ macro \macro{QCMD}:
 \vspace{3pt}
 \begin{funcbox}{
 \fhead{sys/quota.h}
-\fdecl{int \macro{QCMD}(subcmd,type)}
+\fdecl{int \macrod{QCMD}(subcmd,type)}
 \fdesc{Imposta il comando \param{subcmd} per il tipo di quote (utente o
   gruppo) \param{type}.}
 } 
@@ -6042,7 +6048,7 @@ essere sempre definito ed assegnato ad uno fra i due valori \const{USRQUOTA} o
     \textbf{Comando} & \textbf{Descrizione} \\
     \hline
     \hline
-    \const{Q\_QUOTAON}  & Attiva l'applicazione delle quote disco per il
+    \constd{Q\_QUOTAON} & Attiva l'applicazione delle quote disco per il
                           filesystem indicato da \param{dev}, si deve passare
                           in \param{addr} il \textit{pathname} al file che
                           mantiene le quote, che deve esistere, e \param{id}
@@ -6050,11 +6056,11 @@ essere sempre definito ed assegnato ad uno fra i due valori \const{USRQUOTA} o
                           valori di tab.~\ref{tab:quotactl_id_format};
                           l'operazione richiede i privilegi di
                           amministratore.\\
-    \const{Q\_QUOTAOFF} & Disattiva l'applicazione delle quote disco per il
+    \constd{Q\_QUOTAOFF}& Disattiva l'applicazione delle quote disco per il
                           filesystem indicato da \param{dev}, \param{id}
                           e \param{addr} vengono ignorati; l'operazione
                           richiede i privilegi di amministratore.\\  
-    \const{Q\_GETQUOTA} & Legge i limiti ed i valori correnti delle quote nel
+    \constd{Q\_GETQUOTA}& Legge i limiti ed i valori correnti delle quote nel
                           filesystem indicato da \param{dev} per l'utente o
                           il gruppo specificato da \param{id}; si devono avere
                           i privilegi di amministratore per leggere i dati
@@ -6062,33 +6068,33 @@ essere sempre definito ed assegnato ad uno fra i due valori \const{USRQUOTA} o
                           parte, il risultato viene restituito in una struttura
                           \struct{dqblk} all'indirizzo indicato
                           da \param{addr}.\\
-    \const{Q\_SETQUOTA} & Imposta i limiti per le quote nel filesystem
+    \constd{Q\_SETQUOTA}& Imposta i limiti per le quote nel filesystem
                           indicato da \param{dev} per l'utente o il gruppo
                           specificato da \param{id} secondo i valori ottenuti
                           dalla struttura \struct{dqblk} puntata
                           da \param{addr}; l'operazione richiede i privilegi
                           di amministratore.\\ 
-    \const{Q\_GETINFO}  & Legge le informazioni (in sostanza i \textit{grace
+    \constd{Q\_GETINFO} & Legge le informazioni (in sostanza i \textit{grace
                             time}) delle quote del filesystem indicato
                           da \param{dev} sulla struttura \struct{dqinfo} 
                           puntata da \param{addr}, \param{id} viene ignorato.\\
-    \const{Q\_SETINFO}  & Imposta le informazioni delle quote del filesystem
+    \constd{Q\_SETINFO} & Imposta le informazioni delle quote del filesystem
                           indicato da \param{dev} come ottenuti dalla
                           struttura \struct{dqinfo} puntata
                           da \param{addr}, \param{id} viene ignorato;  
                           l'operazione richiede i privilegi di amministratore.\\
-    \const{Q\_GETFMT}   & Richiede il valore identificativo (quello di
+    \constd{Q\_GETFMT}  & Richiede il valore identificativo (quello di
                           tab.~\ref{tab:quotactl_id_format}) per il formato
                           delle quote attualmente in uso sul filesystem
                           indicato da \param{dev}, che sarà memorizzato
                           sul buffer di 4 byte puntato da \param{addr}.\\
-    \const{Q\_SYNC}     & Aggiorna la copia su disco dei dati delle quote del
+    \constd{Q\_SYNC}    & Aggiorna la copia su disco dei dati delle quote del
                           filesystem indicato da \param{dev}; in questo
                           caso \param{dev} può anche essere \val{NULL} nel
                           qual caso verranno aggiornati i dati per tutti i
                           filesystem con quote attive, \param{id}
                           e \param{addr} vengono comunque ignorati.\\ 
-    \const{Q\_GETSTATS} & Ottiene statistiche ed altre informazioni generali 
+    \constd{Q\_GETSTATS}& Ottiene statistiche ed altre informazioni generali 
                           relative al sistema delle quote per il filesystem
                           indicato da \param{dev}, richiede che si
                           passi come argomento \param{addr} l'indirizzo di una
@@ -6164,27 +6170,25 @@ ciascuna di esse ed i campi a cui fanno riferimento.
     \textbf{Costante} & \textbf{Descrizione} \\
     \hline
     \hline
-    \const{QIF\_BLIMITS}& Limiti sui blocchi di 
-                          spazio disco (\val{dqb\_bhardlimit} e
-                          \val{dqb\_bsoftlimit}).\\
-    \const{QIF\_SPACE}  & Uso corrente
-                          dello spazio disco (\val{dqb\_curspace}).\\
-    \const{QIF\_ILIMITS}& Limiti sugli \textit{inode}
-                          (\val{dqb\_ihardlimit} e \val{dqb\_isoftlimit}).\\
-    \const{QIF\_INODES} & Uso corrente
-                          degli \textit{inode} (\val{dqb\_curinodes}).\\
-    \const{QIF\_BTIME}  & Tempo di
-                          sforamento del \textit{soft limit} sul numero di
-                          blocchi (\val{dqb\_btime}).\\
-    \const{QIF\_ITIME}  & Tempo di sforamento del \textit{soft limit} sul
-                          numero di \textit{inode} (\val{dqb\_itime}).\\ 
-    \const{QIF\_LIMITS} & L'insieme di \const{QIF\_BLIMITS} e
-                          \const{QIF\_ILIMITS}.\\
-    \const{QIF\_USAGE}  & L'insieme di \const{QIF\_SPACE} e
-                          \const{QIF\_INODES}.\\
-    \const{QIF\_TIMES}  & L'insieme di \const{QIF\_BTIME} e
-                          \const{QIF\_ITIME}.\\ 
-    \const{QIF\_ALL}    & Tutti i precedenti.\\
+    \constd{QIF\_BLIMITS}& Limiti sui blocchi di spazio disco
+                           (\val{dqb\_bhardlimit} e \val{dqb\_bsoftlimit}).\\
+    \constd{QIF\_SPACE}  & Uso corrente dello spazio disco
+                           (\val{dqb\_curspace}).\\
+    \constd{QIF\_ILIMITS}& Limiti sugli \textit{inode}
+                           (\val{dqb\_ihardlimit} e \val{dqb\_isoftlimit}).\\
+    \constd{QIF\_INODES} & Uso corrente degli \textit{inode}
+                           (\val{dqb\_curinodes}).\\
+    \constd{QIF\_BTIME}  & Tempo di sforamento del \textit{soft limit} sul
+                           numero di blocchi (\val{dqb\_btime}).\\
+    \constd{QIF\_ITIME}  & Tempo di sforamento del \textit{soft limit} sul
+                           numero di \textit{inode} (\val{dqb\_itime}).\\ 
+    \constd{QIF\_LIMITS} & L'insieme di \const{QIF\_BLIMITS} e
+                           \const{QIF\_ILIMITS}.\\
+    \constd{QIF\_USAGE}  & L'insieme di \const{QIF\_SPACE} e
+                           \const{QIF\_INODES}.\\
+    \constd{QIF\_TIMES}  & L'insieme di \const{QIF\_BTIME} e
+                           \const{QIF\_ITIME}.\\ 
+    \constd{QIF\_ALL}    & Tutti i precedenti.\\
     \hline
   \end{tabular}
   \caption{Costanti per il campo \val{dqb\_valid} di \struct{dqblk}.} 
@@ -6219,21 +6223,19 @@ identificate tramite le costanti di tab.~\ref{tab:quotactl_id_format}.
     \textbf{Identificatore} & \textbf{Descrizione} \\
     \hline
     \hline
-    \const{QFMT\_VFS\_OLD}& Il vecchio (ed obsoleto) formato delle quote.\\
-    \const{QFMT\_VFS\_V0} & La versione 0 usata dal VFS di Linux, supporta
-                            \ids{UID} e \ids{GID} a 32 bit e limiti fino a
-                            $2^{42}$ byte e $2^{32}$ file.\\
-    \const{QFMT\_VFS\_V1} & La versione 1 usata dal VFS di Linux, supporta
-                            \ids{UID} e \ids{GID} a 32 bit e limiti fino a
-                            $2^{64}$ byte e $2^{64}$ file.\\
+    \constd{QFMT\_VFS\_OLD}& Il vecchio (ed obsoleto) formato delle quote.\\
+    \constd{QFMT\_VFS\_V0} & La versione 0 usata dal VFS di Linux, supporta
+                             \ids{UID} e \ids{GID} a 32 bit e limiti fino a
+                             $2^{42}$ byte e $2^{32}$ file.\\
+    \constd{QFMT\_VFS\_V1} & La versione 1 usata dal VFS di Linux, supporta
+                             \ids{UID} e \ids{GID} a 32 bit e limiti fino a
+                             $2^{64}$ byte e $2^{64}$ file.\\
     \hline
   \end{tabular}
   \caption{Valori di identificazione del formato delle quote.} 
   \label{tab:quotactl_id_format}
 \end{table}
 
-
-
 Altre due operazioni che necessitano di ulteriori spiegazioni sono
 \const{Q\_GETINFO} e \const{Q\_SETINFO}, che consentono di ottenere i dati
 relativi alle impostazioni delle altre proprietà delle quote, che al momento
@@ -6267,12 +6269,12 @@ significato di ciascuna di esse ed i campi a cui fanno riferimento.
     \textbf{Costante} & \textbf{Descrizione} \\
     \hline
     \hline
-    \const{IIF\_BGRACE}& Il \textit{grace period} per i blocchi
+    \constd{IIF\_BGRACE}& Il \textit{grace period} per i blocchi
                          (\val{dqi\_bgrace}).\\
-    \const{IIF\_IGRACE}& Il \textit{grace period} per gli \textit{inode} 
+    \constd{IIF\_IGRACE}& Il \textit{grace period} per gli \textit{inode} 
                          (\val{dqi\_igrace}).\\ 
-    \const{IIF\_FLAGS} & I flag delle quote (\val{dqi\_flags}) (inusato ?).\\
-    \const{IIF\_ALL}   & Tutti i precedenti.\\
+    \constd{IIF\_FLAGS} & I flag delle quote (\val{dqi\_flags}) (inusato ?).\\
+    \constd{IIF\_ALL}   & Tutti i precedenti.\\
     \hline
   \end{tabular}
   \caption{Costanti per il campo \val{dqi\_valid} di \struct{dqinfo}.} 
@@ -6435,7 +6437,7 @@ cui a ciascun processo sono stati associati tre distinti insiemi di
 \textit{inheritable} ed \textit{effective}. Questi insiemi vengono mantenuti
 in forma di tre diverse maschere binarie,\footnote{il kernel li mantiene, come
   i vari identificatori di sez.~\ref{sec:proc_setuid}, all'interno della
-  \struct{task\_struct} di ciascun processo (vedi
+  \texttt{task\_struct} di ciascun processo (vedi
   fig.~\ref{fig:proc_task_struct}), nei tre campi \texttt{cap\_effective},
   \texttt{cap\_inheritable}, \texttt{cap\_permitted} del tipo
   \texttt{kernel\_cap\_t}; questo era, fino al kernel 2.6.25 definito come
@@ -6509,7 +6511,7 @@ casistica assai complessa.
 Per i kernel fino al 2.6.25, o se non si attiva il supporto per le
 \textit{file capabilities}, il \textit{capabilities bounding set} è un
 parametro generale di sistema, il cui valore viene riportato nel file
-\sysctlfile{kernel/cap-bound}. Il suo valore iniziale è definito in sede di
+\sysctlfiled{kernel/cap-bound}. Il suo valore iniziale è definito in sede di
 compilazione del kernel, e da sempre ha previsto come default la presenza di
 tutte le \textit{capabilities} eccetto \const{CAP\_SETPCAP}. In questa
 situazione solo il primo processo eseguito nel sistema (quello con
@@ -6689,7 +6691,7 @@ cancellato il flag \const{SECURE\_KEEP\_CAPS}.
     \textbf{Flag} & \textbf{Descrizione} \\
     \hline
     \hline
-    \const{SECURE\_KEEP\_CAPS}& Il processo non subisce la cancellazione delle
+    \constd{SECURE\_KEEP\_CAPS}&Il processo non subisce la cancellazione delle
                                 sue \textit{capabilities} quando tutti i suoi
                                 \ids{UID} passano ad un valore non
                                 nullo (regola di compatibilità per il cambio
@@ -6697,14 +6699,14 @@ cancellato il flag \const{SECURE\_KEEP\_CAPS}.
                                 elenco), sostituisce il precedente uso
                                 dell'operazione \const{PR\_SET\_KEEPCAPS} di
                                 \func{prctl}.\\
-    \const{SECURE\_NO\_SETUID\_FIXUP}&Il processo non subisce le modifiche
+    \constd{SECURE\_NO\_SETUID\_FIXUP}&Il processo non subisce le modifiche
                                 delle sue \textit{capabilities} nel passaggio
                                 da nullo a non nullo degli \ids{UID}
                                 dei gruppi \textit{effective} e
                                 \textit{file system} (regole di compatibilità
                                 per il cambio di \ids{UID} nn.~1 e 2 del
                                 precedente elenco).\\
-    \const{SECURE\_NOROOT}    & Il processo non assume nessuna capacità
+    \constd{SECURE\_NOROOT}   & Il processo non assume nessuna capacità
                                 aggiuntiva quando esegue un programma, anche
                                 se ha \ids{UID} nullo o il programma ha
                                 il \acr{suid} bit attivo ed appartiene
@@ -6722,10 +6724,10 @@ A ciascuno dei flag di tab.~\ref{tab:securebits_values} è inoltre abbinato un
 corrispondente flag di blocco, identificato da una costante omonima con
 l'estensione \texttt{\_LOCKED}, la cui attivazione è irreversibile ed ha
 l'effetto di rendere permanente l'impostazione corrente del corrispondente
-flag ordinario; in sostanza con \const{SECURE\_KEEP\_CAPS\_LOCKED} si rende
+flag ordinario; in sostanza con \constd{SECURE\_KEEP\_CAPS\_LOCKED} si rende
 non più modificabile \const{SECURE\_KEEP\_CAPS}, ed analogamente avviene con
-\const{SECURE\_NO\_SETUID\_FIXUP\_LOCKED} per
-\const{SECURE\_NO\_SETUID\_FIXUP} e con \const{SECURE\_NOROOT\_LOCKED} per
+\constd{SECURE\_NO\_SETUID\_FIXUP\_LOCKED} per
+\const{SECURE\_NO\_SETUID\_FIXUP} e con \constd{SECURE\_NOROOT\_LOCKED} per
 \const{SECURE\_NOROOT}.
 
 Per l'impostazione di questi flag sono state predisposte due specifiche
@@ -6786,20 +6788,20 @@ opportuno dettagliare maggiormente.
 %
 % POSIX-draft defined capabilities.
 %
-    \const{CAP\_AUDIT\_CONTROL}& Abilitare e disabilitare il
+    \constd{CAP\_AUDIT\_CONTROL}& Abilitare e disabilitare il
                               controllo dell'auditing (dal kernel 2.6.11).\\ 
-    \const{CAP\_AUDIT\_WRITE}&Scrivere dati nel giornale di
+    \constd{CAP\_AUDIT\_WRITE}&Scrivere dati nel giornale di
                               auditing del kernel (dal kernel 2.6.11).\\ 
     % TODO verificare questa roba dell'auditing
-    \const{CAP\_BLOCK\_SUSPEND}&Utilizzare funzionalità che possono bloccare 
+    \constd{CAP\_BLOCK\_SUSPEND}&Utilizzare funzionalità che possono bloccare 
                               la sospensione del sistema (dal kernel 3.5).\\ 
-    \const{CAP\_CHOWN}      & Cambiare proprietario e gruppo
+    \constd{CAP\_CHOWN}     & Cambiare proprietario e gruppo
                               proprietario di un file (vedi
                               sez.~\ref{sec:file_ownership_management}).\\
-    \const{CAP\_DAC\_OVERRIDE}& Evitare il controllo dei
-                              permessi di lettura, scrittura ed esecuzione dei
-                              file, (vedi sez.~\ref{sec:file_access_control}).\\
-    \const{CAP\_DAC\_READ\_SEARCH}& Evitare il controllo dei
+    \constd{CAP\_DAC\_OVERRIDE}& Evitare il controllo dei
+                               permessi di lettura, scrittura ed esecuzione dei
+                               file, (vedi sez.~\ref{sec:file_access_control}).\\ 
+    \constd{CAP\_DAC\_READ\_SEARCH}& Evitare il controllo dei
                               permessi di lettura ed esecuzione per
                               le directory (vedi
                               sez.~\ref{sec:file_access_control}).\\
@@ -6807,7 +6809,7 @@ opportuno dettagliare maggiormente.
                               per tutte le operazioni privilegiate non coperte
                               dalle precedenti \const{CAP\_DAC\_OVERRIDE} e
                               \const{CAP\_DAC\_READ\_SEARCH}.\\
-    \const{CAP\_FSETID}     & Evitare la cancellazione automatica dei bit
+    \constd{CAP\_FSETID}    & Evitare la cancellazione automatica dei bit
                               \acr{suid} e \acr{sgid} quando un file
                               per i quali sono impostati viene modificato da
                               un processo senza questa capacità e la capacità
@@ -6815,16 +6817,16 @@ opportuno dettagliare maggiormente.
                               quando questo è relativo ad un gruppo cui non si
                               appartiene (vedi
                               sez.~\ref{sec:file_perm_management}).\\ 
-    \const{CAP\_KILL}       & Mandare segnali a qualunque
+    \constd{CAP\_KILL}      & Mandare segnali a qualunque
                               processo (vedi sez.~\ref{sec:sig_kill_raise}).\\
-    \const{CAP\_SETFCAP}    & Impostare le \textit{capabilities} di un file
+    \constd{CAP\_SETFCAP}   & Impostare le \textit{capabilities} di un file
                               (dal kernel 2.6.24).\\ 
-    \const{CAP\_SETGID}     & Manipolare i group ID dei
+    \constd{CAP\_SETGID}    & Manipolare i group ID dei
                               processi, sia il principale che i supplementari,
                               (vedi sez.~\ref{sec:proc_setgroups}) che quelli
                               trasmessi tramite i socket \textit{unix domain}
                               (vedi sez.~\ref{sec:unix_socket}).\\
-    \const{CAP\_SETUID}     & Manipolare gli user ID del
+    \constd{CAP\_SETUID}    & Manipolare gli user ID del
                               processo (vedi sez.~\ref{sec:proc_setuid}) e di
                               trasmettere un user ID arbitrario nel passaggio
                               delle credenziali coi socket \textit{unix
@@ -6833,69 +6835,69 @@ opportuno dettagliare maggiormente.
 % Linux specific capabilities
 %
 \hline
-    \const{CAP\_IPC\_LOCK}  & Effettuare il \textit{memory locking} con le
+    \constd{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 
                               sez.~\ref{sec:file_memory_map}). \\ 
 % TODO verificare l'interazione con SHM_HUGETLB
-    \const{CAP\_IPC\_OWNER} & Evitare il controllo dei permessi
+    \constd{CAP\_IPC\_OWNER}& Evitare il controllo dei permessi
                               per le operazioni sugli oggetti di
                               intercomunicazione fra processi (vedi
                               sez.~\ref{sec:ipc_sysv}).\\  
-    \const{CAP\_LEASE}      & Creare dei \textit{file lease} (vedi
+    \constd{CAP\_LEASE}     & Creare dei \textit{file lease} (vedi
                               sez.~\ref{sec:file_asyncronous_lease})
                               pur non essendo proprietari del file (dal kernel
                               2.4).\\ 
-    \const{CAP\_LINUX\_IMMUTABLE}& Impostare sui file gli attributi 
-                              \textit{immutable} e \textit{append-only} (vedi
-                              sez.~\ref{sec:file_perm_overview}) se
-                              supportati.\\
-    \const{CAP\_MKNOD}      & Creare file di dispositivo con \func{mknod} (vedi
+    \constd{CAP\_LINUX\_IMMUTABLE}& Impostare sui file gli attributi 
+                             \textit{immutable} e \textit{append-only} (vedi
+                             sez.~\ref{sec:file_perm_overview}) se
+                             supportati.\\
+    \constd{CAP\_MAC\_ADMIN}& Amministrare il \textit{Mandatory
+                               Access Control} di \textit{Smack} (dal kernel
+                              2.6.25).\\
+    \constd{CAP\_MAC\_OVERRIDE}& Evitare il \textit{Mandatory
+                               Access Control} di \textit{Smack} (dal kernel
+                              2.6.25).\\   
+    \constd{CAP\_MKNOD}     & Creare file di dispositivo con \func{mknod} (vedi
                               sez.~\ref{sec:file_mknod}) (dal kernel 2.4).\\ 
     \const{CAP\_NET\_ADMIN} & Eseguire alcune operazioni
                               privilegiate sulla rete.\\
-    \const{CAP\_NET\_BIND\_SERVICE}& Porsi in ascolto su porte riservate (vedi 
+    \constd{CAP\_NET\_BIND\_SERVICE}& Porsi in ascolto su porte riservate (vedi 
                               sez.~\ref{sec:TCP_func_bind}).\\ 
-    \const{CAP\_NET\_BROADCAST}& Consentire l'uso di socket in
+    \constd{CAP\_NET\_BROADCAST}& Consentire l'uso di socket in
                               \textit{broadcast} e \textit{multicast}.\\ 
-    \const{CAP\_NET\_RAW}   & Usare socket \texttt{RAW} e \texttt{PACKET}
+    \constd{CAP\_NET\_RAW}  & Usare socket \texttt{RAW} e \texttt{PACKET}
                               (vedi sez.~\ref{sec:sock_type}).\\ 
     \const{CAP\_SETPCAP}    & Effettuare modifiche privilegiate alle
                               \textit{capabilities}.\\   
     \const{CAP\_SYS\_ADMIN} & Eseguire una serie di compiti amministrativi.\\
-    \const{CAP\_SYS\_BOOT}  & Eseguire un riavvio del sistema (vedi
+    \constd{CAP\_SYS\_BOOT} & Eseguire un riavvio del sistema (vedi
                               sez.~\ref{sec:sys_reboot}).\\ 
-    \const{CAP\_SYS\_CHROOT}& Eseguire la funzione \func{chroot} (vedi 
+    \constd{CAP\_SYS\_CHROOT}& Eseguire la funzione \func{chroot} (vedi 
                               sez.~\ref{sec:file_chroot}).\\
-    \const{CAP\_MAC\_ADMIN} & Amministrare il \textit{Mandatory
-                               Access Control} di \textit{Smack} (dal kernel
-                             2.6.25).\\
-    \const{CAP\_MAC\_OVERRIDE}& Evitare il \textit{Mandatory
-                               Access Control} di \textit{Smack} (dal kernel
-                             2.6.25).\\   
-    \const{CAP\_SYS\_MODULE}& Caricare e rimuovere moduli del kernel.\\ 
+    \constd{CAP\_SYS\_MODULE}& Caricare e rimuovere moduli del kernel.\\ 
     \const{CAP\_SYS\_NICE}  & Modificare le varie priorità dei processi (vedi 
                               sez.~\ref{sec:proc_priority}).\\
-    \const{CAP\_SYS\_PACCT} & Usare le funzioni di \textit{accounting} dei 
+    \constd{CAP\_SYS\_PACCT}& Usare le funzioni di \textit{accounting} dei 
                               processi (vedi
                               sez.~\ref{sec:sys_bsd_accounting}).\\  
-    \const{CAP\_SYS\_PTRACE}& La capacità di tracciare qualunque processo con
+    \constd{CAP\_SYS\_PTRACE}& La capacità di tracciare qualunque processo con
                               \func{ptrace} (vedi 
                               sez.~\ref{sec:process_ptrace}).\\
-    \const{CAP\_SYS\_RAWIO} & Operare sulle porte di I/O con \func{ioperm} e
+    \constd{CAP\_SYS\_RAWIO}& Operare sulle porte di I/O con \func{ioperm} e
                                \func{iopl} (vedi
                               sez.~\ref{sec:process_io_port}).\\
     \const{CAP\_SYS\_RESOURCE}& Superare le varie limitazioni sulle risorse.\\ 
-    \const{CAP\_SYS\_TIME}  & Modificare il tempo di sistema (vedi 
+    \constd{CAP\_SYS\_TIME} & Modificare il tempo di sistema (vedi 
                               sez.~\ref{sec:sys_time}).\\ 
-    \const{CAP\_SYS\_TTY\_CONFIG}&Simulare un \textit{hangup} della console,
+    \constd{CAP\_SYS\_TTY\_CONFIG}&Simulare un \textit{hangup} della console,
                               con la funzione \func{vhangup}.\\
-    \const{CAP\_SYSLOG}     & Gestire il buffer dei messaggi
+    \constd{CAP\_SYSLOG}    & Gestire il buffer dei messaggi
                               del kernel, (vedi sez.~\ref{sec:sess_daemon}),
                               introdotta dal kernel 2.6.38 come capacità
                               separata da \const{CAP\_SYS\_ADMIN}.\\
-    \const{CAP\_WAKE\_ALARM}& Usare i timer di tipo
+    \constd{CAP\_WAKE\_ALARM}&Usare i timer di tipo
                               \const{CLOCK\_BOOTTIME\_ALARM} e
                               \const{CLOCK\_REALTIME\_ALARM}, vedi
                               sez.~\ref{sec:sig_timer_adv} (dal kernel 3.0).\\  
@@ -6906,6 +6908,7 @@ opportuno dettagliare maggiormente.
 \label{tab:proc_capabilities}
 \end{table}
 
+\constbeg{CAP\_SETPCAP}
 
 Prima di dettagliare il significato della capacità più generiche, conviene
 però dedicare un discorso a parte a \const{CAP\_SETPCAP}, il cui significato è
@@ -6930,6 +6933,9 @@ processo di eliminare una capacità dal proprio \textit{bounding set} (con la
 conseguente impossibilità successiva di eseguire programmi con quella
 capacità), o di impostare i \textit{securebits} delle \textit{capabilities}.
 
+\constend{CAP\_SETPCAP}
+\constbeg{CAP\_FOWNER}
+
 La prima fra le capacità ``\textsl{ampie}'' che occorre dettagliare
 maggiormente è \const{CAP\_FOWNER}, che rimuove le restrizioni poste ad un
 processo che non ha la proprietà di un file in un vasto campo di
@@ -6946,6 +6952,9 @@ sez.~\ref{sec:file_special_perm}), la possibilità di impostare il flag di
 sez.~\ref{sec:file_open_close} e sez.~\ref{sec:file_fcntl_ioctl}) senza
 restrizioni.
 
+\constend{CAP\_FOWNER}
+\constbeg{CAP\_NET\_ADMIN}
+
 Una seconda capacità che copre diverse operazioni, in questo caso riguardanti
 la rete, è \const{CAP\_NET\_ADMIN}, che consente di impostare le opzioni
 privilegiate dei socket (vedi sez.~\ref{sec:sock_generic_options}), abilitare
@@ -6953,6 +6962,9 @@ il \textit{multicasting} (vedi sez.\ref{sec:sock_ipv4_options}), eseguire la
 configurazione delle interfacce di rete (vedi
 sez.~\ref{sec:sock_ioctl_netdevice}) ed impostare la tabella di instradamento.
 
+\constend{CAP\_NET\_ADMIN}
+\constbeg{CAP\_SYS\_ADMIN}
+
 Una terza \textit{capability} con vasto campo di applicazione è
 \const{CAP\_SYS\_ADMIN}, che copre una serie di operazioni amministrative,
 come impostare le quote disco (vedi sez.\ref{sec:disk_quota}), attivare e
@@ -6966,12 +6978,15 @@ sez.~\ref{sec:socket_credential_xxx}), assegnare classi privilegiate
 (\const{IOPRIO\_CLASS\_RT} e prima del kernel 2.6.25 anche
 \const{IOPRIO\_CLASS\_IDLE}) per lo scheduling dell'I/O (vedi
 sez.~\ref{sec:io_priority}), superare il limite di sistema sul numero massimo
-di file aperti,\footnote{quello indicato da \sysctlfile{fs/file-max}.}
+di file aperti,\footnote{quello indicato da \sysctlfiled{fs/file-max}.}
 effettuare operazioni privilegiate sulle chiavi mantenute dal kernel (vedi
 sez.~\ref{sec:keyctl_management}), usare la funzione \func{lookup\_dcookie},
 usare \const{CLONE\_NEWNS} con \func{unshare} e \func{clone}, (vedi
 sez.~\ref{sec:process_clone}).
 
+\constend{CAP\_SYS\_ADMIN}
+\constbeg{CAP\_SYS\_NICE}
+
 Originariamente \const{CAP\_SYS\_NICE} riguardava soltanto la capacità di
 aumentare le priorità di esecuzione dei processi, come la diminuzione del
 valore di \textit{nice} (vedi sez.~\ref{sec:proc_sched_stand}), l'uso delle
@@ -6983,6 +6998,9 @@ alla memoria, essa viene a coprire anche la possibilità di assegnare priorità
 arbitrarie nell'accesso a disco (vedi sez.~\ref{sec:io_priority}) e nelle
 politiche di allocazione delle pagine di memoria ai nodi di un sistema NUMA.
 
+\constend{CAP\_SYS\_NICE}
+\constbeg{CAP\_SYS\_RESOURCE}
+
 Infine la \textit{capability} \const{CAP\_SYS\_RESOURCE} attiene alla
 possibilità di superare i limiti imposti sulle risorse di sistema, come usare
 lo spazio disco riservato all'amministratore sui filesystem che lo supportano,
@@ -6992,6 +7010,8 @@ risorse di un processo (vedi sez.~\ref{sec:sys_resource_limit}) e quelle sul
 numero di processi, ed i limiti sulle dimensioni dei messaggi delle code del
 SysV IPC (vedi sez.~\ref{sec:ipc_sysv_mq}).
 
+\constend{CAP\_SYS\_RESOURCE}
+
 Per la gestione delle \textit{capabilities} il kernel mette a disposizione due
 funzioni che permettono rispettivamente di leggere ed impostare i valori dei
 tre insiemi illustrati in precedenza. Queste due funzioni di sistema sono
@@ -7032,7 +7052,7 @@ fig.~\ref{fig:cap_kernel_struct}.  Per un certo periodo di tempo era anche
 indicato che per poterle utilizzare fosse necessario che la macro
 \macro{\_POSIX\_SOURCE} risultasse non definita (ed era richiesto di inserire
 una istruzione \texttt{\#undef \_POSIX\_SOURCE} prima di includere
-\headfile{sys/capability.h}) requisito che non risulta più
+\headfiled{sys/capability.h}) requisito che non risulta più
 presente.\footnote{e non è chiaro neanche quanto sia mai stato davvero
   necessario.}
 
@@ -7041,7 +7061,7 @@ presente.\footnote{e non è chiaro neanche quanto sia mai stato davvero
   \centering
   \begin{minipage}[c]{0.8\textwidth}
     \includestruct{listati/cap_user_header_t.h}
-  \end{minipage} 
+  \end{minipage}
   \normalsize 
   \caption{Definizione delle strutture a cui fanno riferimento i puntatori
     \structd{cap\_user\_header\_t} e \structd{cap\_user\_data\_t} usati per
@@ -7102,7 +7122,7 @@ della suddetta libreria attraverso l'opzione \texttt{-lcap}.
 
 Le funzioni dell'interfaccia alle \textit{capabilities} definite nelle bozze
 dello standard POSIX.1e prevedono l'uso di un tipo di dato opaco,
-\type{cap\_t}, come puntatore ai dati mantenuti nel cosiddetto
+\typed{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
@@ -7240,12 +7260,12 @@ tab.~\ref{tab:cap_set_identifier}.
     \textbf{Valore} & \textbf{Significato} \\
     \hline
     \hline
-    \const{CAP\_EFFECTIVE}  & Capacità dell'insieme \textsl{effettivo}.\\
-    \const{CAP\_PERMITTED}  & Capacità dell'insieme \textsl{permesso}.\\ 
-    \const{CAP\_INHERITABLE}& Capacità dell'insieme \textsl{ereditabile}.\\
+    \constd{CAP\_EFFECTIVE}  & Capacità dell'insieme \textsl{effettivo}.\\
+    \constd{CAP\_PERMITTED}  & Capacità dell'insieme \textsl{permesso}.\\ 
+    \constd{CAP\_INHERITABLE}& Capacità dell'insieme \textsl{ereditabile}.\\
     \hline
   \end{tabular}
-  \caption{Valori possibili per il tipo di dato \type{cap\_flag\_t} che
+  \caption{Valori possibili per il tipo di dato \typed{cap\_flag\_t} che
     identifica gli insiemi delle \textit{capabilities}.}
   \label{tab:cap_set_identifier}
 \end{table}
@@ -7276,7 +7296,7 @@ questo si può infatti usare la apposita macro \macro{CAP\_DIFFERS}:
 \vspace{3pt}
 \begin{funcbox}{
 \fhead{sys/capability.h}
-\fdecl{int \macro{CAP\_DIFFERS}(value, flag)}
+\fdecl{int \macrod{CAP\_DIFFERS}(value, flag)}
 \fdesc{Controlla lo stato di eventuali differenze delle \textit{capabilities}
   nell'insieme \texttt{flag}.}
 }
@@ -7317,7 +7337,7 @@ In entrambe le funzioni l'argomento \param{cap\_p} indica il puntatore al
 indica su quale dei tre insiemi si intende operare, sempre con i valori di
 tab.~\ref{tab:cap_set_identifier}.  La capacità che si intende controllare o
 impostare invece deve essere specificata attraverso una variabile di tipo
-\type{cap\_value\_t}, che può prendere come valore uno qualunque di quelli
+\typed{cap\_value\_t}, che può prendere come valore uno qualunque di quelli
 riportati in tab.~\ref{tab:proc_capabilities}, in questo caso però non è
 possibile combinare diversi valori in una maschera binaria, una variabile di
 tipo \type{cap\_value\_t} può indicare una sola capacità.\footnote{in
@@ -7338,11 +7358,11 @@ tab.~\ref{tab:cap_value_type}.
     \textbf{Valore} & \textbf{Significato} \\
     \hline
     \hline
-    \const{CAP\_CLEAR}& La capacità non è impostata.\\ 
-    \const{CAP\_SET}  & La capacità è impostata.\\
+    \constd{CAP\_CLEAR}& La capacità non è impostata.\\ 
+    \constd{CAP\_SET}  & La capacità è impostata.\\
     \hline
   \end{tabular}
-  \caption{Valori possibili per il tipo di dato \type{cap\_flag\_value\_t} che
+  \caption{Valori possibili per il tipo di dato \typed{cap\_flag\_value\_t} che
     indica lo stato di una capacità.}
   \label{tab:cap_value_type}
 \end{table}
@@ -7659,15 +7679,13 @@ directory di lavoro, ha anche una directory \textsl{radice}\footnote{entrambe
   \kstruct{fs\_struct}; vedi fig.~\ref{fig:proc_task_struct}.} che, pur
 essendo di norma corrispondente alla radice dell'albero dei file dell'intero
 sistema, ha per il processo il significato specifico di directory rispetto
-alla quale vengono risolti i \itindsub{pathname}{assoluto}\textit{pathname}
-assoluti.\footnote{cioè quando un processo chiede la risoluzione di un
-  \textit{pathname}, il kernel usa sempre questa directory come punto di
-  partenza.} Il fatto che questo valore sia specificato per ogni processo apre
-allora la possibilità di modificare le modalità di risoluzione dei
-\itindsub{pathname}{assoluto} \textit{pathname} assoluti da parte di un
-processo cambiando questa directory, così come si fa coi
-\itindsub{pathname}{relativo} \textit{pathname} relativi cambiando la
-directory di lavoro.
+alla quale vengono risolti i \textit{pathname} assoluti.\footnote{cioè quando
+  un processo chiede la risoluzione di un \textit{pathname}, il kernel usa
+  sempre questa directory come punto di partenza.} Il fatto che questo valore
+sia specificato per ogni processo apre allora la possibilità di modificare le
+modalità di risoluzione dei \textit{pathname} assoluti da parte di un processo
+cambiando questa directory, così come si fa coi \textit{pathname} relativi
+cambiando la directory di lavoro.
 
 Normalmente la directory radice di un processo coincide con la radice generica
 dell'albero dei file, che è la directory che viene montata direttamente dal
@@ -7700,12 +7718,11 @@ directory radice con la funzione di sistema \funcd{chroot}, il cui prototipo
 \end{funcproto}
 
 La funzione imposta la directory radice del processo a quella specificata da
-\param{path} (che ovviamente deve esistere) ed ogni
-\itindsub{pathname}{assoluto} \textit{pathname} assoluto usato dalle funzioni
-chiamate nel processo sarà risolto a partire da essa, rendendo impossibile
-accedere alla parte di albero sovrastante. Si ha così quella che viene
-chiamata una \textit{chroot jail}, in quanto il processo non può più accedere
-a file al di fuori della sezione di albero in cui è stato
+\param{path} (che ovviamente deve esistere) ed ogni \textit{pathname} assoluto
+usato dalle funzioni chiamate nel processo sarà risolto a partire da essa,
+rendendo impossibile accedere alla parte di albero sovrastante. Si ha così
+quella che viene chiamata una \textit{chroot jail}, in quanto il processo non
+può più accedere a file al di fuori della sezione di albero in cui è stato
 \textsl{imprigionato}.
 
 Solo un processo con i privilegi di amministratore può usare questa
@@ -7719,10 +7736,9 @@ Questo è il motivo per cui la funzione è efficace nel restringere un processo
 ad un ramo di albero solo se dopo averla eseguita si cedono i privilegi di
 amministratore. Infatti se per un qualunque motivo il processo resta con la
 sua directory di lavoro al di fuori dalla \textit{chroot jail}, potrà accedere
-a tutto il resto del filesystem usando \itindsub{pathname}{relativo} dei
-\textit{pathname} relativi, dato che in tal caso è possibile, grazie all'uso
-di ``\texttt{..}'', risalire all'indietro fino alla radice effettiva
-dell'albero dei file.
+a tutto il resto del filesystem usando dei \textit{pathname} relativi, dato
+che in tal caso è possibile, grazie all'uso di ``\texttt{..}'', risalire
+all'indietro fino alla radice effettiva dell'albero dei file.
 
 Potrebbe sembrare che per risolvere il problema sia sufficiente ricordarsi di
 eseguire preventivamente anche una \func{chdir} sulla directory su cui si