richiedono una gran numero di accessi, come le ACL.} e di garantire
l'atomicità di tutte le operazioni.
+In Linux gli attributi estesi sono sempre associati al singolo inode e
+l'accesso viene sempre eseguito in forma atomica, in lettura il valore
+corrente viene scritto su un buffer in memoria, mentre la scrittura prevede
+che ogni valore precedente sia sovrascritto. L'accesso agli attributi estesi è
+regolato dagli ordinari permessi dei file: occorre il permesso di lettura per
+leggerli e quello di scrittura per scriverli o modificarli; il permesso di
+esecuzione viene invece interpretato coma la capacità di ottenere la lista
+degli attributi presenti.
+
+Si tenga presente che non tutti i filesystem supportano gli \textit{Extended
+ Attributes}, in particolare al momento della scrittura di queste dispense
+essi sono presenti solo su \textsl{ext2}, \textsl{ext3} e \textsl{XFS}.
+Inoltre a seconda della implementazione ci possono essere dei limiti sulla
+quantità di attributi che si possono utilizzare.\footnote{ad esempio nel caso
+ di \textsl{ext2} ed \textsl{ext3} è richiesto che essi siano contenuti
+ all'interno di un singolo blocco (pertanto con dimensioni massime
+ dell'ordine di 1024, 2048 o 4096 byte a seconda delle dimensioni di
+ quest'ultimo impostate in fase di formattazione), mentre con \textsl{XFS}
+ non ci sono limiti ed i dati vengono memorizzati in maniera diversa
+ (nell'inode stesso, in un blocco a parte, in una struttura ad albero
+ dedicata) per mantentere la scalabilità.} Infine lo spazio utilizzato per
+mantenere gli attributi estesi viene tenuto in conto per il calcolo delle
+quote di utente e gruppo proprietari del file.
+
+Come accennato gli \textit{Extended Attributes} costituiscono un meccanismo
+per mantenere informazioni ulteriori associate al singolo file, che possono
+avere gli usi più disparati.\footnote{come accennato sono usati per le ACL che
+ vedremo in sez.~\ref{sec:file_ACL}, ma anche per le estensioni di SELinux.}
+Per poter distinguere i vari utilizzi possibili gli attributi sono stati
+suddivisi in diverse \textsl{classi}, a cui poter applicare requisiti diversi
+per l'accesso e la gestione. Per questo motivo il nome di un attributo deve
+essere sempre specificato nella forma \texttt{namespace.attribute},
+\textit{namespace} fa riferimento alla classe a cui l'attributo appartiene; al
+momento della scrittura di queste dispense essi sono definite le seguenti
+classi:
+
+
+
+
+
+
+
+\begin{table}[htb]
+ \centering
+ \footnotesize
+ \begin{tabular}{|c|l|}
+ \hline
+ \textbf{Nome} & \textbf{Classe} \\
+ \hline
+ \hline
+ \const{security}& . \\
+ \const{system} & . \\
+ \const{trusted} & . \\
+ \const{user} & . \\
+ \hline
+ \end{tabular}
+ \caption{I nomi utilizzati valore di \texttt{namespace} per distinguere le
+ varue classi di \textit{Extended Attributes}.}
+ \label{tab:extended_attribute_class}
+\end{table}