Indicizzati file sotto /proc, ed ulteriore materiale su ''inotify''.
[gapil.git] / prochand.tex
index 63b4ef5e65d98c34a67d2eceff006c013ad0240f..9717529258164076059db6ad2e9fc6accc8140a7 100644 (file)
@@ -914,18 +914,18 @@ sono riportate anche le costanti definite per indicare alcuni di essi.
     \textbf{Valore} & \textbf{Costante} &\textbf{Significato}\\
     \hline
     \hline
-    $<-1$& --               & attende per un figlio il cui
+    $<-1$& --               & Attende per un figlio il cui
                               \itindex{process~group} \textit{process group}
                               (vedi sez.~\ref{sec:sess_proc_group}) è uguale
                               al valore assoluto di \param{pid}. \\ 
-    $-1$&\const{WAIT\_ANY}  & attende per un figlio qualsiasi, usata in
+    $-1$&\const{WAIT\_ANY}  & Attende per un figlio qualsiasi, usata in
                               questa maniera senza specificare nessuna opzione
                               è equivalente a \func{wait}.\\ 
-    $ 0$&\const{WAIT\_MYPGRP}&attende per un figlio il cui
+    $ 0$&\const{WAIT\_MYPGRP}&Attende per un figlio il cui
                               \itindex{process~group} \textit{process group}
                               (vedi sez.~\ref{sec:sess_proc_group}) è
                               uguale a quello del processo chiamante. \\ 
-    $>0$& --                & attende per un figlio il cui \acr{pid} è uguale
+    $>0$& --                & Attende per un figlio il cui \acr{pid} è uguale
                               al valore di \param{pid}.\\
     \hline
   \end{tabular}
@@ -957,10 +957,10 @@ valore nullo anzich
     \textbf{Macro} & \textbf{Descrizione}\\
     \hline
     \hline
-    \const{WNOHANG}   & la funzione ritorna immediatamente anche se non è
+    \const{WNOHANG}   & La funzione ritorna immediatamente anche se non è
                         terminato nessun processo figlio. \\
-    \const{WUNTRACED} & ritorna anche se un processo figlio è stato fermato. \\
-    \const{WCONTINUED}& ritorna anche quando un processo figlio che era stato
+    \const{WUNTRACED} & Ritorna anche se un processo figlio è stato fermato. \\
+    \const{WCONTINUED}& Ritorna anche quando un processo figlio che era stato
                         fermato ha ripreso l'esecuzione.\footnotemark \\
     \hline
   \end{tabular}
@@ -1055,36 +1055,36 @@ presente che queste macro prendono come parametro la variabile di tipo
     \textbf{Macro} & \textbf{Descrizione}\\
     \hline
     \hline
-    \macro{WIFEXITED(s)}   & condizione vera (valore non nullo) per un processo
+    \macro{WIFEXITED(s)}   & Condizione vera (valore non nullo) per un processo
                              figlio che sia terminato normalmente. \\
-    \macro{WEXITSTATUS(s)} & restituisce gli otto bit meno significativi dello
+    \macro{WEXITSTATUS(s)} & Restituisce gli otto bit meno significativi dello
                              stato di uscita del processo (passato attraverso
                              \func{\_exit}, \func{exit} o come valore di
                              ritorno di \func{main}); può essere valutata solo
                              se \val{WIFEXITED} ha restituito un valore non
                              nullo.\\ 
-    \macro{WIFSIGNALED(s)} & condizione vera se il processo figlio è terminato
+    \macro{WIFSIGNALED(s)} & Condizione vera se il processo figlio è terminato
                              in maniera anomala a causa di un segnale che non
                              è stato catturato (vedi
                              sez.~\ref{sec:sig_notification}).\\ 
-    \macro{WTERMSIG(s)}    & restituisce il numero del segnale che ha causato
+    \macro{WTERMSIG(s)}    & Restituisce il numero del segnale che ha causato
                              la terminazione anomala del processo; può essere
                              valutata solo se \val{WIFSIGNALED} ha restituito
                              un valore non nullo.\\ 
