X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileintro.tex;h=794d61159b96fe74cb463c39be53c3697fbdc405;hp=359a1e26391e07f38de5b5186c64638d215997e8;hb=3498a6fc0fd13e07cacdea210cb99126d5052fbc;hpb=999678703d956565dbc4c1707482e9114026be82 diff --git a/fileintro.tex b/fileintro.tex index 359a1e2..794d611 100644 --- a/fileintro.tex +++ b/fileintro.tex @@ -471,7 +471,8 @@ metodi che implementano le operazioni disponibili sul file. In questo modo i processi in user space possono accedere alle operazioni attraverso detti metodi, che saranno diversi a seconda del tipo di file (o dispositivo) aperto (su questo torneremo in dettaglio in \secref{sec:file_fd}). Un elenco delle -operazioni previste dal kernel è riportato in \ntab. +operazioni previste dal kernel è riportato in +\tabref{tab:file_file_operations}. \begin{table}[htb] \centering @@ -533,13 +534,14 @@ alle caratteristiche comuni di qualunque filesystem di sistema unix-like. Lo spazio fisico di un disco viene usualmente diviso in partizioni; ogni partizione può contenere un filesystem. La strutturazione tipica -dell'informazione su un disco è riportata in \nfig; in essa si fa riferimento -alla struttura del filesystem \acr{ext2}, che prevede una separazione dei dati -in \textit{blocks group} che replicano il superblock (ma sulle caratteristiche -di \acr{ext2} torneremo in \secref{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 inodes e lo spazio a disposizione per i dati e le directory. +dell'informazione su un disco è riportata in \figref{fig:file_disk_filesys}; +in essa si fa riferimento alla struttura del filesystem \acr{ext2}, che +prevede una separazione dei dati in \textit{blocks group} che replicano il +superblock (ma sulle caratteristiche di \acr{ext2} torneremo in +\secref{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 +inodes e lo spazio a disposizione per i dati e le directory. \begin{figure}[htb] \centering @@ -553,7 +555,8 @@ Se si va ad esaminare con maggiore dettaglio la strutturazione dell'informazione all'interno del singolo filesystem (tralasciando i dettagli relativi al funzionamento del filesystem stesso come la strutturazione in gruppi dei blocchi, il superblock e tutti i dati di gestione) possiamo -esemplificare la situazione con uno schema come quello esposto in \nfig. +esemplificare la situazione con uno schema come quello esposto in +\figref{fig:file_filesys_detail}. \begin{figure}[htb] \centering @@ -562,11 +565,11 @@ esemplificare la situazione con uno schema come quello esposto in \nfig. \label{fig:file_filesys_detail} \end{figure} -Da \curfig\ si evidenziano alcune delle caratteristiche di base di un -filesystem, sulle quali è bene porre attenzione visto che sono fondamentali -per capire il funzionamento delle funzioni che manipolano i file e le -directory che tratteremo nel prossimo capitolo; in particolare è opportuno -ricordare sempre che: +Da \figref{fig:file_filesys_detail} si evidenziano alcune delle +caratteristiche di base di un filesystem, sulle quali è bene porre attenzione +visto che sono fondamentali per capire il funzionamento delle funzioni che +manipolano i file e le directory che tratteremo nel prossimo capitolo; in +particolare è opportuno ricordare sempre che: \begin{enumerate} @@ -579,15 +582,15 @@ ricordare sempre che: traduzione dell'inglese \textit{directory entry}, che non useremo anche per evitare confusione con le \textit{dentry} del kernel di cui si parlava in \secref{sec:file_vfs}). - -\item Come mostrato in \curfig\ si possono avere più voci che puntano allo - stesso \textit{inode}. Ogni \textit{inode} ha un contatore che contiene il - numero di riferimenti (\textit{link count}) che sono stati fatti ad esso; - solo quando questo contatore si annulla i dati del file vengono - effettivamente rimossi dal disco. Per questo la funzione per cancellare un - file si chiama \func{unlink}, ed in realtà non cancella affatto i dati del - file, ma si limita ad eliminare la relativa voce da una directory e - decrementare il numero di riferimenti nell'\textit{inode}. + +\item Come mostrato in \figref{fig:file_filesys_detail} si possono avere più + voci che puntano allo stesso \textit{inode}. Ogni \textit{inode} ha un + contatore che contiene il numero di riferimenti (\textit{link count}) che + sono stati fatti ad esso; solo quando questo contatore si annulla i dati del + file vengono effettivamente rimossi dal disco. Per questo la funzione per + cancellare un file si chiama \func{unlink}, ed in realtà non cancella + affatto i dati del file, ma si limita ad eliminare la relativa voce da una + directory e decrementare il numero di riferimenti nell'\textit{inode}. \item Il numero di \textit{inode} nella voce si riferisce ad un \textit{inode} nello stesso filesystem e non ci può essere una directory che contiene @@ -605,9 +608,10 @@ ricordare sempre che: Infine è bene avere presente che, essendo file pure loro, esiste un numero di riferimenti anche per le directory; per cui, se a partire dalla situazione -mostrata in \curfig\ creiamo una nuova directory \file{img} nella directory -\file{gapil}, avremo una situazione come quella in \nfig, dove per chiarezza -abbiamo aggiunto dei numeri di inode. +mostrata in \figref{fig:file_filesys_detail} creiamo una nuova directory +\file{img} nella directory \file{gapil}, avremo una situazione come quella in +\figref{fig:file_dirs_link}, dove per chiarezza abbiamo aggiunto dei numeri di +inode. \begin{figure}[htb] \centering @@ -686,9 +690,9 @@ inode. Le directory sono implementate come una linked list con voci di dimensione variabile. Ciascuna voce della lista contiene il numero di inode, la sua -lunghezza, il nome del file e la sua lunghezza, secondo lo schema in \curfig; -in questo modo è possibile implementare nomi per i file anche molto lunghi -(fino a 1024 caratteri) senza sprecare spazio disco. +lunghezza, il nome del file e la sua lunghezza, secondo lo schema in +\figref{fig:file_ext2_dirs}; in questo modo è possibile implementare nomi per +i file anche molto lunghi (fino a 1024 caratteri) senza sprecare spazio disco.