Risistemate, spero le modifiche.
authorSimone Piccardi <piccardi@gnulinux.it>
Fri, 4 Oct 2002 21:56:11 +0000 (21:56 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Fri, 4 Oct 2002 21:56:11 +0000 (21:56 +0000)
html/index.html
session.tex

index 57ce4ff37de28de76da5e7e43ef72420ccf6a76b..b13be4f5eb2836af1ffdb018ed4676b23dfbbddb 100644 (file)
                in lingua italiana.
            </p>
            <p> <b>GaPiL</b> è un tentativo di scrivere un manuale di
-               programmazione di sistema per Linux e le GNU libc.
-               L'obiettivo è quello di riuscire a produrre una testo
-               rilasciato sotto <A
+               programmazione di sistema per Linux con un'occhio particolare
+               per le GNU libc, che sono la versione più diffusa delle
+               librerie di sistema.  L'obiettivo è quello di riuscire a
+               produrre una testo, rilasciato sotto <A
                HREF="http://www.gnu.org/copyleft/fdl.html">GNU FDL</a>, che
                possa servire a chi si accosta per la prima volta alla
                programmazione avanzata e di sistema in Linux, con la speranza
                <tr>
                  <td valign="top"> <b> Cap. 10 </b> </td>
                  <td valign="top"> Sessioni e terminali</td> 
-                 <td valign="top"> Sessioni abbozzate, terminali da fare </td>
+                 <td valign="top"> Sessioni complete, da revisionare, 
+                   terminali da fare </td>
                </tr>
                <tr>
                  <td valign="top"> <b> Cap. 11 </b> </td>
                  <td valign="top"> Gestione avanzata dei file</td> 
-                 <td valign="top"> I/O avanzato abbozzato, file locking
-                 accennato </td>
+                 <td valign="top"> I/O non bloccante, asincrono, memory
+                   mapped complete, da revisionare, file locking da fare </td>
                </tr>
                <tr>
                  <td valign="top"> <b> Cap. 12 </b> </td>
                  <td valign="top"> IPC</td> 
-                 <td valign="top"> Pipe e fifo complete, abbozzate code e
-                 semafori, POSIX IPC da fare </td>
+                 <td valign="top"> Pipe, fifo e code complete, e 
+                 semafori iniziati, POSIX IPC da fare </td>
                <tr>
                  <td valign="top"> <b> Cap. 13-14 </b> </td>
                  <td valign="top"> Introduzione alla rete</td> 
              </tbody>
            </table>
            <p>
-             <b> Versione corrente:</b> 373 pagine.
+             <b> Versione corrente:</b> 377 pagine.
            </p>
          </td>
        </tr>
index 675334bf1fce22d974e98bd44fc723f73ec447b8..f1b009b2a8f312f82d87c37707b4303d06d98697 100644 (file)
@@ -1,13 +1,18 @@
- \chapter{Sessioni di lavoro e terminali}
+\chapter{Terminali e sessioni di lavoro}
 \label{cha:session}
 
-Esamineremo in questo capitolo i concetti base del sistema delle sessioni di
-lavoro, vale a dire il metodo con cui il kernel gestisce l'accesso concorrente
-al sistema da parte di più utenti, permettendo loro di eseguire più programmi
-in contemporanea.  Nella seconda parte del capitolo tratteremo poi il
-funzionamento dell'I/O su terminale, e delle varie peculiarità che esso viene
-ad assumere a causa del suo stretto legame con le modalità di accesso al
-sistema da parte degli utenti.
+I terminali per lungo tempo tempo sono stati l'unico modo per accedere al
+sistema, per questo anche oggi che esistono molte altre interfacce, essi
+continuano a coprire un ruolo particolare, restando strettamente legati al
+funzionamento dell'interfaccia a linea di comando.
+
+Mella prima parte del capitolo esamineremo i concetti base del sistema delle
+sessioni di lavoro, vale a dire il metodo con cui il kernel permette ad un
+utente di gestire le capacità multitiasking del sistema, permettendo di
+eseguire più programmi in contemporanea.  Nella seconda parte del capitolo
+tratteremo poi il funzionamento dell'I/O su terminale, e delle varie
+peculiarità che esso viene ad assumere a causa del suo stretto legame con il
+suo uso come interfaccia di accesso al sistema da parte degli utenti.
 
 
 \section{Il \textit{job control}}
@@ -678,12 +683,16 @@ messaggi del kernel.\footnote{i messaggi del kernel sono tenuti in un buffer
   si trova in \cite{LinDevDri}, nel quarto capitolo.}
 
 Il servizio permette poi di trattare i vari messaggi classificandoli
-attraverso due indici; il primo, chiamato \textit{facility}, indica quale
-categoria di demone ha emesso il messaggio, ed è organizzato in sottosistemi
-(kernel, posta elettronica, demoni di stampa, ecc.), il secondo, chiamato
-\textit{priority}, identifica l'importanza del messaggio. Il sistema di
-\textit{syslog} provvede poi a riportare i messaggi all'amministratore
-attraverso differenti meccanismi come:
+attraverso due indici; il primo, chiamato \textit{facility}, suddivide in
+diverse categorie i vari demoni in modo di raggruppare i messaggi provenienti
+da operazioni che hanno attinenza fra loro, ed è organizzato in sottosistemi
+(kernel, posta elettronica, demoni di stampa, ecc.). Il secondo, chiamato
+\textit{priority}, identifica l'importanza dei vari messaggi, e permette di
+classificarli e differenziare le modalità di notifica degli stessi.
+
+Il sistema di \textit{syslog} attraverso \cmd{syslogd} provvede poi a
+riportare i messaggi all'amministratore attraverso una serie differenti
+meccanismi come:
 \begin{itemize*}
 \item scrivere sulla console.
 \item inviare via mail ad uno specifico utente.
@@ -697,10 +706,10 @@ dettagli si possono trovare sulle pagine di manuale per questo file e per
 \cmd{syslogd}).
 
 Le \acr{glibc} definiscono una serie di funzioni standard con cui un processo
