Aggiornamento al 2010 delle note di copyright
[gapil.git] / system.tex
index e69639be2fae01f47e4ee8ea13a34a865f5b15e6..4f6dd4eeb672c497301c8f75ced7d009b61faddf 100644 (file)
@@ -1,6 +1,6 @@
 %% system.tex
 %%
 %% system.tex
 %%
-%% Copyright (C) 2000-2009 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2010 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",
 %% 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",
@@ -528,9 +528,9 @@ fig.~\ref{fig:sys_utsname}, solo definendo \macro{\_GNU\_SOURCE}.
   \label{fig:sys_utsname}
 \end{figure}
 
   \label{fig:sys_utsname}
 \end{figure}
 
-In generale si tenga presente che le dimensioni delle stringe di una
-\struct{utsname} non è specificata, e che esse sono sempre terminate con NUL;
-il manuale delle \acr{glibc} indica due diverse dimensioni,
+In generale si tenga presente che le dimensioni delle stringhe di una
+struttura \struct{utsname} non è specificata, e che esse sono sempre terminate
+con NUL; il manuale delle \acr{glibc} indica due diverse dimensioni,
 \const{\_UTSNAME\_LENGTH} per i campi standard e
 \const{\_UTSNAME\_DOMAIN\_LENGTH} per quello specifico per il nome di dominio;
 altri sistemi usano nomi diversi come \const{SYS\_NMLN} o \const{\_SYS\_NMLN}
 \const{\_UTSNAME\_LENGTH} per i campi standard e
 \const{\_UTSNAME\_DOMAIN\_LENGTH} per quello specifico per il nome di dominio;
 altri sistemi usano nomi diversi come \const{SYS\_NMLN} o \const{\_SYS\_NMLN}
@@ -559,6 +559,7 @@ lettura.  Affronteremo questi argomenti in questa sezione, insieme alle
 funzioni che si usano per il controllo di altre caratteristiche generali del
 sistema, come quelle per la gestione dei filesystem e di utenti e gruppi.
 
 funzioni che si usano per il controllo di altre caratteristiche generali del
 sistema, come quelle per la gestione dei filesystem e di utenti e gruppi.
 
+% TODO ristrutturare e aggiungere \func{prctl}
 
 \subsection{La funzione \func{sysctl} ed il filesystem \file{/proc}}
 \label{sec:sys_sysctl}
 
 \subsection{La funzione \func{sysctl} ed il filesystem \file{/proc}}
 \label{sec:sys_sysctl}
@@ -661,8 +662,8 @@ inclusa nei sorgenti del kernel, nella directory \file{Documentation/sysctl}.
 
 Ma oltre alle informazioni ottenibili da \func{sysctl} dentro \file{proc} sono
 disponibili moltissime altre informazioni, fra cui ad esempio anche quelle
 
 Ma oltre alle informazioni ottenibili da \func{sysctl} dentro \file{proc} sono
 disponibili moltissime altre informazioni, fra cui ad esempio anche quelle
-fornite da \func{uname} (vedi sez.~\ref{sec:sys_config}) che sono mantenute
-nei file \procrelfile{/proc/sys/kernel}{ostype},
+fornite da \func{uname} (vedi sez.~\ref{sec:sys_uname}) che sono mantenute nei
+file \procrelfile{/proc/sys/kernel}{ostype},
 \procrelfile{/proc/sys/kernel}{hostname},
 \procrelfile{/proc/sys/kernel}{osrelease},
 \procrelfile{/proc/sys/kernel}{version} e
 \procrelfile{/proc/sys/kernel}{hostname},
 \procrelfile{/proc/sys/kernel}{osrelease},
 \procrelfile{/proc/sys/kernel}{version} e
@@ -922,9 +923,16 @@ semplice invocare direttamente il programma \cmd{mount}, per cui ne
 tralasceremo la trattazione, rimandando al manuale delle \acr{glibc}
 \cite{glibc} per la documentazione completa.
 
 tralasceremo la trattazione, rimandando al manuale delle \acr{glibc}
 \cite{glibc} per la documentazione completa.
 
