Indicizzati file sotto /proc, ed ulteriore materiale su ''inotify''.
[gapil.git] / system.tex
index ab284810b768cbaa556e2b51dd5036224e618b53..9ca37675a72227cd8dde9459ad0b8e393f17c2f1 100644 (file)
@@ -727,9 +727,10 @@ loro dati sono generati al volo ad ogni lettura, e passati al kernel ad ogni
 scrittura. 
 
 Il tipo di filesystem è specificato da \param{filesystemtype}, che deve essere
-una delle stringhe riportate nel file \file{/proc/filesystems}, che contiene
-l'elenco dei filesystem supportati dal kernel; nel caso si sia indicato uno
-dei filesystem virtuali, il contenuto di \param{source} viene ignorato.
+una delle stringhe riportate nel file \procfile{/proc/filesystems}, che
+contiene l'elenco dei filesystem supportati dal kernel; nel caso si sia
+indicato uno dei filesystem virtuali, il contenuto di \param{source} viene
+ignorato.
 
 Dopo l'esecuzione della funzione il contenuto del filesystem viene resto
 disponibile nella directory specificata come \textit{mount point}, il
@@ -901,15 +902,15 @@ genere 
 
 
 Le \acr{glibc} provvedono infine una serie di funzioni per la gestione dei due
-file \file{/etc/fstab} ed \file{/etc/mtab}, che convenzionalmente sono usati
-in quasi tutti i sistemi unix-like per mantenere rispettivamente le
+file \conffile{/etc/fstab} ed \conffile{/etc/mtab}, che convenzionalmente sono
+usati in quasi tutti i sistemi unix-like per mantenere rispettivamente le
 informazioni riguardo ai filesystem da montare e a quelli correntemente
 montati. Le funzioni servono a leggere il contenuto di questi file in
 opportune strutture \struct{fstab} e \struct{mntent}, e, per \file{/etc/mtab}
 per inserire e rimuovere le voci presenti nel file.
 
 In generale si dovrebbero usare queste funzioni (in particolare quelle
-relative a \file{/etc/mtab}), quando si debba scrivere un programma che
+relative a \conffile{/etc/mtab}), quando si debba scrivere un programma che
 effettua il montaggio di un filesystem; in realtà in questi casi è molto più
 semplice invocare direttamente il programma \cmd{mount}, per cui ne
 tralasceremo la trattazione, rimandando al manuale delle \acr{glibc}
@@ -924,18 +925,19 @@ tralasceremo la trattazione, rimandando al manuale delle \acr{glibc}
 
 Tradizionalmente le informazioni utilizzate nella gestione di utenti e gruppi
 (password, corrispondenze fra nomi simbolici e user-id, home directory, ecc.)
