Correzioni multiple agli indici delle funzioni, inserita macro per
[gapil.git] / session.tex
index 0cb02ef4de4ddb3bf48289912d0a2f5d3e28a136..a4dad38f30623bb9a69677cd711474c9080376b3 100644 (file)
@@ -1,6 +1,6 @@
 %% session.tex
 %%
-%% Copyright (C) 2000-2011 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2012 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@ -143,12 +143,12 @@ processi vengono raggruppati in \textit{process group} e \textsl{sessioni};
 per far questo vengono utilizzati due ulteriori identificatori (oltre quelli
 visti in sez.~\ref{sec:proc_pid}) che il kernel associa a ciascun
 processo:\footnote{in Linux questi identificatori sono mantenuti nei campi
-  \var{pgrp} e \var{session} della struttura \struct{task\_struct} definita in
-  \file{sched.h}.}  l'identificatore del \textit{process group} e
-l'identificatore della \textsl{sessione}, che vengono indicati rispettivamente
-con le sigle \acr{pgid} e \acr{sid}, e sono mantenuti in variabili di tipo
-\type{pid\_t}. I valori di questi identificatori possono essere visualizzati
-dal comando \cmd{ps} usando l'opzione \cmd{-j}.
+  \var{pgrp} e \var{session} della struttura \kstruct{task\_struct} definita
+  in \file{include/linux/sched.h}.}  l'identificatore del \textit{process
+  group} e l'identificatore della \textsl{sessione}, che vengono indicati
+rispettivamente con le sigle \acr{pgid} e \acr{sid}, e sono mantenuti in
+variabili di tipo \type{pid\_t}. I valori di questi identificatori possono
+essere visualizzati dal comando \cmd{ps} usando l'opzione \cmd{-j}.
 
 Un \textit{process group} è pertanto definito da tutti i processi che hanno lo
 stesso \acr{pgid}; è possibile leggere il valore di questo identificatore con
@@ -170,7 +170,7 @@ i cui prototipi sono:
     esiste.}
 \end{functions}
 
-La funzione \func{getpgid} permette di specificare il \acr{pid} del processo
+La funzione \func{getpgid} permette di specificare il \ids{PID} del processo
 di cui si vuole sapere il \acr{pgid}; un valore nullo per \param{pid}
 restituisce il \acr{pgid} del processo corrente; \func{getpgrp} è di norma
 equivalente a \code{getpgid(0)}.
@@ -207,7 +207,7 @@ processi dall'uno all'altro, ma sempre all'interno di una stessa sessione.
 
 Ciascun raggruppamento di processi ha sempre un processo principale, il
 cosiddetto \itindex{process~group~leader} \textit{process group leader}, che è
-identificato dall'avere un \acr{pgid} uguale al suo \acr{pid}, in genere
+identificato dall'avere un \acr{pgid} uguale al suo \ids{PID}, in genere
 questo è il primo processo del raggruppamento, che si incarica di lanciare
 tutti gli altri. Un nuovo raggruppamento si crea con la funzione
 \funcd{setpgrp},\footnote{questa è la definizione di POSIX.1, BSD definisce
@@ -216,13 +216,13 @@ tutti gli altri. Un nuovo raggruppamento si crea con la funzione
   richiedere esplicitamente la compatibilità all'indietro con BSD, definendo
   la macro \macro{\_BSD\_SOURCE}.} il cui prototipo è:
 \begin{prototype}{unistd.h}{int setpgrp(void)}
-  Modifica il \acr{pgid} al valore del \acr{pid} del processo corrente.
+  Modifica il \acr{pgid} al valore del \ids{PID} del processo corrente.
   
   \bodydesc{La funzione restituisce il valore del nuovo \textit{process
       group}.}
 \end{prototype}
 
-La funzione, assegnando al \acr{pgid} il valore del \acr{pid} processo
+La funzione, assegnando al \acr{pgid} il valore del \ids{PID} processo
 corrente, rende questo \itindex{process~group~leader} \textit{group leader} di
 un nuovo raggruppamento, tutti i successivi processi da esso creati
 apparterranno (a meno di non cambiare di nuovo il \acr{pgid}) al nuovo
@@ -251,7 +251,7 @@ ancora eseguito una \func{exec}.\footnote{questa caratteristica è implementata
   dal kernel che mantiene allo scopo un altro campo, \var{did\_exec}, in
   \struct{task\_struct}.}  Specificando un valore nullo per \param{pid} si
 indica il processo corrente, mentre specificando un valore nullo per