+% TODO scrivere relativamente alle varie funzioni (getfsent e getmntent &C)
+% TODO documentare swapon e swapoff (man 2 ...)
+
+
+% TODO documentare keyctl ????
+% (fare sezione dedicata ????)
+%\subsection{La gestione delle chiavi}
+%\label{sec:keyctl_management}
 
 
 
 
-% TODO scrivere relativamente alle varie funzioni (getfsent e getmntent &C)
 
 \subsection{La gestione delle informazioni su utenti e gruppi}
 \label{sec:sys_user_group}
 
 \subsection{La gestione delle informazioni su utenti e gruppi}
 \label{sec:sys_user_group}
@@ -1804,6 +1812,10 @@ minimo indicato dal secondo valore (sempre in percentuale di spazio disco
 libero). Infine l'ultimo valore indica la frequenza in secondi con cui deve
 essere controllata detta percentuale.
 
 libero). Infine l'ultimo valore indica la frequenza in secondi con cui deve
 essere controllata detta percentuale.
 
+% TODO trattare quote disco 
+% vedi man quotactl
+%\section{La gestione delle quote disco}
+%\label{sec:disk_quota}
 
 
 
 
 
 
@@ -1823,10 +1835,10 @@ gestione di data e ora.
 
 Storicamente i sistemi unix-like hanno sempre mantenuto due distinti tipi di
 dati per la misure dei tempi all'interno del sistema: essi sono
 
 Storicamente i sistemi unix-like hanno sempre mantenuto due distinti tipi di
 dati per la misure dei tempi all'interno del sistema: essi sono
-rispettivamente chiamati \itindend{calendar~time} \textit{calendar time} e
+rispettivamente chiamati \itindex{calendar~time} \textit{calendar time} e
 \itindex{process~time} \textit{process time}, secondo le definizioni:
 \begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
 \itindex{process~time} \textit{process time}, secondo le definizioni:
 \begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