-    \macro{WCOREDUMP(s)}   & vera se il processo terminato ha generato un
+    \macro{WCOREDUMP(s)}   & Vera se il processo terminato ha generato un
                              file di \itindex{core~dump} \textit{core
                                dump}; può essere valutata solo se
                              \val{WIFSIGNALED} ha restituito un valore non
                              nullo.\footnotemark \\
-    \macro{WIFSTOPPED(s)}  & vera se il processo che ha causato il ritorno di
+    \macro{WIFSTOPPED(s)}  & Vera se il processo che ha causato il ritorno di
                              \func{waitpid} è bloccato; l'uso è possibile solo
                              con \func{waitpid} avendo specificato l'opzione
                              \const{WUNTRACED}.\\
-    \macro{WSTOPSIG(s)}    & restituisce il numero del segnale che ha bloccato
+    \macro{WSTOPSIG(s)}    & Restituisce il numero del segnale che ha bloccato
                              il processo; può essere valutata solo se
                              \val{WIFSTOPPED} ha restituito un valore non
                              nullo. \\ 
-    \macro{WIFCONTINUED(s)}& vera se il processo che ha causato il ritorno è
+    \macro{WIFCONTINUED(s)}& Vera se il processo che ha causato il ritorno è
                              stato riavviato da un
                              \const{SIGCONT}.\footnotemark  \\ 
     \hline
@@ -1149,14 +1149,14 @@ primo, quale processo o quale gruppo di processi selezionare.
     \textbf{Macro} & \textbf{Descrizione}\\
     \hline
     \hline
-    \const{P\_PID} & indica la richiesta di attendere per un processo figlio
+    \const{P\_PID} & Indica la richiesta di attendere per un processo figlio
                      il cui \acr{pid} corrisponda al valore dell'argomento
                      \param{id}.\\
-    \const{P\_PGID}& indica la richiesta di attendere per un processo figlio
+    \const{P\_PGID}& Indica la richiesta di attendere per un processo figlio
                      appartenente al \textit{process group} (vedi
                      sez.~\ref{sec:sess_proc_group}) il cui \acr{pgid}
                      corrisponda al valore dell'argomento \param{id}.\\
-    \const{P\_ALL} & indica la richiesta di attendere per un processo figlio
+    \const{P\_ALL} & Indica la richiesta di attendere per un processo figlio
                      generico, il valore dell'argomento \param{id} viene
                      ignorato.\\
     \hline
@@ -1186,13 +1186,13 @@ nuovo riceverne lo stato.
     \textbf{Macro} & \textbf{Descrizione}\\
     \hline
     \hline
-    \const{WEXITED}   & ritorna quando un processo figlio è terminato. \\
-    \const{WNOHANG}   & ritorna immediatamente anche se non c'è niente da
+    \const{WEXITED}   & Ritorna quando un processo figlio è terminato. \\
+    \const{WNOHANG}   & Ritorna immediatamente anche se non c'è niente da
                         notificare. \\ 
-    \const{WSTOPPED} &  ritorna quando un processo figlio è stato fermato. \\
+    \const{WSTOPPED} &  Ritorna quando un processo figlio è stato fermato. \\
     \const{WCONTINUED}& ritorna quando un processo figlio che era stato
                         fermato ha ripreso l'esecuzione. \\
-    \const{WNOWAIT}   & lascia il processo ancora in attesa di ricezione, così
+    \const{WNOWAIT}   & Lascia il processo ancora in attesa di ricezione, così
                         che una successiva chiamata possa di nuovo riceverne
                         lo stato. \\
     \hline
@@ -1471,8 +1471,8 @@ condivise, viene lanciato il \textit{linker} dinamico \cmd{/lib/ld.so} prima
 del programma per caricare le librerie necessarie ed effettuare il link
 dell'eseguibile. Se il programma è in formato ELF per caricare le librerie
 dinamiche viene usato l'interprete indicato nel segmento \const{PT\_INTERP},
-in genere questo è \file{/lib/ld-linux.so.1} per programmi collegati con le
-\acr{libc5}, e \file{/lib/ld-linux.so.2} per programmi collegati con le
+in genere questo è \sysfile{/lib/ld-linux.so.1} per programmi collegati con le
+\acr{libc5}, e \sysfile{/lib/ld-linux.so.2} per programmi collegati con le
 \acr{glibc}. 
 
 Infine nel caso il file sia uno script esso deve iniziare con una linea nella
