Correzioni ortografiche generali, con creazione dei vocabolari locali
[gapil.git] / fileintro.tex
index 3ac94752e0a946e7f1e4a3a5c701406e28128bc3..129df40c8c1492295fbdcd40aa2111b7f71b70e4 100644 (file)
@@ -43,7 +43,6 @@ Questo viene fatto strutturando l'informazione sul disco attraverso quello che
 si chiama un \textit{filesystem} (vedi sez.~\ref{sec:file_arch_func}), essa
 poi viene resa disponibile ai processi attraverso quello che viene chiamato il
 \textsl{montaggio} del \textit{filesystem}.
-% (approfondiremo tutto ciò in sez.~\ref{sec:file_arch_func}).
 
 In questa sezione faremo una panoramica generica su come il sistema presenta
 i file ai processi, trattando l'organizzazione di file e directory, i tipi di
@@ -265,14 +264,15 @@ utilizzando il tipo \ctyp{FILE *}.  L'interfaccia 
 \file{stdio.h}.
 
 Entrambe le interfacce possono essere usate per l'accesso ai file come agli
-altri oggetti del VFS (fifo, socket\index{socket}, device, sui quali torneremo
-in dettaglio a tempo opportuno), ma per poter accedere alle operazioni di
-controllo (descritte in sez.~\ref{sec:file_fcntl} e sez.~\ref{sec:file_ioctl})
-su un qualunque tipo di oggetto del VFS occorre usare l'interfaccia standard
-di Unix con i \textit{file descriptor}. Allo stesso modo devono essere usati i
-\textit{file descriptor}\index{file!descriptor} se si vuole ricorrere a
-modalità speciali di I/O come il \textit{file locking}\index{file!locking} o
-l'I/O non-bloccante (vedi cap.~\ref{cha:file_advanced}).
+altri oggetti del VFS (fifo, socket\index{socket}, dispositivi, sui quali
+torneremo in dettaglio a tempo opportuno), ma per poter accedere alle
+operazioni di controllo (descritte in sez.~\ref{sec:file_fcntl} e
+sez.~\ref{sec:file_ioctl}) su un qualunque tipo di oggetto del VFS occorre
+usare l'interfaccia standard di Unix con i \textit{file descriptor}. Allo
+stesso modo devono essere usati i \textit{file descriptor}
+\index{file!descriptor} se si vuole ricorrere a modalità speciali di I/O come
+il \textit{file locking}\index{file!locking} o l'I/O non-bloccante (vedi
+cap.~\ref{cha:file_advanced}).
 
 Gli \textit{stream} forniscono un'interfaccia di alto livello costruita sopra
 quella dei \textit{file descriptor}, che permette di poter scegliere tra