-può accedere in maniera generica al servizio di syslog, che però funzionano
-solo localmente; se si vogliono inviare i messaggi ad un'altro sistema occorre
-farlo esplicitamente con un socket UDP, o utilizzare le capacità di reinvio
-del servizio.
+può accedere in maniera generica al servizio di \textit{syslog}, che però
+funzionano solo localmente; se si vogliono inviare i messaggi ad un'altro
+sistema occorre farlo esplicitamente con un socket UDP, o utilizzare le
+capacità di reinvio del servizio.
 
 La prima funzione definita dall'interfaccia è \func{openlog}, che apre una
 connessione al servizio di \textit{syslog}; essa in generale non è necessaria
@@ -720,15 +729,15 @@ specificato da \code{argv[0]}); la stringa verr
 messaggio. Si tenga presente che il valore di \param{ident} che si passa alla
 funzione è un puntatore, se la stringa cui punta viene cambiata lo sarà pure
 nei successivi messaggi, e se viene cancellata i risultati potranno essere
-impredicibili, per questo è sempre opportuno usare una stringa costante.
+impredicibili, per questo è sempre opportuno usare una stringa costante. 
 
- L'argomento \param{facility} permette invece di preimpostare per le successive
- chiamate l'omonimo indice che classifica la categoria del messaggio.
- L'argomento è interpretato come una maschera binaria, e pertanto è possibile
- inviare i messaggi su più categorie alla volta; i valori delle costanti che
- identificano ciascuna categoria sono riportati in
- \tabref{tab:sess_syslog_facility}, il valore di \param{facility} deve essere
- specificato con un OR aritmetico.
+L'argomento \param{facility} permette invece di preimpostare per le successive
+chiamate l'omonimo indice che classifica la categoria del messaggio.
+L'argomento è interpretato come una maschera binaria, e pertanto è possibile
+inviare i messaggi su più categorie alla volta; i valori delle costanti che
+identificano ciascuna categoria sono riportati in
+\tabref{tab:sess_syslog_facility}, il valore di \param{facility} deve essere
+specificato con un OR aritmetico.
 
 \begin{table}[htb]
 \centering
@@ -762,8 +771,8 @@ impredicibili, per questo 
 
 L'argomento \param{option} serve invece per controllare il comportamento della
 funzione \func{openlog} e delle modalità con cui le successive chiamate