-\item[\textit{calendar time}] \itindend{calendar~time} detto anche
+\item[\textit{calendar time}] \itindex{calendar~time} detto anche
   \textsl{tempo di calendario}. È il numero di secondi dalla mezzanotte del
   primo gennaio 1970, in tempo universale coordinato (o UTC), data che viene
   usualmente indicata con 00:00:00 Jan, 1 1970 (UTC) e chiamata \textit{the
   \textsl{tempo di calendario}. È il numero di secondi dalla mezzanotte del
   primo gennaio 1970, in tempo universale coordinato (o UTC), data che viene
   usualmente indicata con 00:00:00 Jan, 1 1970 (UTC) e chiamata \textit{the
@@ -1851,7 +1863,7 @@ rispettivamente chiamati \itindend{calendar~time} \textit{calendar time} e
   obsoleto.
 \end{basedescript}
 
   obsoleto.
 \end{basedescript}
 
-In genere si usa il \itindend{calendar~time} \textit{calendar time} per
+In genere si usa il \itindex{calendar~time} \textit{calendar time} per
 esprimere le date dei file e le informazioni analoghe che riguardano i
 cosiddetti \textsl{tempi di orologio}, che vengono usati ad esempio per i
 demoni che compiono lavori amministrativi ad ore definite, come \cmd{cron}.
 esprimere le date dei file e le informazioni analoghe che riguardano i
 cosiddetti \textsl{tempi di orologio}, che vengono usati ad esempio per i
 demoni che compiono lavori amministrativi ad ore definite, come \cmd{cron}.
@@ -1899,7 +1911,7 @@ del comando \cmd{time}.
 \itindbeg{process~time}
 
 Di norma tutte le operazioni del sistema fanno sempre riferimento al
 \itindbeg{process~time}
 
 Di norma tutte le operazioni del sistema fanno sempre riferimento al
-\itindend{calendar~time} \textit{calendar time}, l'uso del \textit{process
+\itindex{calendar~time} \textit{calendar time}, l'uso del \textit{process
   time} è riservato a quei casi in cui serve conoscere i tempi di esecuzione
 di un processo (ad esempio per valutarne l'efficienza). In tal caso infatti
 fare ricorso al \textit{calendar time} è inutile in quanto il tempo può essere
   time} è riservato a quei casi in cui serve conoscere i tempi di esecuzione
 di un processo (ad esempio per valutarne l'efficienza). In tal caso infatti
 fare ricorso al \textit{calendar time} è inutile in quanto il tempo può essere
@@ -1977,7 +1989,10 @@ lo stato di terminazione di tutti i suoi figli, questi processi
 \itindbeg{calendar~time}
 
 Come anticipato in sez.~\ref{sec:sys_unix_time} il \textit{calendar time} è
 \itindbeg{calendar~time}
 
 Come anticipato in sez.~\ref{sec:sys_unix_time} il \textit{calendar time} è
-mantenuto dal kernel in una variabile di tipo \type{time\_t}, che usualmente
+mantenuto dal kernel in una variabile di tipo \type{time\_t},\footnote{in
+  realtà il kernel usa una rappresentazione interna di che fornisce una
+  precisione molto maggiore, e consente per questo anche di usare
+  rappresentazioni diverse del \textit{calendar time}.} che usualmente
 corrisponde ad un tipo elementare (in Linux è definito come \ctyp{long int},
 che di norma corrisponde a 32 bit).  Il valore corrente del \textit{calendar
   time}, che indicheremo come \textsl{tempo di sistema}, può essere ottenuto
 corrisponde ad un tipo elementare (in Linux è definito come \ctyp{long int},
 che di norma corrisponde a 32 bit).  Il valore corrente del \textit{calendar
   time}, che indicheremo come \textsl{tempo di sistema}, può essere ottenuto
@@ -2033,25 +2048,13 @@ sono:
     \errval{EPERM}.}
 \end{functions}
 
     \errval{EPERM}.}
 \end{functions}
 
-Queste funzioni utilizzano una struttura di tipo \struct{timeval}, la cui
-definizione, insieme a quella della analoga \struct{timespec}, è riportata in
-fig.~\ref{fig:sys_timeval_struct}. Le \acr{glibc} infatti forniscono queste due
-rappresentazioni alternative del \textit{calendar time} che rispetto a
-\type{time\_t} consentono rispettivamente precisioni del microsecondo e del
-nanosecondo.\footnote{la precisione è solo teorica, la precisione reale della
-  misura del tempo dell'orologio di sistema non dipende dall'uso di queste
-  strutture.}
-
-\begin{figure}[!htb]
-  \footnotesize \centering
-  \begin{minipage}[c]{15cm}
-    \includestruct{listati/timeval.h}
-  \end{minipage} 
-  \normalsize 
-  \caption{Le strutture \structd{timeval} e \structd{timespec} usate per una
-    rappresentazione ad alta risoluzione del \textit{calendar time}.}
-  \label{fig:sys_timeval_struct}
-\end{figure}
+Si noti come queste funzioni utilizzino per indicare il tempo una struttura di
+tipo \struct{timeval}, la cui definizione si è già vista in
+fig.~\ref{fig:sys_timeval_struct}, questa infatti permette una espressione
+alternativa dei valori del \textit{calendar time}, con una precisione,
+rispetto a \type{time\_t}, fino al microsecondo.\footnote{la precisione è solo
+  teorica, la precisione reale della misura del tempo dell'orologio di sistema
+  non dipende dall'uso di queste strutture.}
 
 Come nel caso di \func{stime} anche \func{settimeofday} (la cosa continua a
 valere per qualunque funzione che vada a modificare l'orologio di sistema,
 
 Come nel caso di \func{stime} anche \func{settimeofday} (la cosa continua a
 valere per qualunque funzione che vada a modificare l'orologio di sistema,