@@ -302,12 +302,6 @@ portabilit
 \section{L'architettura della gestione dei file}
 \label{sec:file_arch_func}
 
-%% Per capire fino in fondo le proprietà di file e directory in un sistema
-%% unix-like ed il comportamento delle relative funzioni di manipolazione,
-%% occorre una breve introduzione al funzionamento della gestione dei file da
-%% parte del kernel e sugli oggetti su cui è basato un filesystem. In particolare
-%% occorre tenere presente dov'è che si situa la divisione fondamentale fra
-%% kernel space e user space che tracciavamo al cap.~\ref{cha:intro_unix}.
 
 In questa sezione esamineremo come viene implementato l'accesso ai file in
 Linux, come il kernel può gestire diversi tipi di filesystem, descrivendo
@@ -315,21 +309,10 @@ prima le caratteristiche generali di un filesystem di un sistema unix-like,
 per poi trattare in maniera un po' più dettagliata il filesystem più usato con
 Linux, l'\acr{ext2}.
 
-% in particolare si riprenderà, approfondendolo sul piano dell'uso nelle
-% funzioni di libreria, il concetto di \textit{inode} di cui abbiamo brevemente
-% accennato le caratteristiche (dal lato dell'implementazione nel kernel) in
-% sez.~\ref{sec:file_vfs}.
-
 
 \subsection{Il \textit{Virtual File System} di Linux}
 \label{sec:file_vfs}
 
-% Questa sezione riporta informazioni sui dettagli di come il kernel gestisce i
-% file.  L'argomento è abbastanza ``esoterico'' e questa sezione può essere
-% saltata ad una prima lettura; è bene però tenere presente che vengono
-% introdotti qui alcuni termini che potranno comparire in seguito, come
-% \textit{inode}, \textit{dentry}, \textit{dcache}.
-
 \itindbeg{Virtual~File~System}
 In Linux il concetto di \textit{everything is a file} è stato implementato
 attraverso il \textit{Virtual File System} (da qui in avanti VFS) che è uno
@@ -344,7 +327,7 @@ albero delle directory.
 Quando un processo esegue una system call che opera su un file, il kernel
 chiama sempre una funzione implementata nel VFS; la funzione eseguirà le
 manipolazioni sulle strutture generiche e utilizzerà poi la chiamata alle
-opportune routine del filesystem specifico a cui si fa riferimento. Saranno
+opportune funzioni del filesystem specifico a cui si fa riferimento. Saranno
 queste a chiamare le funzioni di più basso livello che eseguono le operazioni
 di I/O sul dispositivo fisico, secondo lo schema riportato in
 fig.~\ref{fig:file_VFS_scheme}.
@@ -375,7 +358,7 @@ VFS pu
 nelle operazioni di montaggio. Quest'ultima è responsabile di leggere da disco
 il superblock (vedi sez.~\ref{sec:file_ext2}), inizializzare tutte le variabili
 interne e restituire uno speciale descrittore dei filesystem montati al VFS;
-attraverso quest'ultimo diventa possibile accedere alle routine specifiche per
+attraverso quest'ultimo diventa possibile accedere alle funzioni specifiche per
 l'uso di quel filesystem.
 
 Il primo oggetto usato dal VFS è il descrittore di filesystem, un puntatore ad
@@ -383,7 +366,7 @@ una apposita struttura che contiene vari dati come le informazioni comuni ad
 ogni filesystem, i dati privati relativi a quel filesystem specifico, e i
 puntatori alle funzioni del kernel relative al filesystem. Il VFS può così
 usare le funzioni contenute nel \textit{filesystem descriptor} per accedere
-alle routine specifiche di quel filesystem.
+alle funzioni specifiche di quel filesystem.
 
 Gli altri due descrittori usati dal VFS sono relativi agli altri due oggetti
 su cui è strutturata l'interfaccia. Ciascuno di essi contiene le informazioni
@@ -486,7 +469,7 @@ tab.~\ref{tab:file_file_operations}.
 In questo modo per ciascun file diventano possibili una serie di operazioni
 (non è detto che tutte siano disponibili), che costituiscono l'interfaccia
 astratta del VFS.  Qualora se ne voglia eseguire una, il kernel andrà ad
-utilizzare l'opportuna routine dichiarata in \struct{f\_ops} appropriata al
+utilizzare l'opportuna funzione dichiarata in \struct{f\_ops} appropriata al
 tipo di file in questione.
 
 Pertanto è possibile scrivere allo stesso modo sulla porta seriale come su un
@@ -686,3 +669,15 @@ caratteri) senza sprecare spazio disco.
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  everything is device kernel filesystem sez pathname root glibc
+% LocalWords:  path filename bootloader proc name components fifo socket dev LF
+% LocalWords:  resolution chroot parent Virtual System like tab cap l'I regular
+% LocalWords:  inode symbolic char block VFS VMS Windows dell'I raw access Mac
+% LocalWords:  CR dos HFS l'XFS SGI magic number descriptor system call int ext
+% LocalWords:  nell'header unistd stream dall'ANSI stdio locking POSIX fig type
+% LocalWords:  register superblock dell'inode stat entry cache dcache dentry ln
+% LocalWords:  l'inode lookup ops read write llseek ioctl readdir poll nell'I
+% LocalWords:  multiplexing mmap fsync fasync seek MacOs group dall' dell' img
+% LocalWords:  count unlink nell' rename gapil second Tb attributes BSD SVr gid
+% LocalWords:  sgid append only log fs linux extented linked list