Nota di aggiunte del 2.6.24rc1
[gapil.git] / prochand.tex
index 03ed95f2f61a473277d8536e6133a53e6458d1fe..94d316eca7ec189ffb5bc8a5455a1fca12e9fd92 100644 (file)
@@ -155,7 +155,8 @@ periodico secondo la frequenza specificata dalla costante
 \const{HZ},\footnote{fino al kernel 2.4 il valore usuale di questa costante
   era 100, per tutte le architetture eccetto l'alpha, per la quale era 1000,
   nel 2.6 è stato portato a 1000 su tutte le architetture; occorre fare
-  attenzione a non confondere questo valore con quello dei clock tick (vedi
+  attenzione a non confondere questo valore con quello dei
+  \itindex{clock~tick} \textit{clock tick} (vedi
   sez.~\ref{sec:sys_unix_time}).} definita in \file{asm/param.h}, ed il cui
 valore è espresso in Hertz.\footnote{a partire dal kernel 2.6.21 è stato
   introdotto (a cura di Ingo Molnar) un meccanismo completamente diverso,
@@ -1186,15 +1187,15 @@ nuovo riceverne lo stato.
     \textbf{Macro} & \textbf{Descrizione}\\
     \hline
     \hline
-    \const{WEXITED}   & Ritorna quando un processo figlio è terminato. \\
+    \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{WCONTINUED}& ritorna quando un processo figlio che era stato
-                        fermato ha ripreso l'esecuzione. \\
+                        notificare.\\ 
+    \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ì
                         che una successiva chiamata possa di nuovo riceverne
-                        lo stato. \\
+                        lo stato.\\
     \hline
   \end{tabular}
   \caption{Costanti che identificano i bit dell'argomento \param{options}
@@ -1516,16 +1517,18 @@ Come accennato in sez.~\ref{sec:intro_multiuser} il modello base\footnote{in
   realtà già esistono estensioni di questo modello base, che lo rendono più
   flessibile e controllabile, come le \itindex{capabilities}
   \textit{capabilities} illustrate in sez.~\ref{sec:proc_capabilities}, le ACL
-  per i file o il \itindex{Mandatory~Access~Control~(MAC)} \textit{Mandatory
-    Access Control} di SELinux; inoltre basandosi sul lavoro effettuato con
+  per i file (vedi sez.~\ref{sec:file_ACL}) o il
+  \itindex{Mandatory~Access~Control~(MAC)} \textit{Mandatory Access Control}
+  di \index{SELinux} SELinux; inoltre basandosi sul lavoro effettuato con
   SELinux, a partire dal kernel 2.5.x, è iniziato lo sviluppo di una
-  infrastruttura di sicurezza, il \textit{Linux Security Modules}, o LSM, in
-  grado di fornire diversi agganci a livello del kernel per modularizzare
-  tutti i possibili controlli di accesso.} di sicurezza di un sistema
-unix-like è fondato sui concetti di utente e gruppo, e sulla separazione fra
-l'amministratore (\textsl{root}, detto spesso anche \textit{superuser}) che
-non è sottoposto a restrizioni, ed il resto degli utenti, per i quali invece
-vengono effettuati i vari controlli di accesso.
+  infrastruttura di sicurezza, i \itindex{Linux~Security~Modules}
+  \textit{Linux Security Modules}, o LSM, in grado di fornire diversi agganci
+  a livello del kernel per modularizzare tutti i possibili controlli di
+  accesso.} di sicurezza di un sistema unix-like è fondato sui concetti di
+utente e gruppo, e sulla separazione fra l'amministratore (\textsl{root},
+detto spesso anche \textit{superuser}) che non è sottoposto a restrizioni, ed
+il resto degli utenti, per i quali invece vengono effettuati i vari controlli
+di accesso.
 
 Abbiamo già accennato come il sistema associ ad ogni utente e gruppo due
 identificatori univoci, lo user-ID ed il group-ID; questi servono al kernel per
@@ -1562,27 +1565,27 @@ tab.~\ref{tab:proc_uid_gid}.
     \hline
     \hline
     \acr{uid}   & \textit{real} & \textsl{user-ID reale} 
-                & indica l'utente che ha lanciato il programma\\ 
+                & Indica l'utente che ha lanciato il programma.\\ 
     \acr{gid}   & '' &\textsl{group-ID reale} 
-                & indica il gruppo principale dell'utente che ha lanciato 
-                  il programma \\ 
+                & Indica il gruppo principale dell'utente che ha lanciato 
+                  il programma.\\ 
     \hline
     \acr{euid}  & \textit{effective} &\textsl{user-ID effettivo} 
-                & indica l'utente usato nel controllo di accesso \\ 
+                & Indica l'utente usato nel controllo di accesso.\\ 
     \acr{egid}  & '' & \textsl{group-ID effettivo} 
-                & indica il gruppo usato nel controllo di accesso \\ 
+                & Indica il gruppo usato nel controllo di accesso.\\ 
     --          & -- & \textsl{group-ID supplementari} 
-                & indicano gli ulteriori gruppi cui l'utente appartiene \\ 
+                & Indicano gli ulteriori gruppi cui l'utente appartiene.\\ 
     \hline
     --          & \textit{saved} & \textsl{user-ID salvato} 
-                & è una copia dell'\acr{euid} iniziale\\ 
+                & È una copia dell'\acr{euid} iniziale.\\ 
     --          & '' & \textsl{group-ID salvato} 
-                & è una copia dell'\acr{egid} iniziale \\ 
+                & È una copia dell'\acr{egid} iniziale.\\ 
     \hline
     \acr{fsuid} & \textit{filesystem} &\textsl{user-ID di filesystem} 
-                & indica l'utente effettivo per l'accesso al filesystem \\ 
+                & Indica l'utente effettivo per l'accesso al filesystem. \\ 
     \acr{fsgid} & '' & \textsl{group-ID di filesystem} 
-                & indica il gruppo effettivo per l'accesso al filesystem  \\ 
+                & Indica il gruppo effettivo per l'accesso al filesystem.\\ 
     \hline
   \end{tabular}
   \caption{Identificatori di utente e gruppo associati a ciascun processo con
@@ -2109,12 +2112,12 @@ eseguibili,\footnote{una descrizione sommaria di questa funzionalit
   ma non essendo implementata non ne tratteremo qui.} in modo da poter
 stabilire quali capacità possono essere utilizzate quando viene messo in
 esecuzione uno specifico programma; attualmente però questa funzionalità non è
-implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e
-  finora non è disponibile al momento neanche presente nessuna realizzazione
-  sperimentale delle specifiche POSIX.1e, anche se esistono dei patch di
-  sicurezza del kernel, come LIDS (vedi
-  \href{http://www.lids.org}{\texttt{http://www.lids.org/})} che realizzano
-  qualcosa di simile.}
+implementata.\footnote{per attualmente si intende fino al kernel 2.6.23;
+  benché l'infrastruttura per crearla sia presente (vedi anche
+  sez.~\ref{sec:file_xattr}) finora non è disponibile nessuna realizzazione
+  delle specifiche POSIX.1e, esistono però dei patch di sicurezza del kernel,
+  come LIDS (vedi \href{http://www.lids.org}{\texttt{http://www.lids.org/})}
+  che realizzano qualcosa di simile.}
 
 
 \begin{table}[!h!bt]
@@ -2195,7 +2198,8 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e
                               (limitatamente a quelle che il processo
                               chiamante ha nel suo insieme di capacità
                               permesse) da qualunque processo.\\
-    \const{CAP\_LINUX\_IMMUTABLE}& la capacità di impostare gli attributi
+% TODO cambiata nel 2.4.24 rc1 ?
+    \const{CAP\_LINUX\_IMMUTABLE}& La capacità di impostare gli attributi
                               \textit{immutable} e \itindex{append~mode}
                               \textit{append only} per i file su un
                               filesystem che supporta questi 
@@ -2206,7 +2210,7 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e
     \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
+    \const{CAP\_NET\_ADMIN} & La capacità di eseguire alcune operazioni
                               privilegiate sulla rete (impostare le opzioni
                               privilegiate dei socket, abilitare il
                               \itindex{multicast} \textit{multicasting},
@@ -2247,12 +2251,12 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e
                               sistema.\\
     \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
+    \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
                               (vedi sez.~\ref{sec:sys_time}).\\ 
-    \const{CAP\_SYS\_TTY\_CONFIG}& la capacità di simulare un \textit{hangup}
+    \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
@@ -3295,7 +3299,6 @@ dato che in Linux questo intervallo di tempo 
 questa funzione ritorna sempre un valore di 150 millisecondi, e non importa
 specificare il PID di un processo reale.
 
-
 Come accennato ogni processo che usa lo scheduling real-time può rilasciare
 volontariamente la CPU; questo viene fatto attraverso la funzione
 \funcd{sched\_yield}, il cui prototipo è:
@@ -3315,8 +3318,12 @@ l'esecuzione non sar
 in modalità \textit{fifo}, per permettere l'esecuzione degli altri processi
 con pari priorità quando la sezione più urgente è finita.
 
+% TODO: con il 2.6.23 il comportamento è stato leggermente modificato ed è
+% stato introdotto /proc/sys/kernel/sched_compat_yield da mettere a 1 per aver
+% la compatibilità con il precedente.
 
-\subsection{Il controllo dello \textit{scheduler} per i sistemi multiprocessore}
+\subsection{Il controllo dello \textit{scheduler} per i sistemi
+  multiprocessore}
 \label{sec:proc_sched_multiprocess}
 
 Infine con il supporto dei sistemi multiprocessore sono state introdotte delle