Changelog e pagine web
[gapil.git] / system.tex
index 64ac8c9e36897a252f6b8e66c21ba7534509f716..310cd85d9236dbb81af68763d52ab5bdae5a3887 100644 (file)
@@ -10,7 +10,7 @@ e degli errori.
 
 
 
 
 
 
-\section{La lettura delle caratteristiche del sistema}
+\section{Capacità e caratteristiche del sistema}
 \label{sec:sys_characteristics}
 
 In questa sezione tratteremo le varie modalità con cui un programma può
 \label{sec:sys_characteristics}
 
 In questa sezione tratteremo le varie modalità con cui un programma può
@@ -21,11 +21,11 @@ l'architettura hardware, l'implementazione del kernel e delle librerie, le
 opzioni di configurazione.
 
 La definizione di queste caratteristiche ed il tentativo di provvedere dei
 opzioni di configurazione.
 
 La definizione di queste caratteristiche ed il tentativo di provvedere dei
-meccanismi generali che i programmi potessero usare per ricavarle è uno degli
+meccanismi generali che i programmi possono usare per ricavarle è uno degli
 aspetti più complessi e controversi con cui le diverse standardizzazioni si
 sono dovute confrontare, spesso con risultati spesso tutt'altro che chiari.
 aspetti più complessi e controversi con cui le diverse standardizzazioni si
 sono dovute confrontare, spesso con risultati spesso tutt'altro che chiari.
-Proveremo comunque a dare una descrizione dei principali metodi previsti dai
-vari standard per ricavare sia le caratteristiche specifiche del sistema, che
+Daremo comunque una descrizione dei principali metodi previsti dai vari
+standard per ricavare sia le caratteristiche specifiche del sistema, che
 quelle della gestione dei file.
 
 
 quelle della gestione dei file.
 
 
@@ -388,19 +388,20 @@ riportate in \tabref{tab:sys_file_macro}.
 \begin{table}[htb]
   \centering
   \footnotesize
 \begin{table}[htb]
   \centering
   \footnotesize
-  \begin{tabular}[c]{|l|r|p{8cm}|}
+  \begin{tabular}[c]{|l|r|l|}
     \hline
     \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline                
     \hline
     \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline                
-    \macro{NAME\_MAX}&  14  & lunghezza in byte di un nome di file. \\
-    \macro{PATH\_MAX}& 256  & lunghezza in byte di pathname.\\
-    \macro{PIPE\_BUF}&4096  & byte scrivibili atomicamente in una pipe\\
     \macro{LINK\_MAX}   &8  & numero massimo di link a un file\\
     \macro{LINK\_MAX}   &8  & numero massimo di link a un file\\
-    \macro{MAX\_CANON}&255  & spazio disponibile nella coda di input
-                              canonica del terminale\\
+    \macro{NAME\_MAX}&  14  & lunghezza in byte di un nome di file. \\
+    \macro{PATH\_MAX}& 256  & lunghezza in byte di un pathname.\\
+    \macro{PIPE\_BUF}&4096  & byte scrivibili atomicamente in una pipe
+                              (vedi \secref{sec:ipc_pipes}).\\
+    \macro{MAX\_CANON}&255  & dimensione di una riga di terminale in modo 
+                              canonico (vedi \secref{sec:term_design}).\\
     \macro{MAX\_INPUT}&255  & spazio disponibile nella coda di input 
     \macro{MAX\_INPUT}&255  & spazio disponibile nella coda di input 
-                              del terminale\\
+                              del terminale (vedi \secref{sec:term_design}).\\
     \hline                
   \end{tabular}
   \caption{Macro per i limiti sulle caratteristiche dei file.}
     \hline                
   \end{tabular}
   \caption{Macro per i limiti sulle caratteristiche dei file.}
@@ -416,21 +417,20 @@ analoghe di \tabref{tab:sys_posix1_general}.
 \begin{table}[htb]
   \centering
   \footnotesize
 \begin{table}[htb]
   \centering
   \footnotesize
-  \begin{tabular}[c]{|l|r|p{8cm}|}
+  \begin{tabular}[c]{|l|r|l|}
     \hline
     \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline
     \hline
     \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline
-    \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\
-    \macro{\_POSIX\_LINK\_MAX}   &8  & numero massimo di link a un file\\
-    \macro{\_POSIX\_MAX\_CANON}&255  & spazio disponibile nella coda di input
-                                       canonica del terminale\\
-    \macro{\_POSIX\_MAX\_INPUT}&255  & spazio disponibile nella coda di input 
-                                       del terminale\\
+    \macro{\_POSIX\_LINK\_MAX}   &8  & numero massimo di link a un file.\\
     \macro{\_POSIX\_NAME\_MAX}&  14  & lunghezza in byte di un nome di file. \\
     \macro{\_POSIX\_NAME\_MAX}&  14  & lunghezza in byte di un nome di file. \\
