Aggiornamento copyright, trattazione degli shared subtree per mount e
[gapil.git] / session.tex
index a1bbe4e93f1b7297b9d494237b9ae30babaf65a8..365749c553d0480aa46b75238d23b4ee980d4945 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",
@@ -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.
@@ -601,8 +601,8 @@ 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
+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
@@ -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
@@ -852,7 +852,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 +922,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 +957,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
@@ -1022,7 +1022,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
@@ -1143,7 +1143,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