@@ -1721,12 +1721,12 @@ il programma, effettuare il lavoro che non necessita di privilegi aggiuntivi,
 ed eventualmente tornare indietro.
 
 Come esempio per chiarire l'uso di queste funzioni prendiamo quello con cui
-viene gestito l'accesso al file \file{/var/log/utmp}.  In questo file viene
+viene gestito l'accesso al file \sysfile{/var/log/utmp}.  In questo file viene
 registrato chi sta usando il sistema al momento corrente; chiaramente non può
 essere lasciato aperto in scrittura a qualunque utente, che potrebbe
 falsificare la registrazione. Per questo motivo questo file (e l'analogo
-\file{/var/log/wtmp} su cui vengono registrati login e logout) appartengono ad
-un gruppo dedicato (\acr{utmp}) ed i programmi che devono accedervi (ad
+\sysfile{/var/log/wtmp} su cui vengono registrati login e logout) appartengono
+ad un gruppo dedicato (\acr{utmp}) ed i programmi che devono accedervi (ad
 esempio tutti i programmi di terminale in X, o il programma \cmd{screen} che
 crea terminali multipli su una console) appartengono a questo gruppo ed hanno
 il bit \acr{sgid} impostato.
@@ -1740,8 +1740,8 @@ situazione degli identificatori 
   \textsl{group-ID salvato}    &=& \textrm{\acr{utmp}}
 \end{eqnarray*}
 in questo modo, dato che il \textsl{group-ID effettivo} è quello giusto, il
-programma può accedere a \file{/var/log/utmp} in scrittura ed aggiornarlo. A
-questo punto il programma può eseguire una \code{setgid(getgid())} per
+programma può accedere a \sysfile{/var/log/utmp} in scrittura ed aggiornarlo.
+questo punto il programma può eseguire una \code{setgid(getgid())} per
 impostare il \textsl{group-ID effettivo} a quello dell'utente (e dato che il
 \textsl{group-ID reale} corrisponde la funzione avrà successo), in questo modo
 non sarà possibile lanciare dal terminale programmi che modificano detto file,
@@ -1754,7 +1754,7 @@ in tal caso infatti la situazione degli identificatori sarebbe:
 \end{eqnarray*}
 e ogni processo lanciato dal terminale avrebbe comunque \acr{gid} come
 \textsl{group-ID effettivo}. All'uscita dal terminale, per poter di nuovo
-aggiornare lo stato di \file{/var/log/utmp} il programma eseguirà una
+aggiornare lo stato di \sysfile{/var/log/utmp} il programma eseguirà una
 \code{setgid(utmp)} (dove \var{utmp} è il valore numerico associato al gruppo
 \acr{utmp}, ottenuto ad esempio con una precedente \func{getegid}), dato che
 in questo caso il valore richiesto corrisponde al \textsl{group-ID salvato} la
@@ -1765,7 +1765,7 @@ funzione avr
   \textsl{group-ID effettivo}  &=& \textrm{\acr{utmp}} \\
   \textsl{group-ID salvato}    &=& \textrm{\acr{utmp} (invariato)}
 \end{eqnarray*}
-consentendo l'accesso a \file{/var/log/utmp}.
+consentendo l'accesso a \sysfile{/var/log/utmp}.
 
 Occorre però tenere conto che tutto questo non è possibile con un processo con
 i privilegi di amministratore, in tal caso infatti l'esecuzione di una
@@ -2055,7 +2055,7 @@ un utente specifico, si pu
 \end{functions}
 
 La funzione esegue la scansione del database dei gruppi (usualmente
-\file{/etc/groups}) cercando i gruppi di cui è membro l'utente \param{user}
+\conffile{/etc/group}) cercando i gruppi di cui è membro l'utente \param{user}
 con cui costruisce una lista di gruppi supplementari, a cui aggiunge anche
 \param{group}, infine imposta questa lista per il processo corrente usando
 \func{setgroups}.  Si tenga presente che sia \func{setgroups} che
