Aggiornamenti restati indietro.
authorSimone Piccardi <piccardi@gnulinux.it>
Mon, 26 Apr 2010 09:06:34 +0000 (09:06 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Mon, 26 Apr 2010 09:06:34 +0000 (09:06 +0000)
filedir.tex
fileintro.tex

index e14c105d31f6e07a39d8d7bac9efe5a3b44b8d81..1d6fe04700460417ea3c01d9009cb183f32f1a6d 100644 (file)
@@ -2947,7 +2947,7 @@ situazione di ``\textsl{tutto o nulla}''.
 
 Il meccanismo completo delle \textit{capabilities}\footnote{l'implementazione
   si rifà ad una bozza di quello che doveva diventare lo standard POSIX.1e,
-  ormai abbandonato.} prevede inoltre la possibilità di associare le stesse ai
+  poi abbandonato.} prevede inoltre la possibilità di associare le stesse ai
 singoli file eseguibili, in modo da poter stabilire quali capacità possono
 essere utilizzate quando viene messo in esecuzione uno specifico programma; ma
 il supporto per questa funzionalità è stato introdotto soltanto a partire dal
index 0048b3b67473735040a5c6086ff501186d6465a8..901a610e22be855265a53dcb8089072517a9d35a 100644 (file)
@@ -511,7 +511,7 @@ partizione pu
 dell'informazione su un disco è riportata in fig.~\ref{fig:file_disk_filesys};
 in essa si fa riferimento alla struttura del filesystem \acr{ext2}, che
 prevede una separazione dei dati in \textit{block group} che replicano il
-superblock (ma sulle caratteristiche di \acr{ext2} torneremo in
+superblock (ma sulle caratteristiche di \acr{ext2} e derivati torneremo in
 sez.~\ref{sec:file_ext2}). È comunque caratteristica comune di tutti i
 filesystem per Unix, indipendentemente da come poi viene strutturata nei
 dettagli questa informazione, prevedere una divisione fra la lista degli
@@ -547,16 +547,16 @@ particolare 
 
 \begin{enumerate}
   
-\item L'\textit{inode} \index{inode} contiene tutte le informazioni
-  riguardanti il file: il tipo di file, i permessi di accesso, le dimensioni,
-  i puntatori ai blocchi fisici che contengono i dati e così via, cioè quelli
-  che in genere vengono chiamati i \textsl{metadati} del file; le informazioni
-  che la funzione \func{stat} fornisce provengono dall'\textit{inode}; dentro
-  una directory si troverà solo il nome del file e il numero \index{inode}
-  dell'\textit{inode} ad esso associato, cioè quella che da qui in poi
-  chiameremo una ``\textsl{voce}'', come traduzione dell'inglese
-  \textit{directory entry}, che non useremo anche per evitare confusione con
-  le \textit{dentry} del kernel di cui si parlava in sez.~\ref{sec:file_vfs}.
+\item L'\textit{inode} \index{inode} contiene tutte le informazioni (i
+  cosiddetti \textsl{metadati}) riguardanti il file: il tipo di file, i
+  permessi di accesso, le dimensioni, i puntatori ai blocchi fisici che
+  contengono i dati e così via. Le informazioni che la funzione \func{stat}
+  fornisce provengono dall'\textit{inode}; dentro una directory si troverà
+  solo il nome del file e il numero \index{inode} dell'\textit{inode} ad esso
+  associato, cioè quella che da qui in poi chiameremo una \textsl{voce} (come
+  traduzione dell'inglese \textit{directory entry}, che non useremo anche per
+  evitare confusione con le \textit{dentry} del kernel di cui si parlava in
+  sez.~\ref{sec:file_vfs}).
   
 \item Come mostrato in fig.~\ref{fig:file_filesys_detail} si possono avere più
   voci che puntano allo stesso \textit{inode}. Ogni \textit{inode} ha un
@@ -619,20 +619,27 @@ referenziata anche dalla voce ``\texttt{..}'' di \texttt{img}.
 \label{sec:file_ext2}
 
 Il filesystem standard più usato con Linux è il cosiddetto \textit{third
-  extended filesystem}, identificato dalla sigla \acr{ext3}. Esso nasce come
-evoluzione del precedente \textit{second extended filesystem}, o \acr{ext2},
-di cui eredita gran parte delle caratteristiche di base, per questo, per
-mantenere un minimo di semplicità, parleremo anzitutto di questo, dato che
-molto di quanto diremo si applica anche ad \acr{ext3}.
+  extended filesystem}, identificato dalla sigla \acr{ext3}.\footnote{si fa
+  riferimento al momento della stesura di questo paragrafo, l'inizio del
+  2010.} Esso nasce come evoluzione del precedente \textit{second extended
+  filesystem}, o \acr{ext2}, di cui eredita gran parte delle caratteristiche
+di base, per questo motivo parleremo anzitutto di questo, dato che molto di
+quanto diremo si applica anche ad \acr{ext3}. A partire dal kernel 2.6.XX è
+stato dichiarato stabile il nuovo filsesystem \textit{ext4}, ulteriore
+evoluzione di \textit{ext3} dotato di molte caratteristiche avanzate, che sta
+iniziando a sostituirlo gradualmente.
 
 Il filesystem \acr{ext2} nasce come filesystem nativo di Linux a partire dalle
