Ulteriori indicizzazioni dei file.
authorSimone Piccardi <piccardi@gnulinux.it>
Mon, 16 Jul 2007 10:52:00 +0000 (10:52 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Mon, 16 Jul 2007 10:52:00 +0000 (10:52 +0000)
ipc.tex
sockctrl.tex
system.tex

diff --git a/ipc.tex b/ipc.tex
index df279c99e6653bd34d7692eed29572b0ed1e954b..6587147be3d2080830361b0e6ee7510b73441b71 100644 (file)
--- a/ipc.tex
+++ b/ipc.tex
@@ -3341,7 +3341,7 @@ POSIX.\footnote{in realt
 
 La libreria inoltre richiede la presenza dell'apposito filesystem di tipo
 \texttt{mqueue} montato su \file{/dev/mqueue}; questo può essere fatto
-aggiungendo ad \file{/etc/fstab} una riga come:
+aggiungendo ad \conffile{/etc/fstab} una riga come:
 \begin{verbatim}
 mqueue   /dev/mqueue       mqueue    defaults        0      0
 \end{verbatim}
@@ -3787,7 +3787,7 @@ questo di norma viene fatto aggiungendo una riga del tipo di:
 \begin{verbatim}
 tmpfs   /dev/shm        tmpfs   defaults        0      0
 \end{verbatim}
-ad \file{/etc/fstab}. In realtà si può montare un filesystem \texttt{tmpfs}
+ad \conffile{/etc/fstab}. In realtà si può montare un filesystem \texttt{tmpfs}
 dove si vuole, per usarlo come RAM disk, con un comando del tipo:
 \begin{verbatim}
 mount -t tmpfs -o size=128M,nr_inodes=10k,mode=700 tmpfs /mytmpfs
index c5bfafc116399574e9ff88cf5e9d0a7be4721558..e3ad47bf642a158afd0ba4e5e2c769fc73175b6f 100644 (file)
@@ -85,19 +85,19 @@ funzioni di librerie utilizzate dai programmi, vale la pena fare una
 panoramica generale.  Originariamente la configurazione del \textit{resolver}
 riguardava esclusivamente le questioni relative alla gestione dei nomi a
 dominio, e prevedeva solo l'utilizzo del DNS e del file statico
-\file{/etc/hosts}.
+\conffile{/etc/hosts}.
 
 Per questo aspetto il file di configurazione principale del sistema è
-\file{/etc/resolv.conf} che contiene in sostanza l'elenco degli indirizzi IP
-dei server DNS da contattare; a questo si affianca il file
-\file{/etc/host.conf} il cui scopo principale è indicare l'ordine in cui
-eseguire la risoluzione dei nomi (se usare prima i valori di \file{/etc/hosts}
-o quelli del DNS). Tralasciamo i dettagli relativi alle varie direttive che
-possono essere usate in questi file, che si trovano nelle rispettive pagine di
-manuale.
+\conffile{/etc/resolv.conf} che contiene in sostanza l'elenco degli indirizzi
+IP dei server DNS da contattare; a questo si affianca il file
+\conffile{/etc/host.conf} il cui scopo principale è indicare l'ordine in cui
+eseguire la risoluzione dei nomi (se usare prima i valori di
+\conffile{/etc/hosts} o quelli del DNS). Tralasciamo i dettagli relativi alle
+varie direttive che possono essere usate in questi file, che si trovano nelle
+rispettive pagine di manuale.
 
 Con il tempo però è divenuto possibile fornire diversi sostituti per
-l'utilizzo delle associazione statiche in \file{/etc/hosts}, inoltre oltre
+l'utilizzo delle associazione statiche in \conffile{/etc/hosts}, inoltre oltre
 alla risoluzione dei nomi a dominio ci sono anche altri nomi da risolvere,
 come quelli che possono essere associati ad una rete (invece che ad una
 singola macchina) o ai gruppi di macchine definiti dal servizio
@@ -107,16 +107,17 @@ NIS,\footnote{il \textit{Network Information Service} 
   \textit{netgroup}) varie macchine, centralizzando i servizi di definizione
   di utenti e gruppi e di autenticazione, oggi è sempre più spesso sostituito
   da LDAP.} o come quelli dei protocolli e dei servizi che sono mantenuti nei
-file statici \file{/etc/protocols} e \file{/etc/services}.  Molte di queste
-informazioni non si trovano su un DNS, ma in una rete locale può essere molto
-utile centralizzare il mantenimento di alcune di esse su opportuni server.
-Inoltre l'uso di diversi supporti possibili per le stesse informazioni (ad
-esempio il nome delle macchine può essere mantenuto sia tramite
-\file{/etc/hosts}, che con il DNS, che con NIS) comporta il problema
-dell'ordine in cui questi vengono interrogati.\footnote{con le implementazioni
-  classiche i vari supporti erano introdotti modificando direttamente le
-  funzioni di libreria, prevedendo un ordine di interrogazione predefinito e
-  non modificabile (a meno di una ricompilazione delle librerie stesse).}
+file statici \conffile{/etc/protocols} e \conffile{/etc/services}.  Molte di
+queste informazioni non si trovano su un DNS, ma in una rete locale può essere
+molto utile centralizzare il mantenimento di alcune di esse su opportuni
+server.  Inoltre l'uso di diversi supporti possibili per le stesse
+informazioni (ad esempio il nome delle macchine può essere mantenuto sia
+tramite \conffile{/etc/hosts}, che con il DNS, che con NIS) comporta il
+problema dell'ordine in cui questi vengono interrogati.\footnote{con le
+  implementazioni classiche i vari supporti erano introdotti modificando
+  direttamente le funzioni di libreria, prevedendo un ordine di interrogazione
+  predefinito e non modificabile (a meno di una ricompilazione delle librerie
+  stesse).}
 
 \itindbeg{Name~Service~Switch}
 Per risolvere questa serie di problemi la risoluzione dei nomi a dominio
