di esaminare il meccanismo che permette, quando questi possono variare durante
l'esecuzione del sistema, di modificarli.
-Oltre ai precedenti poi ci sono anche tutta una serie di parametri di
-configurazione, che non essendo mai fissi non sono stati inclusi nella
+Inoltre, al di la di quelli che possono essere limiti caratteristici previsti
+da uno standard, ogni sistema può avere una sua serie di altri parametri di
+configurazione, che non essendo mai fissi, non sono stati inclusi nella
standardizzazione della sezione precedente, e per i quali occorre, oltre al
meccanismo di settaggio, pure un meccanismo di lettura.
\end{functions}
I parametri a cui la funzione permettere di accedere sono organizzati in
-maniera gerarchica, e per accedere ad uno di essi occorre specificare un
-cammino attraverso le varie strutture, in maniera analoga a come si specifica
-un pathname (da cui l'uso alternativo del filesystem \file{/proc} che vedremo
-dopo).
+maniera gerarchica ad albero, e per accedere ad uno di essi occorre
+specificare un cammino attraverso i vari nodi dell'albero, in maniera analoga
+a come si specifica un pathname (da cui l'uso alternativo del filesystem
+\file{/proc} che vedremo dopo).
Ciascun nodo è identificato da un valore intero, ed il cammino che arriva ad
identificare un parametro specifico è passato attraverso l'array \param{name},
\subsection{La configurazione dei filesystem}
\label{sec:sys_file_config}
+Come accennato in \secref{sec:file_organization} per poter accedere ai file
+occorre prima rendere disponibile al sistema il filesystem su cui essi sono
+memorizzati; l'operazione di attivazione del filesystem è chiamata
+\textsl{montaggio}, per far questo si usa la funzione \func{mount} il cui
+prototipo è:
+\begin{prototype}{sys/mount.h}
+{mount(const char *source, const char *target, const char *filesystemtype,
+ unsigned long mountflags, const void *data)}
+
+Monta il filesystem di tipo \param{filesystemtype} contenuto in \param{source}
+sulla directory \param{target}.
+
+ \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di
+ fallimento, nel qual caso \var{errno} viene settata a:
+ \begin{errlist}
+ \item[\macro{EPERM}] il processo non ha i provilegi di amministratore.
+ \item[\macro{ENODEV}] \param{filesystemtype} non esiste o non è configurato
+ nel kernel.
+ \item[\macro{ENOTBLK}] non si è usato un \textit{block device} per
+ \param{source} quando era richiesto.
+ \item[\macro{EBUSY}] \param{source} è già montato, o non può essere
+ rimontato in read-only perché ci sono ancora file aperti in scrittura, o
+ \param{target} è ancora in uso.
+ \item[\macro{EINVAL}] il device \param{source} presenta un
+ \textit{superblock} non valido, o si è cercato di rimontare un filesystem
+ non ancora montato, o di montarlo senza che \param{target} sia un
+ \type{mount point} o di spostarlo quando \param{target} non è un
+ \type{mount point} o è \file{/}.
+ \item[\macro{EACCES}] non si ha il permesso di accesso su uno dei componenti
+ del pathname, o si è cercato di montare un filesystem disponibile in sola
+ lettura senza averlo specificato o il device \param{source} è su un
+ filesystem montato con l'opzione \macro{MS\_NODEV}.
+ \item[\macro{ENXIO}] il \textit{major number} del device \param{source} è
+ sbagliato.
+ \item[\macro{EMFILE}] la tabella dei device \textit{dummy} è piena.
+ \end{errlist}
+ ed inoltre \macro{ENOTDIR}, \macro{EFAULT}, \macro{ENOMEM},
+ \macro{ENAMETOOLONG}, \macro{ENOENT} o \macro{ELOOP}.}
+\end{prototype}
+
+
+
+
\subsection{La funzione \func{statfs}}
\label{sec:sys_file_stafs}
+\subsection{La gestione di utenti e gruppi}
+\label{sec:sys_user_group}
+
+
\section{Limitazione ed uso delle risorse}
\label{sec:sys_res_limits}
\label{sec:sys_resource_use}
+
+
\subsection{Limiti sulle risorse}
\label{sec:sys_resource_limit}
\end{figure}
-\section{La gestione di utenti e gruppi}
-\label{sec:sys_user_group}
-
%%% Local Variables:
%%% mode: latex