-prime versioni del kernel e supporta tutte le caratteristiche di un
-filesystem standard Unix; è in grado di gestire nomi di file lunghi (256
-caratteri, estensibili a 1012) e supporta una dimensione massima dei file fino
-a 4~Tb.
+prime versioni del kernel e supporta tutte le caratteristiche di un filesystem
+standard Unix: è in grado di gestire nomi di file lunghi (256 caratteri,
+estensibili a 1012) e supporta una dimensione massima dei file fino a 4~Tb. I
+successivi filesystem \acr{ext3} ed \acr{ext4} sono evoluzioni di questo
+filesystem, e sia pure con molti miglioramenti ed estensioni significative ne
+mantengono in sostanza le caratteristiche fondamentali.
 
 Oltre alle caratteristiche standard, \acr{ext2} fornisce alcune estensioni che
-non sono presenti sugli altri filesystem Unix. Le principali sono le seguenti:
+non sono presenti su un classico filesystem di tipo Unix; le principali sono
+le seguenti:
 \begin{itemize}
 \item i \textit{file attributes} consentono di modificare il comportamento del
   kernel quando agisce su gruppi di file. Possono essere impostati su file e
@@ -671,6 +678,13 @@ in gruppi di blocchi.\footnote{non si confonda questa definizione con
   \texttt{ext2\_fs.h} nella directory \texttt{include/linux} dei sorgenti del
   kernel.}
 
+Ciascun gruppo di blocchi contiene una copia delle informazioni essenziali del
+filesystem (superblock e descrittore del filesystem sono quindi ridondati) per
+una maggiore affidabilità e possibilità di recupero in caso di corruzione del
+superblock principale. L'utilizzo di raggruppamenti di blocchi ha inoltre
+degli effetti positivi nelle prestazioni dato che viene ridotta la distanza
+fra i dati e la tabella degli \index{inode} inode.
+
 \begin{figure}[htb]
   \centering
   \includegraphics[width=9cm]{img/dir_struct}  
@@ -678,15 +692,6 @@ in gruppi di blocchi.\footnote{non si confonda questa definizione con
   \label{fig:file_ext2_dirs}
 \end{figure}
 
-Ciascun gruppo di blocchi contiene una copia delle informazioni essenziali del
-filesystem (superblock e descrittore del filesystem sono quindi ridondati) per
-una maggiore affidabilità e possibilità di recupero in caso di corruzione del
-superblock principale.
-
-L'utilizzo di raggruppamenti di blocchi ha inoltre degli effetti positivi
-nelle prestazioni dato che viene ridotta la distanza fra i dati e la tabella
-degli \index{inode} inode.
-
 Le directory sono implementate come una \itindex{linked~list} \textit{linked
   list} con voci di dimensione variabile. Ciascuna voce della lista contiene
 il numero di inode \index{inode}, la sua lunghezza, il nome del file e la sua
@@ -694,6 +699,19 @@ lunghezza, secondo lo schema in fig.~\ref{fig:file_ext2_dirs}; in questo modo
 è possibile implementare nomi per i file anche molto lunghi (fino a 1024
 caratteri) senza sprecare spazio disco.
 
+Con l'introduzione del filesystem \textit{ext3} sono state introdotte anche
+alcune modifiche strutturali, la principale di queste è quella che
+\textit{ext3} è un filesystem \textit{jounrnaled}, è cioè in grado di eseguire
+una registrazione delle operazioni di scrittura su un giornale (uno speciale
+file interno) in modo da poter garantire il ripristino della coerenza dei dati
+del filesystem\footnote{si noti bene che si è parlato di dati \textsl{del}
+  filesystem, non di dati \textsl{nel} filesystem, quello di cui viene
+  garantito un veloce ripristino è relativo ai dati della struttura interna
+  del filesystem, non di eventuali dati contenuti nei file che potrebbero
+  essere stati persi.} in brevissimo tempo in caso di interruzione improvvisa
+della corrente o di crollo del sistema che abbia causato una interruzione
+della scrittura dei dati sul disco.
+
 % TODO portare a ext3, ext4 e btrfs ed illustrare le problematiche che si
 % possono incontrare (in particolare quelle relative alla perdita di contenuti
 % in caso di crash del sistema)