Correzioni multiple agli indici delle funzioni, inserita macro per
[gapil.git] / prochand.tex
index abe6f477066509608cc93081249bdbf63879eaf3..985a6af558d0889ecd1f7f52948165fd2774a519 100644 (file)
@@ -238,12 +238,12 @@ Il fatto che il \ids{PID} sia un numero univoco per il sistema lo rende un
 candidato per generare ulteriori indicatori associati al processo di cui
 diventa possibile garantire l'unicità: ad esempio in alcune implementazioni la
 funzione \func{tempnam} (si veda sez.~\ref{sec:file_temp_file}) usa il
-\ids{PID} per generare un \itindex{pathname} \textit{pathname} univoco, che
-non potrà essere replicato da un altro processo che usi la stessa
-funzione. Questo utilizzo però può risultare pericoloso, un \ids{PID} infatti
-è univoco solo fintanto che un processo è attivo, una volta terminato esso
-potrà essere riutilizzato da un processo completamente diverso, e di questo
-bisogna essere ben consapevoli.
+\ids{PID} per generare un \textit{pathname} univoco, che non potrà essere
+replicato da un altro processo che usi la stessa funzione. Questo utilizzo
+però può risultare pericoloso, un \ids{PID} infatti è univoco solo fintanto
+che un processo è attivo, una volta terminato esso potrà essere riutilizzato
+da un processo completamente diverso, e di questo bisogna essere ben
+consapevoli.
 
 Tutti i processi figli dello stesso processo padre sono detti
 \textit{sibling}, questa è una delle relazioni usate nel \textsl{controllo di
@@ -668,7 +668,7 @@ una \func{fork} invece sono:\footnote{a parte le ultime quattro, relative a
 \end{itemize*}
 
 Una seconda funzione storica usata per la creazione di un nuovo processo è
-\func{vfork}, che è esattamente identica a \func{fork} ed ha la stessa
+\funcm{vfork}, che è esattamente identica a \func{fork} ed ha la stessa
 semantica e gli stessi errori; la sola differenza è che non viene creata la
 tabella delle pagine né la struttura dei task per il nuovo processo. Il
 processo padre è posto in attesa fintanto che il figlio non ha eseguito una
@@ -700,7 +700,7 @@ di vista di come il sistema gestisce la conclusione dei processi.
 Abbiamo visto in sez.~\ref{sec:proc_conclusion} le tre modalità con cui un
 programma viene terminato in maniera normale: la chiamata di \func{exit}, che
 esegue le funzioni registrate per l'uscita e chiude gli \textit{stream} e poi
-esegue \func{\_exit}, il ritorno dalla funzione \func{main} equivalente alla
+esegue \func{\_exit}, il ritorno dalla funzione \code{main} equivalente alla
 chiamata di \func{exit}, e la chiamata diretta a \func{\_exit}, che passa
 direttamente alle operazioni di terminazione del processo da parte del kernel.
 
@@ -746,7 +746,7 @@ Nel caso di conclusione normale, abbiamo visto in
 sez.~\ref{sec:proc_conclusion} che lo stato di uscita del processo viene
 caratterizzato tramite il valore del cosiddetto \textit{exit status}, cioè il
 valore passato come argomento alle funzioni \func{exit} o \func{\_exit} o il
-valore di ritorno per \func{main}.  Ma se il processo viene concluso in
+valore di ritorno per \code{main}.  Ma se il processo viene concluso in
 maniera anomala il programma non può specificare nessun \textit{exit status},
 ed è il kernel che deve generare autonomamente il \textit{termination status}
 per indicare le ragioni della conclusione anomala.
@@ -1146,7 +1146,7 @@ anomala), uno per indicare se è stato generato un \itindex{core~dump}
                                       significativi dello stato di uscita del
                                       processo (passato attraverso
                                       \func{\_exit}, \func{exit} o come valore
-                                      di ritorno di \func{main}); può essere
+                                      di ritorno di \code{main}); può essere
                                       valutata solo se \val{WIFEXITED} ha
                                       restituito un valore non nullo.\\ 
     \macro{WIFSIGNALED}\texttt{(s)} & Condizione vera se il processo figlio è
@@ -1392,7 +1392,7 @@ prototipo è:
   \item[\errcode{EACCES}] il file o l'interprete non file ordinari, o non sono
     eseguibili, o il file è su un filesystem montato con l'opzione
     \cmd{noexec}, o manca  il permesso di attraversamento di una delle
-    directory del pathname.
+    directory del \textit{pathname}.
   \item[\errcode{EINVAL}] l'eseguibile ELF ha più di un segmento
     \const{PF\_INTERP}, cioè chiede di essere eseguito da più di un
     interprete.
@@ -1415,11 +1415,11 @@ prototipo è:
 \end{funcproto}
 
 La funzione \func{execve} esegue il programma o lo script indicato dal
