Materiale sui flag della system call mount.
[gapil.git] / session.tex
index eba2f1cc5b1c27b2061ce0414f822352ec849f85..eb7809e183adb222c9e630a8f008389d50a3f436 100644 (file)
@@ -170,7 +170,7 @@ i cui prototipi sono:
     esiste.}
 \end{functions}
 
     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)}.
 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 è
 
 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
 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)}
   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}
 
   
   \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
 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
   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)}.
 
 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
   
   \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
 \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
 \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.
 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
 \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
 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
   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.
   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
 \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 \acr{uid}
-ed i \acr{gid} (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
 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
 \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
   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).\\ 
                       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}
                       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
 è 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 è:
 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
 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
 \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
 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
 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
 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
 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