Piccole modifiche
authorSimone Piccardi <piccardi@gnulinux.it>
Tue, 10 Jan 2012 19:22:00 +0000 (19:22 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Tue, 10 Jan 2012 19:22:00 +0000 (19:22 +0000)
filedir.tex
prochand.tex

index 9cd3f899b0918211007e63bb589573863ebd8c10..8e317862cf1ed7b01f7d793b0b4f9dc5f5a24468 100644 (file)
@@ -287,12 +287,12 @@ di dati) dovrà invece ricorrere a quelle fornite dal driver del dispositivo.
 \end{figure}
 
 Come si può notare dall'estratto di fig.~\ref{fig:kstruct_file}, la struttura
-contiene, oltre ad alcune informazioni usate dall'interfaccia dei file
-descriptor il cui significato emergerà più avanti, il puntatore \struct{f\_op}
-ad una struttura \kstruct{file\_operation}. Questa è l'analoga per i file di
-\kstruct{inode\_operation}, e definisce le operazioni generiche fornite dal
-VFS per i file. Si sono riportate in tab.~\ref{tab:file_file_operations} le
-più significative.
+\kstruct{file} contiene, oltre ad alcune informazioni usate dall'interfaccia
+dei file descriptor il cui significato emergerà più avanti, il puntatore
+\struct{f\_op} ad una struttura \kstruct{file\_operation}. Questa è l'analoga
+per i file di \kstruct{inode\_operation}, e definisce le operazioni generiche
+fornite dal VFS per i file. Si sono riportate in
+tab.~\ref{tab:file_file_operations} le più significative.
 
 \begin{table}[htb]
   \centering
@@ -332,7 +332,7 @@ Anche in questo caso tutte le volte che deve essere eseguita una
 \textit{system call} o una qualunque altra operazione sul file il VFS andrà ad
 utilizzare la funzione corrispondente attraverso il puntatore
 \var{f\_op}. Dato che è cura del VFS quando crea la struttura all'apertura del
-file, assegnare a \var{f\_op} il puntatore alla versione di
+file assegnare a \var{f\_op} il puntatore alla versione di
 \kstruct{file\_operation} corretta per quel file, sarà possibile scrivere allo
 stesso modo sulla porta seriale come su un normale file di dati, e lavorare
 sui file allo stesso modo indipendentemente dal filesystem.
@@ -340,12 +340,12 @@ sui file allo stesso modo indipendentemente dal filesystem.
 Il VFS realizza la quasi totalità delle operazioni relative ai file grazie
 alle funzioni presenti nelle due strutture \kstruct{inode\_operation} e
 \kstruct{file\_operation}.  Ovviamente non è detto che tutte le operazioni
-possibili siano poi disponibili in tutti i casi, ad esempio una \code{seek}
-non è realizzabile per un dispositivo come la porta seriale o per una fifo,
-mentre sui file del filesystem \texttt{vfat} non sono disponibili i permessi,
-ma resta il fatto che grazie al VFS le \textit{system call} per le operazioni
-sui file restano sempre le stesse nonostante le enormi differenze che possono
-esserci negli oggetti a cui si applicano.
+possibili siano poi disponibili in tutti i casi, ad esempio \code{llseek} non
+sarà presente per un dispositivo come la porta seriale o per una fifo, mentre
+sui file del filesystem \texttt{vfat} non saranno disponibili i permessi, ma
+resta il fatto che grazie al VFS le \textit{system call} per le operazioni sui
+file possono restare sempre le stesse nonostante le enormi differenze che
+possono esserci negli oggetti a cui si applicano.
  
 
 \itindend{Virtual~File~System}
@@ -355,6 +355,8 @@ esserci negli oggetti a cui si applicano.
 %       * http://thecoffeedesk.com/geocities/rkfs.html
 %       * http://www.linux.it/~rubini/docs/vfs/vfs.html
 
+
+
 \subsection{Il funzionamento di un filesystem Unix}
 \label{sec:file_filesystem}
 
@@ -461,17 +463,17 @@ opportuno tenere sempre presente che:
   è la modalità in cui opera normalmente il comando \cmd{mv} attraverso la
   funzione \func{rename} (vedi sez.~\ref{sec:file_remove}). Questa operazione
   non modifica minimamente neanche l'\textit{inode} del file, dato che non si
