-l'utilizzo delle associazione statiche in \file{/etc/hosts}, inoltre oltre all
-risoluzione dei nomi a dominio si sono aggiunti altri nomi da risolvere, come
-quelli associati alle reti ed ai gruppi di macchine definiti dal servizio NIS,
-o quelli dei protocolli e dei servizi mantenuti nei file statici
-\file{/etc/protocols} e \file{/etc/services}, tutte informazioni che
-normalmente non si trovano su un DNS, ma che in un ambiente distribuito
-possono essere centralizzate su opportuni server (ad esempio su LDAP) in grado
-di mantenerle.
-
-Questo ha portato alla creazione di un sistema di risoluzione più ampio, il
-\textit{Name Service Switch} di cui il \textit{resolver} viene a costituire un
-sottoinsieme. Questo sistema, che si applica anche alla risoluzioni fra nomi
-di utenti e gruppi e relativi identificatori, permette di definire in maniera
-generica (attraverso una serie di librerie dinamiche) sia i supporti su cui
-mantenere i dati di corrispondenza fra nomi e valori numerici, sia l'ordine in
-cui effettuare le ricerche sui vari supporti disponibili. Il sistema è
-controllato dal file \file{/etc/nsswitch.conf}, ed anche per questo si può
-fare riferimento alle pagine di manuale ed al relativo capitolo nel manuale
-\cite{glibc} delle \textsl{glibc}.
+l'utilizzo delle associazione statiche in \file{/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
+NIS,\footnote{il \textit{Network Information Service} è un servizio, creato da
+ Sun, e poi diffuso su tutte le piattaforme unix-like, che permette di
+ raggruppare all'interno di una rete (in quelli che appunto vengono chiamati
+ \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, e poi in un ambiente distribuito può
+essere molto utile centralizzare il mentenimento 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 liberia, prevedendo un ordine di interrogazione predefinito e
+ non modificabile (a meno di una ricompilazione delle librerie stesse).}
+
+Per risolvere questa serie di problemi il sistema del \textit{resolver} è
+stato incluso all'interno di un meccanismo generico per la risoluzione di
+corripondenze fra nomi ed informazioni ad essi associate chiamato \textit{Name
+ Service Switch}\footnote{il sistema è stato introdotto la prima volta nelle
+ librerie standard di Solaris, le \acr{glibc} hanno ripreso lo stesso schema,
+ si tenga presente che questo sistema non esiste per altre librerie standard
+ come le \acr{libc5} o le \acr{uclib}.} cui abbiamo accennato anche in
+sez.~\ref{sec:sys_user_group} per quanto riguarda la gestione dei dati
+associati a utenti e gruppi. Il \textit{Name Service Switch} (cui spesso si
+fa riferimento con l'acronimo NSS) è un sistema di librerie dinamiche che
+permette di definire in maniera generica sia i supporti su cui mantenere i
+dati di corrispondenza fra nomi e valori numerici, sia l'ordine in cui
+effettuare le ricerche sui vari supporti disponibili. Il sistema prevede una
+serie di possibili classi di corrispondenza, quelle attualmente definite sono
+riportate in tab.~\ref{tab:sys_NSS_classes}.
+
+\begin{table}[htb]
+ \footnotesize
+ \centering
+ \begin{tabular}[c]{|l|p{8cm}|}
+ \hline
+ \textbf{Classe} & \textbf{Tipo di corrispondenza}\\
+ \hline
+ \hline
+ \texttt{shadow} & corrispondenze fra username e proprietà dell'utente
+ (\acr{uid}, ecc.).\\
+ \texttt{group} & corrispondenze fra nome del gruppo e proprietà dello
+ stesso.\\
+ \texttt{aliases} & alias per la posta elettronica\\
+ \texttt{ethers} & corrispondenze fra numero IP e MAC address della
+ scheda di rete.\\
+ \texttt{hosts} & corrispondenze fra nome a dominio e numero IP.\\
+ \texttt{netgroup} & corrispondenze gruppo di rete e macchine che lo
+ compongono.\\
+ \texttt{networks} & corrispondenze fra nome di una rete e suo indirizzo
+ IP.\\
+ \texttt{protocols}& corrispondenze fra nome di un protocollo e relativo
+ numero identificativo.\\
+ \texttt{rpc} & corrispondenze fra nome di un servizio RPC e relativo
+ numero identificativo.\\
+ \texttt{services} & corrispondenze fra nome di un servizio e numero di
+ porta. \\
+ \hline
+ \end{tabular}
+ \caption{Le diverse classi di corrispondenze definite
+ all'interno del \textit{Name Service Switch}.}
+ \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
+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
+implementa le funzioni.