%% 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",
\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}
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}
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
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}
\footnotetext{il limite su questa risorsa è stato introdotto con il kernel
2.6.8.}
+% TODO trattare prlimit64 introdotta con il 2.6.36 che dovrebbe sostituire
+% setrlimit
+
In generale il superamento di un limite corrente\footnote{di norma quanto
riportato in tab.~\ref{tab:sys_rlimit_values} fa riferimento a quanto
anche usare la costante \const{RLIM\_INFINITY} che permette di sbloccare l'uso
di una risorsa; ma si ricordi che solo un processo con i privilegi di
amministratore\footnote{per essere precisi in questo caso quello che serve è
- la \itindex{capabilities} \textit{capability} \const{CAP\_SYS\_RESOURCE}.}
-può innalzare un limite al di sopra del valore corrente del limite massimo ed
-usare un valore qualsiasi per entrambi i limiti. Si tenga conto infine che
-tutti i limiti vengono ereditati dal processo padre attraverso una \func{fork}
-(vedi sez.~\ref{sec:proc_fork}) e mantenuti per gli altri programmi eseguiti
-attraverso una \func{exec} (vedi sez.~\ref{sec:proc_exec}).
+ la \itindex{capabilities} \textit{capability} \const{CAP\_SYS\_RESOURCE}
+ (vedi sez.~\ref{sec:proc_capabilities}).} può innalzare un limite al di
+sopra del valore corrente del limite massimo ed usare un valore qualsiasi per
+entrambi i limiti. Si tenga conto infine che tutti i limiti vengono ereditati
+dal processo padre attraverso una \func{fork} (vedi sez.~\ref{sec:proc_fork})
+e mantenuti per gli altri programmi eseguiti attraverso una \func{exec} (vedi
+sez.~\ref{sec:proc_exec}).
\subsection{Le risorse di memoria e processore}
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}
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,
quindi anche per quelle che tratteremo in seguito) può essere utilizzata solo
-da un processo coi privilegi di amministratore.
+da un processo coi privilegi di amministratore.\footnote{più precisamente la
+ capabitity \const{CAP\_SYS\_TIME}.}
Il secondo argomento di entrambe le funzioni è una struttura
\struct{timezone}, che storicamente veniva utilizzata per specificare appunto