Varie correzioni, completata revisione capitolo sull'I/O su file
[gapil.git] / html / gapil.html
index 8ce6a23739595b07a8ae7f2523d3b67a5093cd54..d1e73493b77bb57c5f3c0dd20137f555ec392cf9 100644 (file)
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="iso-8859-1"?> 
+<?xml version="1.0" encoding="utf-8"?> 
 
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "DTD/xhtml1-strict.dtd">
 
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="it">
   <head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>GaPiL -- Guida alla Programmazione in Linux</title>
     <meta name="author" content="Simone Piccardi" />
     <meta name="title" content="Guida alla Programmazione in Linux" />
            </a> 
          </td>
          <td align="center" bgcolor="#dddddd">
-           <a target="_parent"  href="stampa.html">
+           <a target="_parent"  href="stato.html">
+             <font face="sans-serif">
+               <b>Stato</b>
+             </font>
+           </a> 
+         </td>
+         <td align="center" bgcolor="#dddddd">
+           <a target="_parent"  href="download.html">
              <font face="sans-serif">
                <b>Download</b>
              </font>
@@ -77,9 +84,9 @@
          </td>
          <td align="center" bgcolor="#dddddd">
            <a target="_parent"  
-             href="http://cvs.firenze.linux.it/cgi-bin/viewcvs.cgi/gapil/?cvsroot=Misc">
+             href="http://gapil.truelite.it/sources">
              <font face="sans-serif">
-               <b>CVS</b>
+               <b>Trac</b>
              </font>
            </a>
          </td>
@@ -88,7 +95,7 @@
     </table>
 
 <!-- CUT HERE -->
-    <table width="800" cellspacing="10" cellpadding="10" border="0">
+    <table width="1000" cellspacing="10" cellpadding="10" border="0">
       <tbody>
        <tr>
          <td width="130" valign="top"><b>
              </font>
            </b>
          </td>
-         <td bgcolor="lightblue"> 
-           
+         <td bgcolor="lightblue"  width="600">             
            <b>GaPiL</b> nasce dalla mia convinzione profonda che la <a
              href="http://www.gnu.org/philosophy/philosophy.it.html">
              "filosofia"</a> che ispira il software libero si applichi anche
           
            <p> Ma se trovare della buona documentazione libera, specie per
                quanto riguarda i programmi che girano sul sistema GNU/Linux,
-               è ormai relativamente facile, la produzione di buoni testi
-               didattici è ancora molto limitata, soprattutto se li si cercano
+               è ormai relativamente facile, la produzione di buoni testi
+               didattici è ancora molto limitata, soprattutto se li si cercano
                in lingua italiana.
            </p>
-           <p> <b>GaPiL</b> è un tentativo di scrivere un manuale di
+           <p> <b>GaPiL</b> è un tentativo di scrivere un manuale di
                programmazione di sistema in ambiente Linux, con una
                particolare attenzione alle caratteristiche specifiche delle
-               interfacce fornite dal kernel. Benché buona parte della
-               trattazione delle funzioni di libreria faccia riferimento a
-               standard generali come POSIX, si è comunque data una
-               attenzione particolare alle GNU libc, che sono la versione più
-               usata delle librerie del C, senza dimenticare, ove note, di
-               citare le differenze con possibili alternative come le libc5 o
-               le uclibc.
+               interfacce fornite dal kernel. Per questo motivo si parla di
+               Linux e non di GNU/Linux.
+           </p>
+           <p> Nonostante questa specificità, essendo la gran parte delle
+               funzioni di sistema standardizzate, la guida dovrebbe
+               risultare utile anche facendo riferimenti ad altri sistemi di
+               tipo Unix come BSD, in ogni caso si sono sottolineate
+               esplicitamente le caratteristiche specifiche di Linux.  
            </p>
            <p>
-               L'obiettivo resta comunque quello di riuscire a produrre una
+               Benché buona parte della trattazione delle funzioni di
+               libreria sia del tutto identica, facendo riferimento a
+               standard generali come POSIX, si 
+               è comunque prestata particolare attenzione alle funzioni delle
+               GNU libc, che sono la versione più usata delle librerie del C,
+               senza dimenticare, ove note, di citare le differenze con
+               possibili alternative come le libc5 o le uclibc.
+           </p>
+           <p>
+               L'obiettivo resta comunque quello di riuscire a produrre un
                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 su un kernel Linux, con