@@ -169,21 +170,21 @@ tab.~\ref{tab:sys_NSS_classes}.
   \label{tab:sys_NSS_classes}
 \end{table}
 
-Il sistema  del \textit{Name Service Switch} è controllato dal  contenuto del
-file \file{/etc/nsswitch.conf}; questo contiene una riga\footnote{seguendo una
-  convezione  comune per  i  file  di configurazione  le  righe vuote  vengono
-  ignorate  e  tutto  quello  che  segue un  carattere  ``\texttt{\#}''  viene
-  considerato un  commento.} di configurazione per ciascuna  di queste classi,
-che  viene inizia  col nome  di tab.~\ref{tab:sys_NSS_classes}  seguito  da un
-carattere ``\texttt{:}'' e  prosegue con la lista dei  \textsl{servizi} su cui
-le  relative informazioni sono  raggiungibili, scritti  nell'ordine in  cui si
+Il sistema del \textit{Name Service Switch} è controllato dal contenuto del
+file \conffile{/etc/nsswitch.conf}; questo contiene una riga\footnote{seguendo
+  una convezione comune per i file di configurazione le righe vuote vengono
+  ignorate e tutto quello che segue un carattere ``\texttt{\#}'' viene
+  considerato un commento.} di configurazione per ciascuna di queste classi,
+che viene inizia col nome di tab.~\ref{tab:sys_NSS_classes} seguito da un
+carattere ``\texttt{:}'' e prosegue con la lista dei \textsl{servizi} su cui
+le relative informazioni sono raggiungibili, scritti nell'ordine in cui si
 vuole siano interrogati.
 
-Ogni  servizio è  specificato  a sua  volta  da un  nome, come  \texttt{file},
-\texttt{dns},  \texttt{db},  ecc.  che  identifica la  libreria  dinamica  che
-realizza l'interfaccia  con esso. Per  ciascun servizio se \texttt{NAME}  è il
-nome  utilizzato  dentro   \file{/etc/nsswitch.conf},  dovrà  essere  presente
-(usualmente  in   \file{/lib})  una  libreria   \texttt{libnss\_NAME}  che  ne
+Ogni servizio è specificato a sua volta da un nome, come \texttt{file},
+\texttt{dns}, \texttt{db}, ecc.  che identifica la libreria dinamica che
+realizza l'interfaccia con esso. Per ciascun servizio se \texttt{NAME} è il
+nome utilizzato dentro \conffile{/etc/nsswitch.conf}, dovrà essere presente
+(usualmente in \file{/lib}) una libreria \texttt{libnss\_NAME} che ne
 implementa le funzioni.
 
 In ogni caso, qualunque sia la modalità con cui ricevono i dati o il supporto
@@ -1031,14 +1032,14 @@ colonna.
     \multicolumn{2}{|c|}{\textbf{Funzioni}}\\
     \hline
     \hline
-    indirizzo&\file{/etc/hosts}&\struct{hostent}&\func{gethostbyname}&
-             \func{gethostbyaddr}\\ 
-    servizio &\file{/etc/services}&\struct{servent}&\func{getservbyname}&
-             \func{getservbyaddr}\\ 
-    rete     &\file{/etc/networks}&\struct{netent}&\func{getnetbyname}&
-             \func{getnetbyaddr}\\ 
-    protocollo&\file{/etc/protocols}&\struct{protoent}&\func{getprotobyname}&
-              \func{getprotobyaddr}\\ 
+    indirizzo &\conffile{/etc/hosts}&\struct{hostent}&\func{gethostbyname}&
+               \func{gethostbyaddr}\\ 
+    servizio  &\conffile{/etc/services}&\struct{servent}&\func{getservbyname}&
+               \func{getservbyaddr}\\ 
+    rete      &\conffile{/etc/networks}&\struct{netent}&\func{getnetbyname}&
+               \func{getnetbyaddr}\\ 
+    protocollo&\conffile{/etc/protocols}&\struct{protoent}&
+               \func{getprotobyname}&\func{getprotobyaddr}\\ 
     \hline
   \end{tabular}
   \caption{Funzioni di risoluzione dei nomi per i vari servizi del
@@ -1071,12 +1072,12 @@ viceversa; i loro prototipi sono:
 
 Entrambe le funzioni prendono come ultimo argomento una stringa \param{proto}
 che indica il protocollo per il quale si intende effettuare la
-ricerca,\footnote{le informazioni mantenute in \file{/etc/services} infatti
-  sono relative sia alle porte usate su UDP che su TCP, occorre quindi
+ricerca,\footnote{le informazioni mantenute in \conffile{/etc/services}
+  infatti sono relative sia alle porte usate su UDP che su TCP, occorre quindi
   specificare a quale dei due protocolli si fa riferimento.} che nel caso si
 IP può avere come valori possibili solo \texttt{udp} o
 \texttt{tcp};\footnote{in teoria si potrebbe avere un qualunque protocollo fra
-  quelli citati in \file{/etc/protocols}, posto che lo stesso supporti il
+  quelli citati in \conffile{/etc/protocols}, posto che lo stesso supporti il
   concetto di \textsl{porta}, in pratica questi due sono gli unici presenti.}
 se si specifica un puntatore nullo la ricerca sarà eseguita su un protocollo
 qualsiasi.
@@ -1084,14 +1085,14 @@ qualsiasi.
 Il primo argomento è il nome del servizio per \func{getservbyname},
 specificato tramite la stringa \param{name}, mentre \func{getservbyport}
 richiede il numero di porta in \param{port}. Entrambe le funzioni eseguono una
-ricerca sul file \file{/etc/services}\footnote{il \textit{Name Service Switch}
-  astrae il concetto a qualunque supporto su cui si possano mantenere i
-  suddetti dati. } ed estraggono i dati dalla prima riga che corrisponde agli
-argomenti specificati; se la risoluzione ha successo viene restituito un
-puntatore ad una apposita struttura \struct{servent} contenente tutti i
-risultati), altrimenti viene restituito un puntatore nullo.  Si tenga presente
-che anche in questo caso i dati vengono mantenuti in una area di memoria
-statica e che quindi la funzione non è rientrante.
+ricerca sul file \conffile{/etc/services}\footnote{il \textit{Name Service
+    Switch} astrae il concetto a qualunque supporto su cui si possano
+  mantenere i suddetti dati. } ed estraggono i dati dalla prima riga che
+corrisponde agli argomenti specificati; se la risoluzione ha successo viene
+restituito un puntatore ad una apposita struttura \struct{servent} contenente
+tutti i risultati), altrimenti viene restituito un puntatore nullo.  Si tenga
+presente che anche in questo caso i dati vengono mantenuti in una area di
+memoria statica e che quindi la funzione non è rientrante.
 
 \begin{figure}[!htb]
   \footnotesize \centering
@@ -1128,13 +1129,13 @@ prototipi sono:
 \begin{functions}
   \headdecl{netdb.h} 
   \funcdecl{void setservent(int stayopen)} 
-  Apre il file \file{/etc/services} e si posiziona al suo inizio.
+  Apre il file \conffile{/etc/services} e si posiziona al suo inizio.
 
   \funcdecl{struct servent *getservent(void)}
-  Legge la voce successiva nel file \file{/etc/services}.      
+  Legge la voce successiva nel file \conffile{/etc/services}.      
 
   \funcdecl{void endservent(void)} 
-  Chiude il file \file{/etc/services}.
+  Chiude il file \conffile{/etc/services}.
 
   \bodydesc{Le due funzioni \func{setservent} e \func{endservent} non
     restituiscono nulla, \func{getservent} restituisce il puntatore ad una
@@ -1143,11 +1144,11 @@ prototipi sono:
 \end{functions}
 
 La prima funzione, \func{getservent}, legge una singola voce a partire dalla
-posizione corrente in \file{/etc/services}, pertanto si può eseguire una
+posizione corrente in \conffile{/etc/services}, pertanto si può eseguire una
 lettura sequenziale dello stesso invocandola più volte. Se il file non è
 aperto provvede automaticamente ad aprirlo, nel qual caso leggerà la prima
 voce. La seconda funzione, \func{setservent}, permette di aprire il file
-\file{/etc/services} per una successiva lettura, ma se il file è già stato
+\conffile{/etc/services} per una successiva lettura, ma se il file è già stato
 aperto riporta la posizione di lettura alla prima voce del file, in questo
 modo si può far ricominciare da capo una lettura sequenziale. L'argomento
 \param{stayopen}, se diverso da zero, fa sì che il file resti aperto anche fra
@@ -1317,7 +1318,7 @@ valore nullo.
 Il campo \var{ai\_protocol} permette invece di effettuare la selezione dei
 risultati per il nome del servizio usando il numero identificativo del
 rispettivo protocollo di trasporto (i cui valori possibili sono riportati in
-\file{/etc/protocols}); di nuovo i due soli valori utilizzabili sono quelli
+\conffile{/etc/protocols}); di nuovo i due soli valori utilizzabili sono quelli
 relativi a UDP e TCP, o il valore nullo che indica di ignorare questo campo
 nella selezione.
 
@@ -1694,7 +1695,7 @@ l'uso dei socket.
 La funzione prende quattro argomenti, i primi due sono le stringhe che
 indicano il nome della macchina a cui collegarsi ed il relativo servizio su
 cui sarà effettuata la risoluzione; seguono il protocollo da usare (da
-specificare con il valore numerico di \file{/etc/protocols}) ed il tipo di
+specificare con il valore numerico di \conffile{/etc/protocols}) ed il tipo di
 socket (al solito specificato con i valori illustrati in
 sez.~\ref{sec:sock_type}).  La funzione ritorna il valore del file descriptor
 associato al socket (un numero positivo) in caso di successo, o -1 in caso di
@@ -1897,7 +1898,7 @@ qualunque tipo di socket.
 
 I valori usati per \param{level}, corrispondenti ad un dato protocollo usato
 da un socket, sono quelli corrispondenti al valore numerico che identifica il
-suddetto protocollo in \file{/etc/protocols}; dato che la leggibilità di un
+suddetto protocollo in \conffile{/etc/protocols}; dato che la leggibilità di un
 programma non trarrebbe certo beneficio dall'uso diretto dei valori numerici,
 più comunemente si indica il protocollo tramite le apposite costanti
 \texttt{SOL\_*} riportate in tab.~\ref{tab:sock_option_levels}, dove si sono
@@ -1906,7 +1907,7 @@ riassunti i valori che possono essere usati per l'argomento
   confusa: infatti in Linux il valore si può impostare sia usando le costanti
   \texttt{SOL\_*}, che le analoghe \texttt{IPPROTO\_*} (citate anche da
   Stevens in \cite{UNP1}); entrambe hanno gli stessi valori che sono
-  equivalenti ai numeri di protocollo di \file{/etc/protocols}, con una
+  equivalenti ai numeri di protocollo di \conffile{/etc/protocols}, con una
   eccezione specifica, che è quella del protocollo ICMP, per la quale non
   esista una costante, il che è comprensibile dato che il suo valore, 1, è
   quello che viene assegnato a \const{SOL\_SOCKET}.}
