Aggiunta mount
[gapil.git] / system.tex
index b92330733763e21707ac188fe34e51aaf27f5d69..55d09eec1d56e3b8dd85c93cfb782d35ceab8751 100644 (file)
@@ -517,8 +517,9 @@ implementazioni. Finora abbiamo visto come si pu
 di esaminare il meccanismo che permette, quando questi possono variare durante
 l'esecuzione del sistema, di modificarli.
 
 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.
 
 standardizzazione della sezione precedente, e per i quali occorre, oltre al
 meccanismo di settaggio, pure un meccanismo di lettura.
 
@@ -561,10 +562,10 @@ specifica di Linux; il suo prototipo 
 \end{functions}
 
 I parametri a cui la funzione permettere di accedere sono organizzati in
 \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},
 
 Ciascun nodo è identificato da un valore intero, ed il cammino che arriva ad
 identificare un parametro specifico è passato attraverso l'array \param{name},
@@ -620,10 +621,57 @@ del kernel, nella directory \file{Documentation/sysctl}.
 \subsection{La configurazione dei filesystem}
 \label{sec:sys_file_config}
 
 \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 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}
 
 \section{Limitazione ed uso delle risorse}
 \label{sec:sys_res_limits}
@@ -639,6 +687,8 @@ sul loro utilizzo.
 \label{sec:sys_resource_use}
 
 
 \label{sec:sys_resource_use}
 
 
+
+
 \subsection{Limiti sulle risorse}
 \label{sec:sys_resource_limit}
 
 \subsection{Limiti sulle risorse}
 \label{sec:sys_resource_limit}
 
@@ -906,9 +956,6 @@ o la macro (\texttt{\small 15--17}) associate a quel codice.
 \end{figure}
 
 
 \end{figure}
 
 
-\section{La gestione di utenti e gruppi}
-\label{sec:sys_user_group}
-
 
 %%% Local Variables: 
 %%% mode: latex
 
 %%% Local Variables: 
 %%% mode: latex