From: Simone Piccardi Date: Mon, 26 Apr 2010 09:06:34 +0000 (+0000) Subject: Aggiornamenti restati indietro. X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=commitdiff_plain;h=f0f00a6c19f809e188a588e25b48f859148ff971 Aggiornamenti restati indietro. --- diff --git a/filedir.tex b/filedir.tex index e14c105..1d6fe04 100644 --- a/filedir.tex +++ b/filedir.tex @@ -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 diff --git a/fileintro.tex b/fileintro.tex index 0048b3b..901a610 100644 --- a/fileintro.tex +++ b/fileintro.tex @@ -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)