-venivano registrate all'interno dei due file di testo \file{/etc/passwd} ed
-\file{/etc/group},\footnote{in realtà oltre a questi nelle distribuzioni più
-  recenti è stato introdotto il sistema delle \textit{shadow password} che
-  prevede anche i due file \file{/etc/shadow} e \file{/etc/gshadow}, in cui
-  sono state spostate le informazioni di autenticazione (ed inserite alcune
-  estensioni) per toglierle dagli altri file che devono poter essere letti per
-  poter effettuare l'associazione fra username e \acr{uid}.} il cui formato è
-descritto dalle relative pagine del manuale\footnote{nella quinta sezione,
-  quella dei file di configurazione, occorre cioè usare \cmd{man 5 passwd}
-  dato che altrimenti si avrebbe la pagina di manuale del comando
-  \cmd{passwd}.} e tutte le funzioni che richiedevano l'accesso a queste
-informazione andavano a leggere direttamente il contenuto di questi file.
+venivano registrate all'interno dei due file di testo \conffile{/etc/passwd}
+ed \conffile{/etc/group},\footnote{in realtà oltre a questi nelle
+  distribuzioni più recenti è stato introdotto il sistema delle \textit{shadow
+    password} che prevede anche i due file \conffile{/etc/shadow} e
+  \conffile{/etc/gshadow}, in cui sono state spostate le informazioni di
+  autenticazione (ed inserite alcune estensioni) per toglierle dagli altri
+  file che devono poter essere letti per poter effettuare l'associazione fra
+  username e \acr{uid}.} il cui formato è descritto dalle relative pagine del
+manuale\footnote{nella quinta sezione, quella dei file di configurazione,
+  occorre cioè usare \cmd{man 5 passwd} dato che altrimenti si avrebbe la
+  pagina di manuale del comando \cmd{passwd}.} e tutte le funzioni che
+richiedevano l'accesso a queste informazione andavano a leggere direttamente
+il contenuto di questi file.
 
 Col tempo però questa impostazione ha incominciato a mostrare dei limiti: da
 una parte il meccanismo classico di autenticazione è stato ampliato, ed oggi
@@ -1087,16 +1089,16 @@ fig.~\ref{fig:sys_group_struct}.
 \end{figure}
 
 Le funzioni viste finora sono in grado di leggere le informazioni sia
-direttamente dal file delle password in \file{/etc/passwd} che tramite il
-sistema del \itindex{Name~Service~Switch} \textit{Name Service Switch} e
-sono completamente generiche. Si noti però che non c'è una funzione che
-permetta di impostare direttamente una password.\footnote{in realtà questo può
-  essere fatto ricorrendo a PAM, ma questo è un altro discorso.} Dato che
-POSIX non prevede questa possibilità esiste un'altra interfaccia che lo fa,
-derivata da SVID le cui funzioni sono riportate in
-tab.~\ref{tab:sys_passwd_func}. Questa però funziona soltanto quando le
-informazioni sono mantenute su un apposito file di \textsl{registro} di utenti
-e gruppi, con il formato classico di \file{/etc/passwd} e \file{/etc/group}.
+direttamente dal file delle password in \conffile{/etc/passwd} che tramite il
+sistema del \itindex{Name~Service~Switch} \textit{Name Service Switch} e sono
+completamente generiche. Si noti però che non c'è una funzione che permetta di
+impostare direttamente una password.\footnote{in realtà questo può essere
+  fatto ricorrendo a PAM, ma questo è un altro discorso.} Dato che POSIX non
+prevede questa possibilità esiste un'altra interfaccia che lo fa, derivata da
+SVID le cui funzioni sono riportate in tab.~\ref{tab:sys_passwd_func}. Questa
+però funziona soltanto quando le informazioni sono mantenute su un apposito
+file di \textsl{registro} di utenti e gruppi, con il formato classico di
+\conffile{/etc/passwd} e \conffile{/etc/group}.
 
 \begin{table}[htb]
   \footnotesize
@@ -1111,29 +1113,29 @@ e gruppi, con il formato classico di \file{/etc/passwd} e \file{/etc/group}.
     \func{fgetpwent\_r}& Come la precedente, ma rientrante.\\
     \func{putpwent}    & Immette una voce in un file di registro degli
                          utenti.\\ 
-    \func{getpwent}    & Legge una voce da \file{/etc/passwd}.\\
+    \func{getpwent}    & Legge una voce da \conffile{/etc/passwd}.\\
     \func{getpwent\_r} & Come la precedente, ma rientrante.\\
-    \func{setpwent}    & Ritorna all'inizio di \file{/etc/passwd}.\\
-    \func{endpwent}    & Chiude \file{/etc/passwd}.\\
+    \func{setpwent}    & Ritorna all'inizio di \conffile{/etc/passwd}.\\
+    \func{endpwent}    & Chiude \conffile{/etc/passwd}.\\
     \func{fgetgrent}   & Legge una voce dal file di registro dei gruppi 
                          specificato.\\
     \func{fgetgrent\_r}& Come la precedente, ma rientrante.\\
     \func{putgrent}    & Immette una voce in un file di registro dei gruppi.\\
-    \func{getgrent}    & Legge una voce da \file{/etc/group}.\\ 
+    \func{getgrent}    & Legge una voce da \conffile{/etc/group}.\\ 
     \func{getgrent\_r} & Come la precedente, ma rientrante.\\
-    \func{setgrent}    & Ritorna all'inizio di \file{/etc/group}.\\
-    \func{endgrent}    & Chiude \file{/etc/group}.\\
+    \func{setgrent}    & Ritorna all'inizio di \conffile{/etc/group}.\\
+    \func{endgrent}    & Chiude \conffile{/etc/group}.\\
     \hline
   \end{tabular}
   \caption{Funzioni per la manipolazione dei campi di un file usato come
-    registro per utenti o gruppi nel formato di \file{/etc/passwd} e
-    \file{/etc/groups}.} 
+    registro per utenti o gruppi nel formato di \conffile{/etc/passwd} e
+    \conffile{/etc/group}.} 
   \label{tab:sys_passwd_func}
 \end{table}
 
 Dato che oramai la gran parte delle distribuzioni di GNU/Linux utilizzano
 almeno le \textit{shadow password} (quindi con delle modifiche rispetto al
-formato classico del file \file{/etc/passwd}), si tenga presente che le
+formato classico del file \conffile{/etc/passwd}), si tenga presente che le
 funzioni di questa interfaccia che permettono di scrivere delle voci in un
 \textsl{registro} degli utenti (cioè \func{putpwent} e \func{putgrent}) non
 hanno la capacità di farlo specificando tutti i contenuti necessari rispetto a
@@ -1771,9 +1773,9 @@ vengono salvate in formato binario, e corrispondono al contenuto della
 apposita struttura dati definita all'interno del kernel.
 
 Il funzionamento di \func{acct} viene inoltre modificato da uno specifico
-parametro di sistema, modificabile attraverso \file{/proc/sys/kernel/acct} (o
-tramite la corrispondente \func{sysctl}). Esso contiene tre valori interi, il
-primo indica la percentuale di spazio disco libero sopra il quale viene
+parametro di sistema, modificabile attraverso \procfile{/proc/sys/kernel/acct}
+(o tramite la corrispondente \func{sysctl}). Esso contiene tre valori interi,
+il primo indica la percentuale di spazio disco libero sopra il quale viene
 ripresa una registrazione che era stata sospesa per essere scesi sotto il
 minimo indicato dal secondo valore (sempre in percentuale di spazio disco
 libero). Infine l'ultimo valore indica la frequenza in secondi con cui deve
@@ -1832,8 +1834,8 @@ demoni che compiono lavori amministrativi ad ore definite, come \cmd{cron}.
 
 Di solito questo tempo viene convertito automaticamente dal valore in UTC al
 tempo locale, utilizzando le opportune informazioni di localizzazione
-(specificate in \file{/etc/timezone}). E da tenere presente che questo tempo è
-mantenuto dal sistema e non è detto che corrisponda al tempo tenuto
+(specificate in \conffile{/etc/timezone}). E da tenere presente che questo
+tempo è mantenuto dal sistema e non è detto che corrisponda al tempo tenuto
 dall'orologio hardware del calcolatore.
 
 Anche il \itindex{process~time} \textit{process time} di solito si esprime in
@@ -2303,7 +2305,7 @@ funzione \funcd{tzset}, il cui prototipo 
 
 La funzione inizializza le variabili di fig.~\ref{fig:sys_tzname} a partire dal
 valore della variabile di ambiente \const{TZ}, se quest'ultima non è definita
-verrà usato il file \file{/etc/localtime}.
+verrà usato il file \conffile{/etc/localtime}.
 
 \begin{figure}[!htb]
   \footnotesize