index 9ca37675a72227cd8dde9459ad0b8e393f17c2f1..81425465be387989b4ca298ce5db2a2fd0847d20 100644 (file)
@@ -658,11 +658,14 @@ in \file{linux/sysctl.h},\footnote{indicando un file di definizioni si fa
 disponibile in \file{/proc/sys} è riportata inoltre nella documentazione
 inclusa nei sorgenti del kernel, nella directory \file{Documentation/sysctl}.
 
-Ma oltre alle informazioni ottenibili da \func{sysctl} dentro \file{proc} 
-sono disponibili moltissime altre informazioni, fra cui ad esempio anche
-quelle fornite da \func{uname} (vedi sez.~\ref{sec:sys_config}) che sono
-mantenute nei file \file{ostype}, \file{hostname}, \file{osrelease},
-\file{version} e \file{domainname} di \file{/proc/kernel/}.
+Ma oltre alle informazioni ottenibili da \func{sysctl} dentro \file{proc} sono
+disponibili moltissime altre informazioni, fra cui ad esempio anche quelle
+fornite da \func{uname} (vedi sez.~\ref{sec:sys_config}) che sono mantenute
+nei file \procrelfile{/proc/sys/kernel}{ostype},
+\procrelfile{/proc/sys/kernel}{hostname},
+\procrelfile{/proc/sys/kernel}{osrelease},
+\procrelfile{/proc/sys/kernel}{version} e
+\procrelfile{/proc/sys/kernel}{domainname} di \file{/proc/sys/kernel/}.
 
 
 
@@ -906,8 +909,8 @@ 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.
+opportune strutture \struct{fstab} e \struct{mntent}, e, per
+\conffile{/etc/mtab} per inserire e rimuovere le voci presenti nel file.
 
 In generale si dovrebbero usare queste funzioni (in particolare quelle
 relative a \conffile{/etc/mtab}), quando si debba scrivere un programma che