-scriveranno i messaggi, anch'esso viene specificato come maschera binaria
-composta con un OR aritmetico di una qualunque delle costanti riportate in
+scriveranno i messaggi, esso viene specificato come maschera binaria composta
+con un OR aritmetico di una qualunque delle costanti riportate in
 \tabref{tab:sess_openlog_option}.
 
 \begin{table}[htb]
@@ -807,19 +816,19 @@ differenza 
 restituita da \code{strerror(errno)}. Gli argomenti seguenti i primi due
 devono essere forniti secondo quanto richiesto da \func{format}.
 
- L'argomento \param{priority} permette di impostare sia la \textit{facility} 
- che la \textit{priority} del messaggio. In realtà viene prevalentemente usato 
- per specificare solo quest'ultima in quanto la prima viene di norma 
- preimpostata con \func{openlog}. La priorità è indicata con un valore
- numerico\footnote{le \acr{glibc}, seguendo POSIX.1-2001, prevedono otto
-   diverse priorità ordinate da 0 a 7, in ordine di importanza decrescente;
-   questo comporta che i tre bit meno significativi dell'argomento
-   \param{priority} sono occupati da questo valore, mentre i restanti bit più
-   significativi vengono usati per specificare la \textit{facility}.}
- specificabile attraverso le costanti riportate in
- \secref{tab:sess_syslog_priority}.  Nel caso si voglia specificare anche la
- \textit{facility} basta eseguire un OR aritmetico del valore della priorità
- con la maschera binaria delle costanti di \tabref{tab:sess_syslog_facility}.
+L'argomento \param{priority} permette di impostare sia la \textit{facility}
+che la \textit{priority} del messaggio. In realtà viene prevalentemente usato
+per specificare solo quest'ultima in quanto la prima viene di norma
+preimpostata con \func{openlog}. La priorità è indicata con un valore
+numerico\footnote{le \acr{glibc}, seguendo POSIX.1-2001, prevedono otto
+  diverse priorità ordinate da 0 a 7, in ordine di importanza decrescente;
+  questo comporta che i tre bit meno significativi dell'argomento
+  \param{priority} sono occupati da questo valore, mentre i restanti bit più
+  significativi vengono usati per specificare la \textit{facility}.}
+specificabile attraverso le costanti riportate in
+\secref{tab:sess_syslog_priority}.  Nel caso si voglia specificare anche la
+\textit{facility} basta eseguire un OR aritmetico del valore della priorità
+con la maschera binaria delle costanti di \tabref{tab:sess_syslog_facility}.
 
 \begin{table}[htb]
 \centering
@@ -838,15 +847,15 @@ devono essere forniti secondo quanto richiesto da \func{format}.
 \macro{LOG\_DEBUG}   & Messaggio di debug.\\
 \hline
 \end{tabular}
- \caption{Valori possibili per l'indice di importanza del messaggio da
+\caption{Valori possibili per l'indice di importanza del messaggio da
   specificare nell'argomento \param{priority} di \func{syslog}.}
 \label{tab:sess_syslog_priority}
 \end{table}
 
-  Una ulteriore funzione, \func{setlogmask}, permette di filtrare
-  preliminarmente i messaggi in base alla loro priorità; il suo prototipo è:
+Una ulteriore funzione, \func{setlogmask}, permette di filtrare
+preliminarmente i messaggi in base alla loro priorità; il suo prototipo è:
 \begin{prototype}{syslog.h}
-  {int setlogmask(int mask)}
+{int setlogmask(int mask)}
 
 Imposta la maschera dei log al valore specificato.
 
@@ -867,9 +876,14 @@ priorit
 \section{L'I/O su terminale}
 \label{sec:sess_terminal_io}
 
-Esamineremo in questa sezione le peculiarità dell'I/O eseguito sui terminali,
-tenendo conto delle differenze che quest'ultimi presentano rispetto ai normali
-file su disco.
+Benché come ogni altro dispositivo i terminali siano accessibili come file,
+essi hanno assunto storicamente (essendo stati a lungo l'unico modo di
+accedere al sistema) una loro rilevanza specifica, che abbiamo già avuto modo
+di incontrare nella precedente sezione.
+
+Esamineremo qui le peculiarità dell'I/O eseguito sui terminali, che per la
+loro particolare natura presenta delle differenze rispetto ai normali file su
+disco e agli altri dispositivi.