@@ -2128,10 +2128,10 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e
 %
 % POSIX-draft defined capabilities.
 %
-    \const{CAP\_CHOWN}      & la capacità di cambiare proprietario e gruppo
+    \const{CAP\_CHOWN}      & La capacità di cambiare proprietario e gruppo
                               proprietario di un file (vedi
                               sez.~\ref{sec:file_ownership_management}).\\
-    \const{CAP\_DAC\_OVERRIDE}& la capacità di evitare il controllo dei
+    \const{CAP\_DAC\_OVERRIDE}& La capacità di evitare il controllo dei
                               permessi di lettura, scrittura ed esecuzione dei
                               file, (vedi sez.~\ref{sec:file_access_control})
                               caratteristici del modello classico del
@@ -2139,11 +2139,11 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e
                               \itindex{Discrectionary~Access~Control~(DAC)} 
                               \textit{Discrectionary Access Control} (da cui
                               il nome DAC).\\  
-    \const{CAP\_DAC\_READ\_SEARCH}& la capacità di evitare il controllo dei
+    \const{CAP\_DAC\_READ\_SEARCH}& La capacità di evitare il controllo dei
                               permessi di lettura, scrittura ed esecuzione per
                               le directory (vedi
                               sez.~\ref{sec:file_access_control}).\\
-    \const{CAP\_FOWNER}     & la capacità di evitare il controllo che 
+    \const{CAP\_FOWNER}     & La capacità di evitare il controllo che 
                               l'user-ID effettivo del processo (o meglio il
                               \textit{filesystem user-ID}, vedi
                               sez.~\ref{sec:proc_setuid}) coincida con
@@ -2164,7 +2164,7 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e
                               \func{open} e \func{fcntl} (vedi
                               sez.~\ref{sec:file_open} e
                               sez.~\ref{sec:file_fcntl}).\\
-    \const{CAP\_FSETID}     & la capacità di evitare la cancellazione
+    \const{CAP\_FSETID}     & La capacità di evitare la cancellazione
                               automatica dei bit \itindex{suid~bit} \acr{suid}
                               e \itindex{sgid~bit} \acr{sgid} quando un file
                               per i quali sono impostati viene modificato da
@@ -2173,14 +2173,14 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e
                               quando questo è relativo ad un gruppo cui non si
                               appartiene (vedi
                               sez.~\ref{sec:file_perm_management}).\\ 
-    \const{CAP\_KILL}       & la capacità di mandare segnali a qualunque
+    \const{CAP\_KILL}       & La capacità di mandare segnali a qualunque
                               processo (vedi sez.~\ref{sec:sig_kill_raise}).\\
-    \const{CAP\_SETGID}     & la capacità di manipolare i group ID dei
+    \const{CAP\_SETGID}     & La capacità di manipolare i group ID dei
                               processi, sia il principale che i supplementari,
                               (vedi sez.~\ref{sec:proc_setgroups} che quelli
                               trasmessi tramite i socket \textit{unix domain}
                               (vedi sez.~\ref{sec:unix_socket}).\\
-    \const{CAP\_SETUID}     & la capacità di manipolare gli user ID del
+    \const{CAP\_SETUID}     & La capacità di manipolare gli user ID del
                               processo (con \func{setuid}, \func{setreuid},
                               \func{setresuid}, \func{setfsuid}) e di
                               trasmettere un valore arbitrario
@@ -2191,7 +2191,7 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e
 % Linux specific capabilities
 %
 \hline
-    \const{CAP\_SETPCAP}    & la capacità di impostare o rimuovere una capacità
+    \const{CAP\_SETPCAP}    & La capacità di impostare o rimuovere una capacità
                               (limitatamente a quelle che il processo
                               chiamante ha nel suo insieme di capacità
                               permesse) da qualunque processo.\\
@@ -2200,10 +2200,10 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e
                               \textit{append only} per i file su un
                               filesystem che supporta questi 
                               attributi estesi.\\ 
-    \const{CAP\_NET\_BIND\_SERVICE}& la capacità di porre in ascolto server
+    \const{CAP\_NET\_BIND\_SERVICE}& La capacità di porre in ascolto server
                               su porte riservate (vedi
                               sez.~\ref{sec:TCP_func_bind}).\\ 
-    \const{CAP\_NET\_BROADCAST}& la capacità di consentire l'uso di socket in
+    \const{CAP\_NET\_BROADCAST}& La capacità di consentire l'uso di socket in
                               \itindex{broadcast} \textit{broadcast} e
                               \itindex{multicast} \textit{multicast}.\\ 
     \const{CAP\_NET\_ADMIN} & la capacità di eseguire alcune operazioni
@@ -2212,59 +2212,58 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e
                               \itindex{multicast} \textit{multicasting},
                               impostare interfacce di rete e 
                               tabella di instradamento).\\