-    \macro{\_POSIX\_PATH\_MAX}& 256  & lunghezza in byte di pathname.\\
+    \macro{\_POSIX\_PATH\_MAX}& 256  & lunghezza in byte di un pathname.\\
     \macro{\_POSIX\_PIPE\_BUF}& 512  & byte scrivibili atomicamente in una
     \macro{\_POSIX\_PIPE\_BUF}& 512  & byte scrivibili atomicamente in una
-                                       pipe\\
+                                       pipe.\\
+    \macro{\_POSIX\_MAX\_CANON}&255  & dimensione di una riga di
+                                       terminale in modo canonico.\\
+    \macro{\_POSIX\_MAX\_INPUT}&255  & spazio disponibile nella coda di input 
+                                       del terminale.\\
 %    \macro{\_POSIX\_MQ\_OPEN\_MAX}&  8& \\
 %    \macro{\_POSIX\_MQ\_PRIO\_MAX}& 32& \\
 %    \macro{\_POSIX\_FD\_SETSIZE}& 16 & \\
 %    \macro{\_POSIX\_MQ\_OPEN\_MAX}&  8& \\
 %    \macro{\_POSIX\_MQ\_PRIO\_MAX}& 32& \\
 %    \macro{\_POSIX\_FD\_SETSIZE}& 16 & \\
@@ -569,8 +569,6 @@ sistema 
 l'implementazione è specifica di Linux; il suo prototipo è:
 \begin{functions}
 \headdecl{unistd.h}
 l'implementazione è specifica di Linux; il suo prototipo è:
 \begin{functions}
 \headdecl{unistd.h}
-\headdecl{linux/unistd.h}
-\headdecl{linux/sysctl.h}
 \funcdecl{int sysctl(int *name, int nlen, void *oldval, size\_t *oldlenp, void
   *newval, size\_t newlen)}
 
 \funcdecl{int sysctl(int *name, int nlen, void *oldval, size\_t *oldlenp, void
   *newval, size\_t newlen)}
 
@@ -579,13 +577,13 @@ Legge o scrive uno dei parametri di sistema.
 \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
   errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
 \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
   errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
-  \item[\macro{EPERM}] il processo non ha il permesso di accedere ad uno dei
-    componenti nel cammino specificato per il parametro, o non ha il permesso
-    di accesso al parametro nella modalità scelta.
+  \item[\macro{EPERM}] non si ha il permesso di accedere ad uno dei componenti
+    nel cammino specificato per il parametro, o di accedere al parametro nella
+    modalità scelta.
   \item[\macro{ENOTDIR}] non esiste un parametro corrispondente al nome
     \param{name}.
   \item[\macro{ENOTDIR}] non esiste un parametro corrispondente al nome
     \param{name}.
-  \item[\macro{EFAULT}] si è specificato \param{oldlenp} zero quando
-    \param{oldval} è non nullo. 
+%  \item[\macro{EFAULT}] si è specificato \param{oldlenp} zero quando
+%    \param{oldval} è non nullo. 
   \item[\macro{EINVAL}] o si è specificato un valore non valido per il
     parametro che si vuole impostare o lo spazio provvisto per il ritorno di un
     valore non è delle giuste dimensioni.
   \item[\macro{EINVAL}] o si è specificato un valore non valido per il
     parametro che si vuole impostare o lo spazio provvisto per il ritorno di un
     valore non è delle giuste dimensioni.
@@ -593,14 +591,19 @@ Legge o scrive uno dei parametri di sistema.
     quando non si è specificato sufficiente spazio per ricevere il valore di un
     parametro.
   \end{errlist}
     quando non si è specificato sufficiente spazio per ricevere il valore di un
     parametro.
   \end{errlist}
+  ed inoltre \macro{EFAULT}.
 }
 \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 all'interno un albero; per accedere ad uno di essi occorre
-specificare un cammino attraverso i vari nodi dell'albero, in maniera analoga
-a come avviene per la risoluzione di un pathname (da cui l'uso alternativo del
-filesystem \file{/proc}, che vedremo dopo).
+maniera gerarchica all'interno un albero;\footnote{si tenga presente che
+  includendo solo \file{unistd.h}, saranno definiti solo i parametri generici;
+  dato che ce ne sono molti specifici dell'implementazione, nel caso di Linux
+  occorrerà includere anche i file \file{linux/unistd.h} e
+  \file{linux/sysctl.h}.} per accedere ad uno di essi occorre specificare un
+cammino attraverso i vari nodi dell'albero, in maniera analoga a come avviene
+per la risoluzione di un pathname (da cui l'uso alternativo del filesystem
+\file{/proc}, che vedremo dopo).
 
 Ciascun nodo dell'albero è identificato da un valore intero, ed il cammino che
 arriva ad identificare un parametro specifico è passato alla funzione
 
 Ciascun nodo dell'albero è identificato da un valore intero, ed il cammino che
 arriva ad identificare un parametro specifico è passato alla funzione