-  opera su questo ma sulla directory che lo contiene.
+  opera sul file ma sulla directory che lo contiene.
 
-\item Gli \textit{inode} dei file, che contengono i \textsl{metadati} ed i
+\item Gli \textit{inode} dei file, che contengono i \textsl{metadati}, ed i
   blocchi di spazio disco, che contengono i dati, sono risorse indipendenti ed
   in genere vengono gestite come tali anche dai diversi filesystem; è pertanto
   possibile esaurire sia lo spazio disco (il caso più comune) che lo spazio
   per gli \textit{inode}. Nel primo caso non sarà possibile allocare ulteriore
   spazio, ma si potranno creare file (vuoti), nel secondo non si potranno
   creare nuovi file, ma si potranno estendere quelli che ci
-  sono.\footnote{questo comportamento non è generale, alcuni filesystem evoluti
-    possono evitare il problema dell'esaurimento degli \textit{inode}
+  sono.\footnote{questo comportamento non è generale, alcuni filesystem
+    evoluti possono evitare il problema dell'esaurimento degli \textit{inode}
     riallocando lo spazio disco libero per i blocchi.}
 
 \end{enumerate}
@@ -506,19 +508,18 @@ tre, in quanto adesso sarà referenziata anche dalla voce ``\texttt{..}'' di
 \label{sec:file_ext2}
 
 
-Benché non esista il filesystem di Linux, dato che esiste un supporto nativo
-di diversi filesystem che sono in uso da anni, quello che gli avvicina di più
-è la famiglia di filesystem evolutasi a partire dal \textit{second extended
-  filesystem}, o \acr{ext2}, che nonostante il nome è stato il primo ad essere
-usato in maniera estensiva. Il filesystem \acr{ext2} ha subito un grande
-sviluppo e diverse evoluzioni, fra cui l'aggiunta del \textit{journaling} con
-\acr{ext3}, probabilmente ancora il filesystem più diffuso, ed una serie di
-ulteriori miglioramento con il successivo \acr{ext4}, che sta iniziando a
-sostituirlo gradualmente. In futuro è previsto che questo debba essere
-sostituito da un filesystem completamente diverso, \acr{btrfs}, che dovrebbe
-diventare il filesystem standard di Linux, ma questo al momento è ancora in
-fase di sviluppo.\footnote{si fa riferimento al momento dell'ultima revisione
-  di di questo paragrafo, l'inizio del 2012.}
+Benché non esista ``il'' filesystem di Linux, dato che esiste un supporto
+nativo di diversi filesystem che sono in uso da anni, quello che gli avvicina
+di più è la famiglia di filesystem evolutasi a partire dal \textit{second
+  extended filesystem}, o \acr{ext2}. Il filesystem \acr{ext2} ha subito un
+grande sviluppo e diverse evoluzioni, fra cui l'aggiunta del
+\textit{journaling} con \acr{ext3}, probabilmente ancora il filesystem più
+diffuso, ed una serie di ulteriori miglioramento con il successivo \acr{ext4},
+che sta iniziando a sostituirlo gradualmente. In futuro è previsto che questo
+debba essere sostituito da un filesystem completamente diverso, \acr{btrfs},
+che dovrebbe diventare il filesystem standard di Linux, ma questo al momento è
+ancora in fase di sviluppo.\footnote{si fa riferimento al momento dell'ultima
+  revisione di di questo paragrafo, l'inizio del 2012.}
 
 Il filesystem \acr{ext2} nasce come filesystem nativo per Linux a partire
 dalle prime versioni del kernel e supporta tutte le caratteristiche di un
@@ -610,15 +611,15 @@ contenenti un gran numero di file.
 % in caso di crash del sistema)
 
 
-\subsection{La gestione dei filesystem}
+\subsection{La gestione dell'uso dei filesystem}
 \label{sec:sys_file_config}
 
 Come accennato in sez.~\ref{sec:file_arch_overview} per poter accedere ai file
 occorre prima rendere disponibile al sistema il filesystem su cui essi sono
 memorizzati; l'operazione di attivazione del filesystem è chiamata
-\textsl{montaggio}, per far questo in Linux si usa la funzione \funcd{mount}
-il cui prototipo è:\footnote{la funzione è una versione specifica di Linux e
-  non è portabile.}
+\textsl{montaggio}, per far questo in Linux si usa la funzione \funcd{mount},
+il cui prototipo è:\footnote{la funzione è una versione specifica di Linux che
+  usa la omonima \textit{system call} e non è portabile.}
 
 \begin{funcproto}{ 
 \fhead{sys/mount.h} 
@@ -668,35 +669,33 @@ passaggio di un argomento di una funzione, si intende che questi devono essere
 indicati con la stringa contenente il loro \itindex{pathname}
 \textit{pathname}.
 
-In generale un filesystem è contenuto su un disco, e come illustrato in
-sez.~\ref{sec:file_vfs_work} l'operazione di montaggio corrisponde a rendere
-visibile il contenuto del suddetto disco, identificato attraverso il file di
-dispositivo ad esso associato, all'interno di una directory dell'albero dei
-file. 
-
-Ma la struttura del \textit{Virtual File System} vista in
-sez.~\ref{sec:file_vfs_work} è estremamente flessibile e può essere usata
-anche per oggetti diversi da un disco. Ad esempio usando il \textit{loop
-  device} si può montare un file qualunque (come l'immagine di un CD-ROM o di
-un floppy) che contiene un filesystem, inoltre alcuni filesystem, come
-\file{proc} o \file{devfs} sono del tutto virtuali, i loro dati sono generati
-al volo ad ogni lettura, e passati al kernel ad ogni scrittura.
-
-Il tipo di filesystem è specificato dall'argomento \param{filesystemtype}, che
-deve essere una delle stringhe riportate nel file
-\procfile{/proc/filesystems}, che come accennato in
-sez.~\ref{sec:file_vfs_work} contiene l'elenco dei filesystem supportati dal
-kernel. Nel caso si sia indicato uno dei filesystem virtuali, che non è
-associato a nessun file di dispositivo, il contenuto di \param{source} viene
-ignorato.
+Normalmente un filesystem è contenuto su un disco o una partizione, ma come
+illustrato in sez.~\ref{sec:file_vfs_work} la struttura del \textit{Virtual
+  File System} è estremamente flessibile e può essere usata anche per oggetti
+diversi da un disco. Ad esempio usando il \textit{loop device} si può montare
+un file qualunque (come l'immagine di un CD-ROM o di un floppy) che contiene
+l'immagine di un filesystem, inoltre alcuni tipi di filesystem, come
+\texttt{proc} o \texttt{sysfs} sono virtuali e non hanno un supporto che ne
+contenga i dati, che invece sono generati al volo ad ogni lettura, e passati
+indietro al kernel ad ogni scrittura.\footnote{costituiscono quindi un
+  meccanismo di comunicazione, attraverso l'ordinaria interfaccia dei file,
+  con il kernel.}
+
+Il tipo di filesystem che si vuole montare è specificato
+dall'argomento \param{filesystemtype}, che deve essere una delle stringhe
+riportate nel file \procfile{/proc/filesystems} che, come accennato in
+sez.~\ref{sec:file_vfs_work}, contiene l'elenco dei filesystem supportati dal
+kernel. Nel caso si sia indicato un filesystem virtuale, che non è associato a
+nessun file di dispositivo, il contenuto di \param{source} viene ignorato.
 
 L'argomento \param{data} viene usato per passare le impostazioni relative alle
 caratteristiche specifiche di ciascun filesystem. Si tratta di una stringa di
-parole chiave (separate da virgole e senza spazi) che indicano le opzioni del
-filesytem che devono essere impostate, in sostanza viene usato il contenuto
-del parametro dell'opzione \texttt{-o} del comando \texttt{mount}. I valori
-utilizzabili dipendono dal tipo di filesystem e ciascuno ha i suoi, pertanto
-si rimanda alla documentazione della pagina di manuale di questo comando. 
+parole chiave (separate da virgole e senza spazi) che indicano le cosiddette
+opzioni del filesystem che devono essere impostate, in sostanza viene usato il
+contenuto del parametro dell'opzione \texttt{-o} del comando \texttt{mount}. I
+valori utilizzabili dipendono dal tipo di filesystem e ciascuno ha i suoi,
+pertanto si rimanda alla documentazione della pagina di manuale di questo
+comando.
 
 Dopo l'esecuzione della funzione il contenuto del filesystem viene resto
 disponibile nella directory specificata come \itindex{mount~point}
@@ -727,32 +726,36 @@ valori riportati in tab.~\ref{tab:sys_mount_flags}.
 \begin{table}[htb]
   \footnotesize
   \centering
-  \begin{tabular}[c]{|l|r|p{8cm}|}
+  \begin{tabular}[c]{|l|p{8cm}|}
     \hline
-    \textbf{Parametro} & \textbf{Valore}&\textbf{Significato}\\
+    \textbf{Parametro} & \textbf{Significato}\\
     \hline
     \hline
-    \const{MS\_RDONLY}     &  1 & Monta in sola lettura.\\
-    \const{MS\_NOSUID}     &  2 & Ignora i bit \itindex{suid~bit} \acr{suid} e
-                                  \itindex{sgid~bit} \acr{sgid}.\\ 
-    \const{MS\_NODEV}      &  4 & Impedisce l'accesso ai file di dispositivo.\\
-    \const{MS\_NOEXEC}     &  8 & Impedisce di eseguire programmi.\\
-    \const{MS\_SYNCHRONOUS}& 16 & Abilita la scrittura sincrona.\\
-    \const{MS\_REMOUNT}    & 32 & Rimonta il filesystem cambiando le opzioni.\\
-    \const{MS\_MANDLOCK}   & 64 & Consente il \textit{mandatory locking} 
-                                  \itindex{mandatory~locking} (vedi
-                                  sez.~\ref{sec:file_mand_locking}).\\
-    \const{S\_WRITE}      & 128 & Scrive normalmente.\\
-    \const{S\_APPEND}     & 256 & Consente la scrittura solo in
-                                  \itindex{append~mode} \textit{append mode} 
-                                  (vedi sez.~\ref{sec:file_sharing}).\\
-    \const{S\_IMMUTABLE}  & 512 & Impedisce che si possano modificare i file.\\
-    \const{MS\_NOATIME}   &1024 & Non aggiorna gli \textit{access time} (vedi
-                                  sez.~\ref{sec:file_file_times}).\\
-    \const{MS\_NODIRATIME}&2048 & Non aggiorna gli \textit{access time} delle
-                                  directory.\\
-    \const{MS\_BIND}      &4096 & Monta il filesystem altrove.\\
-    \const{MS\_MOVE}      &8192 & Sposta atomicamente il punto di montaggio.\\
+    \const{MS\_BIND}       & Monta il filesystem altrove.\\
+    \const{MS\_DIRSYNC}    & .\\
+    \const{MS\_MANDLOCK}   & Consente il \textit{mandatory locking} 
+                             \itindex{mandatory~locking} (vedi
+                             sez.~\ref{sec:file_mand_locking}).\\
+    \const{MS\_MOVE}       & Sposta atomicamente il punto di montaggio.\\
+    \const{MS\_NOATIME}    & Non aggiorna gli \textit{access time} (vedi
+                             sez.~\ref{sec:file_file_times}).\\
+    \const{MS\_NODEV}      & Impedisce l'accesso ai file di dispositivo.\\
+    \const{MS\_NODIRATIME} & Non aggiorna gli \textit{access time} delle
+                             directory.\\
+    \const{MS\_NOEXEC}     & Impedisce di eseguire programmi.\\
+    \const{MS\_NOSUID}     & Ignora i bit \itindex{suid~bit} \acr{suid} e
+                             \itindex{sgid~bit} \acr{sgid}.\\ 
+    \const{MS\_RDONLY}     & Monta in sola lettura.\\
+    \const{MS\_RELATIME}   & .\\
+    \const{MS\_REMOUNT}    & Rimonta il filesystem cambiando le opzioni.\\
+    \const{MS\_SILENT}     & .\\
+    \const{MS\_STRICTATIME}& .\\
+    \const{MS\_SYNCHRONOUS}& Abilita la scrittura sincrona.\\
+    % \const{S\_WRITE}       &  Scrive normalmente.\\
+    % \const{S\_APPEND}      &  Consente la scrittura solo in
+    %                          \itindex{append~mode} \textit{append mode} 
+    %                          (vedi sez.~\ref{sec:file_sharing}).\\
+    % \const{S\_IMMUTABLE}   &  Impedisce che si possano modificare i file.\\
     \hline
   \end{tabular}
   \caption{Tabella dei codici dei flag di montaggio di un filesystem.}
@@ -760,7 +763,6 @@ valori riportati in tab.~\ref{tab:sys_mount_flags}.
 \end{table}
 
 % TODO aggiornare con i nuovi flag di man mount
-% gli S_* non esistono più come segnalato da Alessio...
 % verificare i readonly mount bind del 2.6.26
 
 La funzione \func{mount} può essere utilizzata anche per effettuare il
@@ -6823,7 +6825,7 @@ programmi e librerie) di cui il server potrebbe avere bisogno.
 % LocalWords:  second linked journaled source filesystemtype unsigned device
 % LocalWords:  mountflags NODEV ENXIO dummy devfs magic MGC RDONLY NOSUID MOVE
 % LocalWords:  NOEXEC SYNCHRONOUS REMOUNT MANDLOCK NODIRATIME umount MNT statfs
-% LocalWords:  fstatfs fstab mntent ino bound orig new setpcap
+% LocalWords:  fstatfs fstab mntent ino bound orig new setpcap metadati sysfs
 
 %%% Local Variables: 
 %%% mode: latex
index 8661b30ee2820ae2cf8190a96bd18071e3d7a79e..2be5cf1ef10948faba8004c897f5e5f5fa32c284 100644 (file)
@@ -3993,6 +3993,9 @@ visto in sez.~\ref{sec:proc_syscall}.\footnote{ed inoltre per questa
 \end{errlist}}
 \end{funcproto}
 
+% NOTE: una pagina con la descrizione degli argomenti:
+% * http://www.lindevdoc.org/wiki/Clone 
+
 La funzione prende come primo argomento \param{fn} il puntatore alla funzione
 che verrà messa in esecuzione nel nuovo processo, che può avere un unico
 argomento di tipo puntatore a \ctyp{void}, il cui valore viene passato dal
@@ -4018,7 +4021,7 @@ disponibili:\footnote{alla stesura di questa sezione, cioè con il kernel 3.2.}
 
 \begin{basedescript}{\desclabelstyle{\pushlabel}}
 
-\item[\const{CLONE\_CHILD\_CLEARTID}]
+\item[\const{CLONE\_CHILD\_CLEARTID}] 
 \item[\const{CLONE\_CHILD\_SETTID}]
 \item[\const{CLONE\_FILES}]
 \item[\const{CLONE\_FS}]
@@ -4283,8 +4286,8 @@ aggiungendo il suffisso \code{\_r} al nome della versione normale.
 % LocalWords:  ETXTBSY EINVAL ELIBBAD BIG EFAULT EIO ENAMETOOLONG ELOOP ENOTDIR
 % LocalWords:  ENFILE EMFILE argc execl path execv execle execlp execvp vector
 % LocalWords:  list environ NULL umask pending utime cutime ustime fcntl linker
-% LocalWords:  opendir libc interpreter FreeBSD capabilities Mandatory Access
-% LocalWords:  Control MAC SELinux Security Modules LSM superuser uid gid saved
+% LocalWords:  opendir libc interpreter FreeBSD capabilities mandatory access
+% LocalWords:  control MAC SELinux security modules LSM superuser uid gid saved
 % LocalWords:  effective euid egid dell' fsuid fsgid getuid geteuid getgid SVr
 % LocalWords:  getegid IDS NFS setuid setgid all' logout utmp screen xterm TODO
 % LocalWords:  setreuid setregid FIXME ruid rgid seteuid setegid setresuid size
@@ -4327,9 +4330,9 @@ aggiungendo il suffisso \code{\_r} al nome della versione normale.
 % LocalWords:  namespace vsyscall SETTID FILES NEWIPC NEWNET NEWNS NEWPID ptid
 % LocalWords:  NEWUTS SETTLS SIGHAND SYSVSEM UNTRACED tls ctid CLEARTID panic
 % LocalWords:  loader EISDIR SIGTRAP uninterrutible killable EQUAL sizeof XOR
+% LocalWords:  destset srcset ALLOC num cpus setsize emacs
  
 %%% Local Variables: 
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
-% LocalWords:  destset srcset ALLOC num cpus setsize emacs