-    \const{CAP\_NET\_RAW}   & la capacità di usare socket \texttt{RAW} e
+    \const{CAP\_NET\_RAW}   & La capacità di usare socket \texttt{RAW} e
                               \texttt{PACKET} (quelli che permettono di creare
                               pacchetti nei protocolli di basso livello).\\
-    \const{CAP\_IPC\_LOCK}  & la capacità di effettuare il \textit{memory
+    \const{CAP\_IPC\_LOCK}  & La capacità di effettuare il \textit{memory
                               locking} \itindex{memory~locking} con le
                               funzioni \func{mlock}, \func{mlockall},
                               \func{shmctl}, \func{mmap} (vedi
                               sez.~\ref{sec:proc_mem_lock} e 
                               sez.~\ref{sec:file_memory_map}). \\  
-    \const{CAP\_IPC\_OWNER} & la capacità di evitare il controllo dei permessi
+    \const{CAP\_IPC\_OWNER} & La capacità di evitare il controllo dei permessi
                               per le operazioni sugli oggetti di
                               intercomunicazione fra processi (vedi
                               sez.~\ref{sec:ipc_sysv}).\\  
-    \const{CAP\_SYS\_MODULE}& la capacità di caricare e rimuovere moduli del
+    \const{CAP\_SYS\_MODULE}& La capacità di caricare e rimuovere moduli del
                               kernel. \\ 
-    \const{CAP\_SYS\_RAWIO} & la capacità di eseguire operazioni sulle porte
+    \const{CAP\_SYS\_RAWIO} & La capacità di eseguire operazioni sulle porte
                               di I/O con \func{ioperm} e \func{iopl} (vedi
                               sez.~\ref{sec:file_io_port}).\\
-    \const{CAP\_SYS\_CHROOT}& la capacità di eseguire la funzione
+    \const{CAP\_SYS\_CHROOT}& La capacità di eseguire la funzione
                               \func{chroot} (vedi
                               sez.~\ref{sec:file_chroot}).\\
-    \const{CAP\_SYS\_PTRACE}& consente di tracciare qualunque processo con
+    \const{CAP\_SYS\_PTRACE}& Consente di tracciare qualunque processo con
                               \func{ptrace} (vedi 
                               sez.~\ref{sec:xxx_ptrace}).\\
-% TODO documentatare ptrace 
-    \const{CAP\_SYS\_PACCT} & la capacità di usare le funzioni di
+    \const{CAP\_SYS\_PACCT} & La capacità di usare le funzioni di
                               \textit{accounting} dei processi (vedi
                               sez.~\ref{sec:sys_bsd_accounting}).\\ 
-    \const{CAP\_SYS\_ADMIN} & la capacità di eseguire una serie di compiti
+    \const{CAP\_SYS\_ADMIN} & La capacità di eseguire una serie di compiti
                               amministrativi (come impostare le quote,
                               attivare e disattivare la swap, montare,
                               rimontare e smontare filesystem, ecc.). \\
-    \const{CAP\_SYS\_BOOT}  & la capacità di fare eseguire un riavvio del
+    \const{CAP\_SYS\_BOOT}  & La capacità di fare eseguire un riavvio del
                               sistema.\\
-    \const{CAP\_SYS\_NICE}  & la capacità di modificare le priorità dei
+    \const{CAP\_SYS\_NICE}  & La capacità di modificare le priorità dei
                               processi (vedi sez.~\ref{sec:proc_priority}). \\ 
     \const{CAP\_SYS\_RESOURCE}& la capacità di superare le limitazioni sulle
                               risorse, aumentare le quote disco, usare lo
                               spazio disco riservato all'amministratore.\\ 
-    \const{CAP\_SYS\_TIME}  & la capacità di modificare il tempo di sistema
+    \const{CAP\_SYS\_TIME}  & La capacità di modificare il tempo di sistema
                               (vedi sez.~\ref{sec:sys_time}).\\ 
     \const{CAP\_SYS\_TTY\_CONFIG}& la capacità di simulare un \textit{hangup}
                               della console, con la funzione
                               \func{vhangup}.\\
-    \const{CAP\_MKNOD}      & la capacità di creare file di dispositivo con la
+    \const{CAP\_MKNOD}      & La capacità di creare file di dispositivo con la
                               funzione \func{mknod} (vedi
                               sez.~\ref{sec:file_mknod}).\footnotemark\\ 
-    \const{CAP\_LEASE}      & la capacità di creare dei \textit{file lease}
+    \const{CAP\_LEASE}      & La capacità di creare dei \textit{file lease}
                               \index{file!lease} su di un file (vedi
                               sez.~\ref{sec:file_asyncronous_lease})
                               indipendentemente dalla proprietà dello
                               stesso.\footnotemark\\
-    \const{CAP\_SETFCAP}    & la capacità di impostare le
+    \const{CAP\_SETFCAP}    & La capacità di impostare le
                               \textit{capabilities} di un file (non
                               supportata).\\ 
     \hline
@@ -2331,7 +2330,7 @@ un \textsl{AND} binario del contenuto corrente del \textit{capabilities
 capacità in esso elencate.
 
 Il \textit{capabilities bounding set} è un parametro di sistema, accessibile
-attraverso il contenuto del file \file{/proc/sys/kernel/cap-bound}, che per
+attraverso il contenuto del file \procfile{/proc/sys/kernel/cap-bound}, che per
 questa sua caratteristica consente di impostare un limite generale alle
 capacità che possono essere accordate ai vari processi.  Questo valore può
 essere impostato ad un valore arbitrario esclusivamente dal primo processo
@@ -3146,10 +3145,10 @@ assolute diverse da zero o politiche \const{SCHED\_FIFO} e \const{SCHED\_RR}.
     \textbf{Policy}  & \textbf{Significato} \\
     \hline
     \hline
-    \const{SCHED\_FIFO} & Scheduling real-time con politica \textit{FIFO} \\
+    \const{SCHED\_FIFO} & Scheduling real-time con politica \textit{FIFO}. \\
     \const{SCHED\_RR}   & Scheduling real-time con politica \textit{Round
-    Robin} \\
-    \const{SCHED\_OTHER}& Scheduling ordinario\\
+      Robin}. \\
+    \const{SCHED\_OTHER}& Scheduling ordinario.\\
     \hline
   \end{tabular}
   \caption{Valori dell'argomento \param{policy} per la funzione
@@ -3696,11 +3695,11 @@ varie funzioni di libreria, che sono identificate aggiungendo il suffisso
 % LocalWords:  get ncap caps CapInh CapPrm fffffeff CapEff getcap STAT dall'I
 % LocalWords:  inc PRIO SUSv PRGR prio SysV SunOS Ultrix sched timespec len sig
 % LocalWords:  cpusetsize cpuset atomic tickless redirezione WCONTINUED stopped
+% LocalWords:  waitid NOCLDSTOP ENOCHLD WIFCONTINUED ifdef endif idtype siginfo
+% LocalWords:  infop ALL WEXITED WSTOPPED WNOWAIT signo CLD EXITED KILLED page
+% LocalWords:  CONTINUED
 
 %%% Local Variables: 
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
-% LocalWords:  waitid NOCLDSTOP ENOCHLD WIFCONTINUED ifdef endif idtype siginfo
-% LocalWords:  infop ALL WEXITED WSTOPPED WNOWAIT signo CLD EXITED KILLED page
-% LocalWords:  CONTINUED