-\param{pgid} si imposta il \textit{process group} al valore del \acr{pid} del
+\param{pgid} si imposta il \textit{process group} al valore del \ids{PID} del
 processo selezionato; pertanto \func{setpgrp} è equivalente a \code{setpgid(0,
   0)}.
 
@@ -275,15 +275,15 @@ sessione ad un processo è quello di crearne una nuova con l'uso di
   
   \bodydesc{La funzione ritorna il valore del nuovo \acr{sid}, e -1 in caso di
     errore, il solo errore possibile è \errval{EPERM}, che si ha quando il
-    \acr{pgid} e \acr{pid} del processo coincidono.}
+    \acr{pgid} e \ids{PID} del processo coincidono.}
 \end{prototype}
 
 La funzione imposta il \acr{pgid} ed il \acr{sid} del processo corrente al
-valore del suo \acr{pid}, creando così una nuova sessione ed un nuovo
+valore del suo \ids{PID}, creando così una nuova sessione ed un nuovo
 \textit{process group} di cui esso diventa leader (come per i \textit{process
   group} un processo si dice leader di sessione\footnote{in Linux la proprietà
   è mantenuta in maniera indipendente con un apposito campo \var{leader} in
-  \struct{task\_struct}.} se il suo \acr{sid} è uguale al suo \acr{pid}) ed
+  \struct{task\_struct}.} se il suo \acr{sid} è uguale al suo \ids{PID}) ed
 unico componente.  Inoltre la funzione distacca il processo da ogni terminale
 di controllo (torneremo sull'argomento in sez.~\ref{sec:sess_ctrl_term}) cui
 fosse in precedenza associato.
@@ -292,13 +292,13 @@ La funzione ha successo soltanto se il processo non è già
 \itindex{process~group~leader} leader di un \textit{process group}, per cui
 per usarla di norma si esegue una \func{fork} e si esce, per poi chiamare
 \func{setsid} nel processo figlio, in modo che, avendo questo lo stesso
-\acr{pgid} del padre ma un \acr{pid} diverso, non ci siano possibilità di
+\acr{pgid} del padre ma un \ids{PID} diverso, non ci siano possibilità di
 errore.\footnote{potrebbe sorgere il dubbio che, per il riutilizzo dei valori
-  dei \acr{pid} fatto nella creazione dei nuovi processi (vedi
+  dei \ids{PID} fatto nella creazione dei nuovi processi (vedi
   sez.~\ref{sec:proc_pid}), il figlio venga ad assumere un valore
   corrispondente ad un \textit{process group} esistente; questo viene evitato
-  dal kernel che considera come disponibili per un nuovo \acr{pid} solo valori
-  che non corrispondono ad altri \acr{pid}, \acr{pgid} o \acr{sid} in uso nel
+  dal kernel che considera come disponibili per un nuovo \ids{PID} solo valori
+  che non corrispondono ad altri \ids{PID}, \acr{pgid} o \acr{sid} in uso nel
   sistema.} Questa funzione viene usata di solito nel processo di login (per i
 dettagli vedi sez.~\ref{sec:sess_login}) per raggruppare in una sessione tutti
 i comandi eseguiti da un utente dalla sua shell.
@@ -377,7 +377,7 @@ Come accennato in sez.~\ref{sec:sess_job_control_overview}, tutti i processi
 (e relativi raggruppamenti) che non fanno parte del gruppo di
 \textit{foreground} sono detti in \textit{background}; se uno si essi cerca di
 accedere al terminale di controllo provocherà l'invio da parte del kernel di
-uno dei due segnali \const{SIGTTIN} o \const{SIGTTOU} (a seconda che l'accesso
+uno dei due segnali \signal{SIGTTIN} o \signal{SIGTTOU} (a seconda che l'accesso
 sia stato in lettura o scrittura) a tutto il suo \itindex{process~group}
 \textit{process group}; dato che il comportamento di default di questi segnali
 (si riveda quanto esposto in sez.~\ref{sec:sig_job_control}) è di fermare il
@@ -420,8 +420,8 @@ decifrare, ma deve poi leggere la password dal terminale.
 Un'altra caratteristica del terminale di controllo usata nel job control è che
 utilizzando su di esso le combinazioni di tasti speciali (\texttt{C-z},
 \texttt{C-c}, \texttt{C-y} e \texttt{C-|}) si farà sì che il kernel invii i
-corrispondenti segnali (rispettivamente \const{SIGTSTP}, \const{SIGINT},
-\const{SIGQUIT} e \const{SIGTERM}, trattati in sez.~\ref{sec:sig_job_control})
+corrispondenti segnali (rispettivamente \signal{SIGTSTP}, \signal{SIGINT},
+\signal{SIGQUIT} e \signal{SIGTERM}, trattati in sez.~\ref{sec:sig_job_control})
 a tutti i processi del raggruppamento di \textit{foreground}; in questo modo
 la shell può gestire il blocco e l'interruzione dei vari comandi.
 
@@ -429,14 +429,14 @@ la shell può gestire il blocco e l'interruzione dei vari comandi.
 Per completare la trattazione delle caratteristiche del job control legate al
 terminale di controllo, occorre prendere in considerazione i vari casi legati
 alla terminazione anomala dei processi, che sono di norma gestite attraverso
-il segnale \const{SIGHUP}. Il nome del segnale deriva da \textit{hungup},
+il segnale \signal{SIGHUP}. Il nome del segnale deriva da \textit{hungup},
 termine che viene usato per indicare la condizione in cui il terminale diventa
 inutilizzabile, (letteralmente sarebbe \textsl{impiccagione}).
 
 Quando si verifica questa condizione, ad esempio se si interrompe la linea, o
 va giù la rete o più semplicemente si chiude forzatamente la finestra di
 terminale su cui si stava lavorando, il kernel provvederà ad inviare il
-segnale di \const{SIGHUP} al processo di controllo. L'azione preimpostata in
+segnale di \signal{SIGHUP} al processo di controllo. L'azione preimpostata in
 questo caso è la terminazione del processo, il problema che si pone è cosa
 accade agli altri processi nella sessione, che non han più un processo di
 controllo che possa gestire l'accesso al terminale, che potrebbe essere
@@ -445,7 +445,7 @@ riutilizzato per qualche altra sessione.
 Lo standard POSIX.1 prevede che quando il processo di controllo termina, che
 ciò avvenga o meno per un \textit{hungup} del terminale (ad esempio si
 potrebbe terminare direttamente la shell con \cmd{kill}) venga inviato un
-segnale di \const{SIGHUP} ai processi del raggruppamento di foreground. In
+segnale di \signal{SIGHUP} ai processi del raggruppamento di foreground. In
 questo modo essi potranno essere avvisati che non esiste più un processo in
 grado di gestire il terminale (di norma tutto ciò comporta la terminazione
 anche di questi ultimi).
@@ -464,7 +464,7 @@ cui processi hanno come padri esclusivamente o altri processi nel
 raggruppamento, o processi fuori della sessione.  Lo standard prevede inoltre
 che se la terminazione di un processo fa sì che un raggruppamento di processi
 diventi orfano e se i suoi membri sono bloccati, ad essi vengano inviati in
-sequenza i segnali di \const{SIGHUP} e \const{SIGCONT}.
+sequenza i segnali di \signal{SIGHUP} e \signal{SIGCONT}.
 
 La definizione può sembrare complicata, e a prima vista non è chiaro cosa
 tutto ciò abbia a che fare con il problema della terminazione del processo di
@@ -490,8 +490,8 @@ sez.~\ref{sec:proc_termination}, tutti i suoi figli vengono adottati da
 group creati direttamente dal leader di sessione (a meno di non aver spostato
 con \func{setpgid} un processo da un gruppo ad un altro, cosa che di norma non
 viene fatta) i quali riceveranno, nel caso siano bloccati, i due segnali;
-\const{SIGCONT} ne farà proseguire l'esecuzione, ed essendo stato nel
-frattempo inviato anche \const{SIGHUP}, se non c'è un gestore per
+\signal{SIGCONT} ne farà proseguire l'esecuzione, ed essendo stato nel
+frattempo inviato anche \signal{SIGHUP}, se non c'è un gestore per
 quest'ultimo, i processi bloccati verranno automaticamente terminati.
 
 
@@ -570,10 +570,10 @@ inoltre effettuerà, qualora servano, ulteriori impostazioni.\footnote{ad
 poi porsi in attesa dell'immissione del nome di un utente.
 
 Una volta che si sia immesso il nome di login \cmd{getty} esegue direttamente
-il programma \cmd{login} con una \func{exevle}, passando come argomento la
+il programma \cmd{login} con una \func{execle}, passando come argomento la
 stringa con il nome, ed un ambiente opportunamente costruito che contenga
 quanto necessario; ad esempio di solito viene opportunamente inizializzata la
-variabile di ambiente \texttt{TERM} per identificare il terminale su cui si
+variabile di ambiente \envvar{TERM} per identificare il terminale su cui si
 sta operando, a beneficio dei programmi che verranno lanciati in seguito.
 
 A sua volta \cmd{login}, che mantiene i privilegi di amministratore, usa il
@@ -589,21 +589,21 @@ certo numero di volte dopo di che \cmd{login} esce ed \cmd{init} provvede a
 rilanciare un'altra istanza di \cmd{getty}.
 
 Se invece la password corrisponde \cmd{login} esegue \func{chdir} per
-impostare come directory di lavoro la \textit{home directory} dell'utente,
-cambia i diritti di accesso al terminale (con \func{chown} e \func{chmod}) per
-assegnarne la titolarità all'utente ed al suo gruppo principale, assegnandogli
-al contempo i diritti di lettura e scrittura.\footnote{oggi queste operazioni,
-  insieme ad altre relative alla contabilità ed alla tracciatura degli
-  accessi, vengono gestite dalle distribuzioni più recenti in una maniera
-  generica appoggiandosi a servizi di sistema come \textit{ConsoleKit}, ma il
-  concetto generale resta sostanzialmente lo stesso.}  Inoltre il programma
-provvede a costruire gli opportuni valori per le variabili di ambiente, come
-\texttt{HOME}, \texttt{SHELL}, ecc.  Infine attraverso l'uso di \func{setuid},
-\func{setgid} e \func{initgroups} verrà cambiata l'identità del proprietario
-del processo, infatti, come spiegato in sez.~\ref{sec:proc_setuid}, avendo
-invocato tali funzioni con i privilegi di amministratore, tutti gli user-ID ed
-i group-ID (reali, effettivi e salvati) saranno impostati a quelli
-dell'utente.
+impostare come \index{directory~di~lavoro} directory di lavoro la \textit{home
+  directory} dell'utente, cambia i diritti di accesso al terminale (con
+\func{chown} e \func{chmod}) per assegnarne la titolarità all'utente ed al suo
+gruppo principale, assegnandogli al contempo i diritti di lettura e
+scrittura.\footnote{oggi queste operazioni, insieme ad altre relative alla
+  contabilità ed alla tracciatura degli accessi, vengono gestite dalle
+  distribuzioni più recenti in una maniera generica appoggiandosi a servizi di
+  sistema come \textit{ConsoleKit}, ma il concetto generale resta
+  sostanzialmente lo stesso.}  Inoltre il programma provvede a costruire gli
+opportuni valori per le variabili di ambiente, come \envvar{HOME},
+\envvar{SHELL}, ecc.  Infine attraverso l'uso di \func{setuid}, \func{setgid}
+e \func{initgroups} verrà cambiata l'identità del proprietario del processo,
+infatti, come spiegato in sez.~\ref{sec:proc_setuid}, avendo invocato tali
+funzioni con i privilegi di amministratore, tutti gli \ids{UID} ed i \ids{GID}
+(reali, effettivi e salvati) saranno impostati a quelli dell'utente.
 
 A questo punto \cmd{login} provvederà (fatte salve eventuali altre azioni
 iniziali, come la stampa di messaggi di benvenuto o il controllo della posta)
@@ -614,7 +614,7 @@ controllo per il terminale, a gestire l'esecuzione dei comandi come illustrato
 in sez.~\ref{sec:sess_job_control_overview}. 
 
 Dato che il processo padre resta sempre \cmd{init} quest'ultimo potrà
-provvedere, ricevendo un \const{SIGCHLD} all'uscita della shell quando la
+provvedere, ricevendo un \signal{SIGCHLD} all'uscita della shell quando la
 sessione di lavoro è terminata, a rilanciare \cmd{getty} sul terminale per
 ripetere da capo tutto il procedimento.
 
@@ -660,7 +660,7 @@ occorrerà predisporlo in modo che esso compia le seguenti azioni:
 \item Eseguire una \func{fork} e terminare immediatamente il processo padre
   proseguendo l'esecuzione nel figlio.  In questo modo si ha la certezza che
   il figlio non è un \itindex{process~group~leader} \textit{process group
-    leader}, (avrà il \acr{pgid} del padre, ma un \acr{pid} diverso) e si può
+    leader}, (avrà il \acr{pgid} del padre, ma un \ids{PID} diverso) e si può
   chiamare \func{setsid} con successo. Inoltre la shell considererà terminato
   il comando all'uscita del padre.
 \item Eseguire \func{setsid} per creare una nuova sessione ed un nuovo
@@ -672,11 +672,11 @@ occorrerà predisporlo in modo che esso compia le seguenti azioni:
   eseguendo una ulteriore \func{fork} uscendo nel padre e proseguendo nel
   figlio. In questo caso, non essendo più quest'ultimo un leader di sessione
   non potrà ottenere automaticamente un terminale di controllo.
-\item Eseguire una \func{chdir} per impostare la directory di lavoro del
-  processo (su \file{/} o su una directory che contenga dei file necessari per
-  il programma), per evitare che la directory da cui si è lanciato il processo
-  resti in uso e non sia possibile rimuoverla o smontare il filesystem che la
-  contiene.
+\item Eseguire una \func{chdir} per impostare la \index{directory~di~lavoro}
+  directory di lavoro del processo (su \file{/} o su una directory che
+  contenga dei file necessari per il programma), per evitare che la directory
+  da cui si è lanciato il processo resti in uso e non sia possibile rimuoverla
+  o smontare il filesystem che la contiene.
 \item Impostare la \itindex{umask} maschera dei permessi (di solito con
   \code{umask(0)}) in modo da non essere dipendenti dal valore ereditato da
   chi ha lanciato originariamente il processo.
@@ -703,9 +703,10 @@ La funzione esegue una \func{fork}, per uscire subito, con \func{\_exit}, nel
 padre, mentre l'esecuzione prosegue nel figlio che esegue subito una
 \func{setsid}. In questo modo si compiono automaticamente i passi 1 e 2 della
 precedente lista. Se \param{nochdir} è nullo la funzione imposta anche la
-directory di lavoro su \file{/}, se \param{noclose} è nullo i file standard
-vengono rediretti su \file{/dev/null} (corrispondenti ai passi 4 e 6); in caso
-di valori non nulli non viene eseguita nessuna altra azione.
+\index{directory~di~lavoro} directory di lavoro su \file{/},
+se \param{noclose} è nullo i file standard vengono rediretti su
+\file{/dev/null} (corrispondenti ai passi 4 e 6); in caso di valori non nulli
+non viene eseguita nessuna altra azione.
 
 Dato che un programma demone non può più accedere al terminale, si pone il
 problema di come fare per la notifica di eventuali errori, non potendosi più
@@ -852,7 +853,7 @@ tab.~\ref{tab:sess_openlog_option}.
                       sistema del \textit{syslog}.\\ 
 \const{LOG\_PERROR} & Stampa anche su \file{stderr} (non previsto in
                       POSIX.1-2001).\\ 
-\const{LOG\_PID}    & Inserisce nei messaggi il \acr{pid} del processo
+\const{LOG\_PID}    & Inserisce nei messaggi il \ids{PID} del processo
                       chiamante.\\
 \hline
 \end{tabular}
@@ -922,7 +923,7 @@ Una funzione sostanzialmente identica a \func{syslog}, la cui sola differenza
 è prendere invece di una lista esplicita di argomenti un unico argomento
 finale nella forma di una lista di argomenti passato come \macro{va\_list},
 utile qualora si ottengano questi nella invocazione di una funzione
-\index{variadic} \textit{variadic} (si rammenti quanto visto in
+\index{funzioni!variadic} \textit{variadic} (si rammenti quanto visto in
 sez.~\ref{sec:proc_variadic}), è \funcd{vsyslog},\footnote{la funzione è
   originaria di BSD e per utilizzarla deve essere definito
   \macro{\_BSD\_SOURCE}.} il suo prototipo è:
@@ -957,10 +958,10 @@ valore nullo per \param{mask} la maschera corrente non viene modificata; in
 questo modo si può leggere il valore della maschera corrente. Indicando un
 valore non nullo per \param{mask} la registrazione dei messaggi viene
 disabilitata per tutte quelle priorità che non rientrano nella maschera. In
-genere il valore viene impostato usando la macro \macro{LOG\_MASK(p)} dove
-\code{p} è una delle costanti di tab.~\ref{tab:sess_syslog_priority}. É
-inoltre disponibile anche la macro \macro{LOG\_UPTO(p)} che permette di
-specificare automaticamente tutte le priorità fino a quella indicata da
+genere il valore viene impostato usando la macro \macro{LOG\_MASK}\texttt{(p)}
+dove \code{p} è una delle costanti di tab.~\ref{tab:sess_syslog_priority}. É
+inoltre disponibile anche la macro \macro{LOG\_UPTO}\texttt{(p)} che permette
+di specificare automaticamente tutte le priorità fino a quella indicata da
 \code{p}.
 
 Una volta che si sia certi che non si intende registrare più nessun messaggio
@@ -979,7 +980,7 @@ tab.~\ref{tab:sess_syslog_facility}, uno dei possibili utenti del servizio del
 \textit{syslog} è anche il kernel, che a sua volta può avere necessità di
 inviare messaggi verso l'\textit{user space}. I messaggi del kernel sono
 mantenuti in un apposito buffer circolare e generati all'interno del kernel
-tramite la funzione \func{printk}, analoga alla \func{printf} usata in
+tramite la funzione \texttt{printk}, analoga alla \func{printf} usata in
 \textit{user space}.\footnote{una trattazione eccellente dell'argomento si
   trova nel quarto capitolo di \cite{LinDevDri}.}
 
@@ -999,17 +1000,17 @@ sono riportati in fig.~\ref{fig:printk_priority}
   \normalsize 
   \caption{Definizione delle stringhe coi relativi valori numerici che
     indicano le priorità dei messaggi del kernel (ripresa da
-    \texttt{linux/kernel.h}).}
+    \file{include/linux/kernel.h}).}
   \label{fig:printk_priority}
 \end{figure}
 
-Dato che i messaggi generati da \func{printk} hanno un loro specifico formato
-tradizionalmente si usava un demone ausiliario, \cmd{klogd}, per leggerli,
-rimappare le priorità sui valori di tab.~\ref{tab:sess_syslog_priority} e
-inviarli al sistema del \textit{syslog} nella facility \const{LOG\_KERN}.
-Oggi i nuovi demoni più avanzati che realizzano il servizio (come
-\texttt{rsyslog} o \texttt{syslog-ng}) sono in grado di fare tutto questo da
-soli.
+Dato che i messaggi generati da \texttt{printk} hanno un loro specifico
+formato tradizionalmente si usava un demone ausiliario, \cmd{klogd}, per
+leggerli, rimappare le priorità sui valori di
+tab.~\ref{tab:sess_syslog_priority} e inviarli al sistema del \textit{syslog}
+nella facility \const{LOG\_KERN}.  Oggi i nuovi demoni più avanzati che
+realizzano il servizio (come \texttt{rsyslog} o \texttt{syslog-ng}) sono in
+grado di fare tutto questo da soli.
 
 Ma i messaggi del kernel non sono necessariamente connessi al sistema del
 \textit{syslog}; ad esempio possono anche essere letti direttamente dal buffer
@@ -1022,7 +1023,7 @@ vederli anche in caso di blocco totale del sistema (nell'assunzione che la
 console sia collegata).
 
 In particolare la stampa dei messaggi sulla console è controllata dal
-contenuto del file \procfile{/proc/sys/kernel/printk} (o con l'equivalente
+contenuto del file \sysctlfile{kernel/printk} (o con l'equivalente
 parametro di \func{sysctl}) che prevede quattro valori numerici interi: il
 primo (\textit{console\_loglevel}) indica la priorità corrente oltre la quale
 vengono stampati i messaggi sulla console, il secondo
@@ -1040,7 +1041,7 @@ circolare esiste una apposita \textit{system call} chiamata anch'essa
 \texttt{syslog}, ma dato il conflitto di nomi questa viene rimappata su
 un'altra funzione di libreria, in particolare nelle \acr{glibc} essa viene
 invocata tramite la funzione \funcd{klogctl},\footnote{nelle \acr{libc4} e
-  nelle \acr{libc5} la funzione invece era \func{SYS\_klog}.} il cui prototipo
+  nelle \acr{libc5} la funzione invece era \code{SYS\_klog}.} il cui prototipo
 è:
 \begin{prototype}{sys/klog.h}{int klogctl(int op, char *buffer, int len)}
 
@@ -1056,7 +1057,7 @@ Gestisce i messaggi di log del kernel.
   \item[\errcode{ERESTARTSYS}] l'operazione è stata interrotta da un segnale.
   \item[\errcode{EPERM}] non si hanno i privilegi richiesti per l'operazione
     richiesta.
-  \item[\errcode{ENOSYS}] il supporto per \func{printk} non è stato compilato
+  \item[\errcode{ENOSYS}] il supporto per \texttt{printk} non è stato compilato
     nel kernel.
   \end{errlist}
   ed inoltre \errval{EBADF} ed \errval{ENOSYS}.
@@ -1143,7 +1144,7 @@ e la funzione ritorna un valore nullo.
 Le operazioni corrispondenti ai valori 6, 7 ed 8 consentono di modificare la
 priorità oltre la quale i messaggi vengono stampati direttamente sulla
 \textit{console} e fanno riferimento ai parametri del kernel gestiti con le
-variabili contenute in \procfile{/proc/sys/kernel/printk} di cui abbiamo
+variabili contenute in \sysctlfile{kernel/printk} di cui abbiamo
 parlato prima, ed in particolare con 6 si imposta come corrente il valore
 minimo della terza variabile (\textit{minimum\_console\_level}), ottenendo
 l'effetto di ridurre al minimo i messaggi che arrivano in console, mentre con
@@ -1379,10 +1380,10 @@ deve essere di almeno \const{L\_ctermid}\footnote{\const{L\_ctermid} è una
   sez.~\ref{sec:sys_characteristics} che indica la dimensione che deve avere
   una stringa per poter contenere il nome di un terminale.} caratteri.
 
-Si tenga presente che il \itindex{pathname} \textit{pathname} restituito dalla
-funzione potrebbe non identificare univocamente il terminale (ad esempio
-potrebbe essere \file{/dev/tty}), inoltre non è detto che il processo possa
-effettivamente essere in grado di aprire il terminale.
+Si tenga presente che il \textit{pathname} restituito dalla funzione potrebbe
+non identificare univocamente il terminale (ad esempio potrebbe essere
+\file{/dev/tty}), inoltre non è detto che il processo possa effettivamente
+essere in grado di aprire il terminale.
 
 I vari attributi associati ad un terminale vengono mantenuti per ciascuno di
 essi in una struttura \struct{termios} che viene usata dalle varie funzioni
@@ -1432,7 +1433,7 @@ modificare i bit su cui non si interviene.
                      \const{IGNBRK} non è impostato. Se \const{BRKINT} è
                      impostato il BREAK causa lo scarico delle code, 
                      e se il terminale è il terminale di controllo per un 
-                     gruppo in foreground anche l'invio di \const{SIGINT} ai
+                     gruppo in foreground anche l'invio di \signal{SIGINT} ai
                      processi di quest'ultimo. Se invece \const{BRKINT} non è
                      impostato un BREAK viene letto come un carattere
                      NUL, a meno che non sia impostato \const{PARMRK}
@@ -1643,7 +1644,7 @@ valore.
                      \const{O\_NOBLOCK} si bloccherà il processo finché 
                      non si è stabilita una connessione con il modem; inoltre 
                      se viene rilevata una disconnessione viene inviato un
-                     segnale di \const{SIGHUP} al processo di controllo del
+                     segnale di \signal{SIGHUP} al processo di controllo del
                      terminale. La lettura su un terminale sconnesso comporta
                      una condizione di \textit{end of file} e la scrittura un
                      errore di \errcode{EIO}.\\
@@ -1758,10 +1759,10 @@ terminali.
                      attivato dal carattere DISCARD. Non è presente in POSIX e
                      non è supportato da Linux.\\
     \const{NOFLSH} & Se impostato disabilita lo scarico delle code di ingresso
-                     e uscita quando vengono emessi i segnali \const{SIGINT}, 
-                     \const{SIGQUIT} e \const{SIGSUSP}.\\
+                     e uscita quando vengono emessi i segnali \signal{SIGINT}, 
+                     \signal{SIGQUIT} e \signal{SIGSUSP}.\\
     \const{TOSTOP} & Se abilitato, con il supporto per il job control presente,
-                     genera il segnale \const{SIGTTOU} per un processo in
+                     genera il segnale \signal{SIGTTOU} per un processo in
                      background che cerca di scrivere sul terminale.\\
     \const{PENDIN} & Indica che la linea deve essere ristampata, viene
                      attivato dal carattere REPRINT e resta attivo fino alla
@@ -1803,10 +1804,10 @@ altri.\footnote{in Linux il valore della costante è 32, anche se i caratteri
     \hline
     \const{VINTR} &\texttt{0x03}&(\texttt{C-c})& Carattere di interrupt, 
                                                  provoca l'emissione di 
-                                                 \const{SIGINT}.\\
+                                                 \signal{SIGINT}.\\
     \const{VQUIT} &\texttt{0x1C}&(\texttt{C-\bslash})& Carattere di uscita,  
                                                  provoca l'emissione di 
-                                                 \const{SIGQUIT}.\\
+                                                 \signal{SIGQUIT}.\\
     \const{VERASE}&\texttt{0x7f}&DEL,\texttt{C-?}& Carattere di ERASE, cancella
                                                  l'ultimo carattere
                                                  precedente nella linea.\\
@@ -1846,10 +1847,10 @@ altri.\footnote{in Linux il valore della costante è 32, anche se i caratteri
                                                  START.\\
     \const{VSUSP} &\texttt{0x1A}&(\texttt{C-z})& Carattere di
                                                  sospensione. Invia il segnale
-                                                 \const{SIGTSTP}.\\
+                                                 \signal{SIGTSTP}.\\
     \const{VDSUSP}&\texttt{0x19}&(\texttt{C-y})& Carattere di sospensione
                                                  ritardata. Invia il segnale 
-                                                 \const{SIGTSTP} quando il
+                                                 \signal{SIGTSTP} quando il
                                                  carattere viene letto dal
                                                  programma, (non presente in
                                                  POSIX e non riconosciuto in
@@ -1938,9 +1939,9 @@ terminale qualunque nella struttura puntata da \param{termios\_p};
 \func{tcsetattr} invece effettua la scrittura delle impostazioni e quando
 viene invocata sul proprio terminale di controllo può essere eseguita con
 successo solo da un processo in foreground.  Se invocata da un processo in
-background infatti tutto il gruppo riceverà un segnale di \const{SIGTTOU} come
+background infatti tutto il gruppo riceverà un segnale di \signal{SIGTTOU} come
 se si fosse tentata una scrittura, a meno che il processo chiamante non abbia
-\const{SIGTTOU} ignorato o bloccato, nel qual caso l'operazione sarà eseguita.
+\signal{SIGTTOU} ignorato o bloccato, nel qual caso l'operazione sarà eseguita.
 
 La funzione \func{tcsetattr} prevede tre diverse modalità di funzionamento,
 specificabili attraverso l'argomento \param{optional\_actions}, che permette
@@ -2153,7 +2154,7 @@ direttamente sulla gestione di quest'ultime e sull'interazione fra i dati in
 ingresso ed uscita e le relative code. In generale tutte queste funzioni
 vengono considerate, dal punto di vista dell'accesso al terminale, come delle
 funzioni di scrittura, pertanto se usate da processi in background sul loro
-terminale di controllo provocano l'emissione di \const{SIGTTOU} come
+terminale di controllo provocano l'emissione di \signal{SIGTTOU} come
 illustrato in sez.~\ref{sec:sess_ctrl_term}.\footnote{con la stessa eccezione,
   già vista per \func{tcsetattr}, che quest'ultimo sia bloccato o ignorato dal
   processo chiamante.}
@@ -2381,7 +2382,7 @@ Qui vanno le cose su \func{openpty} e compagnia.
 % LocalWords:  NOCTTY TIOCSCTTY error tcsetpgrp termios fd pgrpid descriptor VT
 % LocalWords:  ENOTTY ENOSYS EBADF SIGTTIN SIGTTOU EIO tcgetpgrp crypt SIGTSTP
 % LocalWords:  SIGINT SIGQUIT SIGTERM SIGHUP hungup kill orphaned SIGCONT exit
-% LocalWords:  init Slackware run level inittab fig device getty exevle TERM at
+% LocalWords:  init Slackware run level inittab fig device getty TERM at
 % LocalWords:  getpwnam chdir home chown chmod setuid setgid initgroups SIGCHLD
 % LocalWords:  daemon like daemons NdT Stevens Programming FAQ filesystem umask
 % LocalWords:  noclose syslog syslogd socket UDP klogd printk printf facility