-               la speranza di poter un giorno raggiungere la qualità dei
+               la speranza di poter un giorno raggiungere la qualità dei
                lavori del compianto R. W. Stevens.
            </p>
          </td>
+         <td valign="top">
+<!-- Generated by OpenX 2.8.5 -->
+<script type='text/javascript' src='http://openx.fountainpen.it/www/delivery/spcjs.php?id=3'></script>
+<script type='text/javascript'><!--// <![CDATA[
+    /* [id3] gapil.truelite.it - Default */
+        OA_show(3);
+// ]]> --></script><noscript><a target='_blank' href='http://openx.fountainpen.it/www/delivery/ck.php?n=80aa9ec'><img border='0' alt='' src='http://openx.fountainpen.it/www/delivery/avw.php?zoneid=3&amp;n=80aa9ec' /></a></noscript>
+         </td>
        </tr> 
        <tr>
          <td width="130" valign="top">
            <b>
              <font color="#0000aa">
-               Disponibilità
+               Altro materiale
              </font>
            </b>
          </td>
          <td bgcolor="lightblue"> 
-
-             <b>GaPiL</b> nasce come libro e come tale la versione di
-             riferimento è quella in PDF, accessibile nella sezione <a
-             href="stampa.html"> <font face="sans-serif"> <b>Download</b>
-             </font></a>. Grazie all'opera di Mirko Maischberger abbiamo
-             anche una bellissima versione HTML, accessibile nella sezione <a
-             href="http://www.lilik.it/~mirko/gapil/gapil.html"> <font
-             face="sans-serif"> <b>online</b></font></a>, finalmente
-             all'altezza della versione stampabile.
-         </td>
-       </tr>
-       <tr>
-         <td width="130" valign="top">
-           <b>
-             <font color="#0000aa">
-               Stato
-             </font>
-           </b>
-         </td>
-         <td bgcolor="lightblue"> <b>GaPiL</b> è in continua evoluzione ma
-           alcune parti hanno raggiunto una "stabilità" sufficiente (nel
-           senso che le ho riviste, le ritengo abbastanza complete, e non
-           sono stato capace di accorgermi degli errori che ci ho lasciato)
-           altre sono da rivedere, altre sono solo parzialmente accennate. La
-           situazione attuale è la seguente:
-           <table width="600" cellspacing="5">
-             <tbody>
-               <tr>
-                 <td valign="top"> <b> Cap. 1 </b> </td>
-                 <td valign="top"> Introduzione </td> 
-                 <td valign="top"> quasi completo e parzialmente revisionato
-                 </td>
-               </tr>
-               <tr>
-                 <td valign="top"> <b> Cap. 2-3 </b> </td>
-                 <td valign="top"> Gestione dei processi </td>
-                 <td valign="top"> quasi completi e parzialmente revisionati
-                 </td>
-               </tr>
-               <tr>
-                 <td valign="top"> <b> Cap. 4-7 </b> </td>
-                 <td valign="top"> Gestione base dei file </td>
-                 <td valign="top"> quasi completi e parzialmente revisionati
-                 </td>
-               </tr>
-               <tr>
-                 <td valign="top"> <b> Cap. 8 </b> </td>               
-                 <td valign="top"> Sistema, parametri, errori</td> 
-                 <td valign="top"> quasi completo, da revisionare</td>
-               </tr>
-               <tr>
-                 <td valign="top"> <b> Cap. 9 </b> </td>
-                 <td valign="top"> Segnali</td> 
-                 <td valign="top"> quasi completo, da revisionare </td>
-               </tr>
-               <tr>
-                 <td valign="top"> <b> Cap. 10 </b> </td>
-                 <td valign="top"> Sessioni e terminali</td> 
-                 <td valign="top"> sessioni complete, da revisionare, 
-                   terminali quasi completi. </td>
-               </tr>
-               <tr>
-                 <td valign="top"> <b> Cap. 11 </b> </td>
-                 <td valign="top"> Gestione avanzata dei file</td> 
-                 <td valign="top"> 
-                   I/O non bloccante, asincrono, memory
-                   mapped completo, da revisionare, file locking
-                   completo, da revisionare.  
-                 </td>
-               </tr>
-               <tr>
-                 <td valign="top"> <b> Cap. 12 </b> </td>
-                 <td valign="top"> IPC </td> 
-                 <td valign="top"> pipe, fifo e code, semafori, 
-                   memoria condivisa, tecniche alternative completi, da
-                   revisionare, IPC POSIX quasi completo. 
-                 </td>
-               </tr>
-               <tr>
-                 <td valign="top"> <b> Cap. 13 </b> </td>
-                 <td valign="top"> Introduzione alla rete</td> 
-                 <td valign="top"> completo, da revisionare </td>
-               </tr>
-               <tr>
-                 <td valign="top"> <b> Cap. 14 </b> </td>
-                 <td valign="top"> I socket</td> 
-                 <td valign="top"> completo, da revisionare. Manca la
-                 trattazione di eventuali ulteriori famiglie. </td>
-               </tr>
-               <tr>
-                 <td valign="top"> <b> Cap. 15-16 </b> </td>
-                 <td valign="top"> I socket TCP </td> 
-                 <td valign="top"> socket TCP elementari completo, da
-                   revisionare. Socket TCP avanzati appena iniziato,
-                   in fase di stesura.
-
-                 </td>
-               </tr>
-               <tr>
-                 <td valign="top"> <b> Appendici </b> </td>
-                 <td valign="top"> I protocolli, gli errori, ecc.</td> 
-                 <td valign="top"> Materiale messo insieme alla
-                 rinfusa, e da rivedere da zero.
-                 </td>
-               </tr>
-             </tbody>
-           </table>
+         
+           Potete trovare altra documentazione libera di vario tipo (non
+           necessariamente attinente l'informatica) prodotta da me
+           all'indirizzo: <a
+           href="http://firenze.linux.it/~piccardi/pubblicazioni.html">
+           http://firenze.linux.it/~piccardi/pubblicazioni.html</a>
+           <p>
+           Invece la documentazione tecnica più recente che ho prodotto è
+           pubblicata sul sito di <a href="http://www.truelite.it">Truelite
+           Srl</a>, ed in particolare sono disponibili una serie di manuali
+           su temi di natura sistemistica a partire da <a href=
+           "http://labs.truelite.it/truedoc">
+           http://labs.truelite.it/truedoc</a>.
+           </p>
+           <p>
+           Infine, sia per dar sfogo ad una passione personale, che per
+           giocare con Mediawiki, ho creato una sito dedicato alla storia
+           della penna stilografica, con molto materiale ed informazioni,
+           sempre libere, all'indirizzo:
+           <a
+           href="http://www.fountainpen.it">
+           http://www.fountainpen.it</a>
            <p>
-             <b> Versione corrente:</b> 491 pagine.
            </p>
          </td>
        </tr>
            </b>
          </td>
          <td bgcolor="lightblue"> 
-
+             <b>6 - dicembre - 2008</b> <br/> Aggiornata la versione cartacea
+              acquistabile su lulu.com, all'indirizzo 
+             <a href="http://stores.lulu.com/piccardi">
+               http://stores.lulu.com/piccardi</a>, contiene le ultime
+               novità in particolare riguardo le funzioni delle ACL. Si
+               ricorda che il sovrapprezzo serve a finanziare lo sviluppo del
+               testo; si può sempre scaricare la versione corrente aggiornata
+               e gratuita da questo sito.
+           <p>
+             <b>5 - gennaio - 2007</b> <br/> Pubblicata una versione
+             stampabile a richiesta su lulu.com, ordinabile all'indirizzo 
+             <a href="http://stores.lulu.com/piccardi">
+               http://stores.lulu.com/piccardi</a>. 
+           <p>
+             <b>1 - giugno - 2006</b> <br/> Nuova revisione con varie aggiunte
+             e correzioni, in occasione della pubblicazione sul DVD di
+             LinuxPro. 
+           <p>
+             <b>11 - marzo - 2005</b> <br/> Modificata la pagina dell'accesso
+             ai sorgenti, non viene più utilizzato ViewCVS ma è stato
+             installato il sistema di tracking <a
+             href="http://www.edgewall.com/trac/">trac</a> che oltre alla
+             navigazione dei contenuti consente di tenere sotto controllo le
+             revisioni, e l'evoluzione della guida e di inviare ticket via
+             web.
+           <p>
+             <b>6 - marzo - 2005</b> <br/> Realizzato un web server
+             elementare a scopo didattico, in vista <a href="
+             http://www.lilik.it/page.php?pg=gapil">dell'iniziativa del
+             Lilik</a> su GaPiL.
+           <p>
+             <b>12 - gennaio - 2005</b> <br/> Completata la sezione sulla
+             gestione della risoluzione degli indirizzi ed iniziata la
+             sezione sulle opzioni dei socket.
+           <p>
+             <b>19 - luglio - 2004</b> <br/> Completata una prima sezione sui
+             socket UDP ed iniziata una sezione sulle funzioni per la
+             risoluzione degli indirizzi. Inoltre da oggi i sorgenti di Gapil
+             sono accessibili usando <a href="http://subversion.tigris.org/">
+             Subversion</a> sul sito di <a
+             href="http://www.truelite.it">Truelite Srl</a>.
+           <p>
+             <b>3 - marzo - 2004</b> <br/> Ristrutturata la parte sulla
+             programmazione di rete, inserita la sezione sull'I/O
+             multiplexing (completata con esempio di server basato su
+             <b>poll</b>) nella sezione sui socket TCP. Introdotti i nuovi
+             capitoli sugli altri socket, ed iniziata la sezione sui socket
+             UDP. 
+           <p>
+             <b>26 - dicembre - 2003</b> <br/> Inserito esempio di server
+             basato sull'I/O multiplexing. Ristrutturato il capitolo sui file
+             avanzati scorporando in una sezione a parte l'I/O multiplexing,
+             e inserendo alcuni esempi per <b>pselect</b>. Creata una terza
+             parte per le appendici.
+           <p>
              <b>8 - novembre - 2003</b> <br/> Corretta tabella sbagliata al
              capitolo 5, completata la sezione sull'uso dell'I/O multiplexing
              sul lato client ed iniziata la versione server, inserita la
              trattazione della funzione shutdown.
+           </p>
            <p>
              <b>21 - settembre - 2003</b> <br/> Completato il capitolo sui
              socket elementari, e corretti numerosi errori. Revisione della
            <p>
              <b>6 - aprile - 2003</b> <br/> Grazie all'incredibile lavoro di
              Mirko Maischberger abbiamo una favolosa versione in HTML, che
-             collego direttamente dalla sua home page. Non finirò mai di
+             collego direttamente dalla sua home page. Non finirò mai di
              ringraziarlo per aver domato htlatex fino a produrre la prima
              versione di GaPiL realmente consuntabile on line. Con
-             l'occasione è stata completamente revisionata la parte di
+             l'occasione è stata completamente revisionata la parte di
              introduzione alle reti.
            </p>
            <p>
            <p>
              <b>3 - luglio - 2002</b> <br/> Prima versione del sito, con
              rilascio della prima versione di GaPiL in un HTML passabile.
-             <br/>
-             Sono in versione preliminare, ma ricontrollati e di qualità
-             accettabile, i capitoli dal primo al nono: introduzione,
+             <br/> Sono in versione preliminare, ma ricontrollati e di
+             qualità accettabile, i capitoli dal primo al nono: introduzione,
              gestione dei processi, interfacce di base per i file e per il
              controllo dei parametri del sistema, gestione dei segnali. Sono
-             da ricontrollare, ma di qualità decente, i capitoli dal
+             da ricontrollare, ma di qualità decente, i capitoli dal
              tredicesimo al sedicesimo: reti e socket elementari (il
-             sedicesimo capitolo è incompleto). Sono in corso di stesura, e
-             pertanto di qualità non classificabile (che può oscillare fra la
+             sedicesimo capitolo è incompleto). Sono in corso di stesura, e
+             pertanto di qualità non classificabile (che può oscillare fra la
              bozza non rivista ed il semplice elenco degli argomenti) gli
              altri capitoli.
            </p>
        </tr>
      </tbody>
     </table>
+
+<!-- Piwik -->
+<script type="text/javascript">
+var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwik.fountainpen.it/" : "http://piwik.fountainpen.it/");
+document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
+</script><script type="text/javascript">
+try {
+var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 3);
+piwikTracker.trackPageView();
+piwikTracker.enableLinkTracking();
+} catch( err ) {}
+</script><noscript><p><img src="http://piwik.fountainpen.it/piwik.php?idsite=3" style="border:0" alt=""/></p></noscript>
+<!-- End Piwik Tag -->
+
 <!-- CUT HERE -->
   </body>
 </html>