-pathname \param{filename}, passandogli la lista di argomenti indicata
+\textit{pathname} \param{filename}, passandogli la lista di argomenti indicata
 da \param{argv} e come ambiente la lista di stringhe indicata
 da \param{envp}. Entrambe le liste devono essere terminate da un puntatore
 nullo. I vettori degli argomenti e dell'ambiente possono essere acceduti dal
-nuovo programma quando la sua funzione \func{main} è dichiarata nella forma
+nuovo programma quando la sua funzione \code{main} è dichiarata nella forma
 \code{main(int argc, char *argv[], char *envp[])}. Si tenga presente per il
 passaggio degli argomenti e dell'ambiente esistono comunque dei limiti, su cui
 torneremo in sez.~\ref{sec:sys_res_limits}).
@@ -1487,7 +1487,7 @@ illustrata in fig.~\ref{fig:proc_exec_relat}.
 
 La prima differenza fra le funzioni riguarda le modalità di passaggio dei
 valori che poi andranno a costituire gli argomenti a linea di comando (cioè i
-valori di \param{argv} e \param{argc} visti dalla funzione \func{main} del
+valori di \param{argv} e \param{argc} visti dalla funzione \code{main} del
 programma chiamato). Queste modalità sono due e sono riassunte dagli mnemonici
 ``\texttt{v}'' e ``\texttt{l}'' che stanno rispettivamente per \textit{vector}
 e \textit{list}.
@@ -1522,7 +1522,7 @@ proseguita nelle eventuali ulteriori directory indicate in \envvar{PATH}; solo
 se non viene trovato nessun altro file viene finalmente restituito
 \errcode{EACCES}.  Le altre quattro funzioni si limitano invece a cercare di
 eseguire il file indicato dall'argomento \param{path}, che viene interpretato
-come il \itindex{pathname} \textit{pathname} del programma.
+come il \textit{pathname} del programma.
 
 La terza differenza è come viene passata la lista delle variabili di ambiente.
 Con lo mnemonico ``\texttt{e}'' vengono indicate quelle funzioni che
@@ -2211,7 +2211,7 @@ chiamata con un vettore di dimensioni adeguate.
 
 Infine per impostare i gruppi supplementari di un processo ci sono due
 funzioni, che possono essere usate solo se si hanno i privilegi di
-amministratore.\footnote{e più precisamente se si ha la \itindex{capability}
+amministratore.\footnote{e più precisamente se si ha la \itindex{capabilities}
   \textit{capability} \macro{CAP\_SETGID}.} La prima delle due è
 \funcd{setgroups},\footnote{la funzione è definita in BSD e SRv4, ma a
   differenza di \func{getgroups} non è stata inclusa in POSIX.1-2001, per
@@ -3758,7 +3758,7 @@ Introdotta a partire dal kernel 2.4.21, solo su PowerPC.
   impostato ad 1. Una volta abilitato il \itindex{secure~computing~mode}
   \textit{secure computing mode} il processo potrà utilizzare soltanto un
   insieme estremamente limitato di \textit{system call}: \func{read},
-  \func{write}, \func{\_exit} e \func{sigreturn}. Ogni altra \textit{system
+  \func{write}, \func{\_exit} e \funcm{sigreturn}. Ogni altra \textit{system
     call} porterà all'emissione di un \signal{SIGKILL} (vedi
   sez.~\ref{sec:sig_termination}).  Il \textit{secure computing mode} è stato
   ideato per fornire un supporto per l'esecuzione di codice esterno non fidato
@@ -3901,9 +3901,9 @@ processi, che poi è stata utilizzata anche per fornire supporto per le
 tecnologie di virtualizzazione dei processi (i cosiddetti \textit{container}).
 
 Per questo l'interfaccia per la creazione di un nuovo processo è stata
-delegata ad una nuova \textit{system call}, \func{sys\_clone}, che consente di
-reimplementare anche la tradizionale \func{fork}. In realtà in questo caso più
-che di nuovi processi si può parlare della creazioni di nuovi
+delegata ad una nuova \textit{system call}, \funcm{sys\_clone}, che consente
+di reimplementare anche la tradizionale \func{fork}. In realtà in questo caso
+più che di nuovi processi si può parlare della creazioni di nuovi
 ``\textit{task}'' del kernel che possono assumere la veste sia di un processo
 classico isolato dagli altri come quelli trattati finora, che di un
 \textit{thread} in cui la memoria viene condivisa fra il processo chiamante ed
@@ -4062,6 +4062,9 @@ elenco, che illustra quelle attualmente disponibili:\footnote{si fa
 \end{basedescript}
 
 
+%TODO trattare unshare
+
+
 \subsection{La funzione \func{ptrace}}
 \label{sec:process_ptrace}