Correzioni alle pagine web, e aggiunta di qualche TODO in occasione
[gapil.git] / html / gapil.html
1 <?xml version="1.0" encoding="utf-8"?> 
2
3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
4 "DTD/xhtml1-strict.dtd">
5
6 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="it">
7   <head>
8    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9     <title>GaPiL -- Guida alla Programmazione in Linux</title>
10     <meta name="author" content="Simone Piccardi" />
11     <meta name="title" content="Guida alla Programmazione in Linux" />
12     <meta name="description" content="Un manuale di programmazione avanzata in
13       Linux" />
14     <meta name="keywords" content="programmazione, programmazione linux, 
15       POSIX, programmazione avanzata "/>
16     <style type="text/css">
17 <!--
18  a {text-decoration: none;}
19  td {font-family: sans-serif}
20 -->
21     </style>
22   </head>
23   <body link="mediumslateblue" vlink="mediumblue" alink="red" bgcolor="white">
24
25     <table cellspacing="0" cellpadding="0" border="0" width="800">
26       <tbody>
27         <tr>
28           <td width="170" align="center">
29             <img src="gapil.png" width="160" border="0" />
30           </td>
31           <td valign="bottom" align="left" bgcolor="white">
32             <table cellspacing="0">
33               <tr>
34                 <td>
35                   <font face="sans-serif" size="+4" 
36                     color="darkred" style="font-size: 22pt"> 
37                     <b>Guida alla Programmazione in Linux</b> 
38                     <br />
39                       <font color="midnightblue">
40                         <b>Simone Piccardi</b>
41                       </font>
42                   </font>
43                 </td>
44               </tr>
45             </table>
46           </td>
47         </tr>
48       </tbody>
49     </table>
50
51     <table width="790" cellspacing="0" cellpadding="3" border="0">
52       <tbody>
53         <tr>
54           <td width="164" align="center" >
55           </td>
56           <td align="center" bgcolor="#dddddd">
57             <a target="_parent"  href="index.html">
58               <font face="sans-serif">
59                 <b>Home</b>
60               </font>
61             </a> 
62           </td>
63           <td align="center" bgcolor="#dddddd">
64             <a target="_parent"  href="stato.html">
65               <font face="sans-serif">
66                 <b>Stato</b>
67               </font>
68             </a> 
69           </td>
70           <td align="center" bgcolor="#dddddd">
71             <a target="_parent"  href="download.html">
72               <font face="sans-serif">
73                 <b>Download</b>
74               </font>
75             </a> 
76           </td>
77           <td align="center" bgcolor="#dddddd">
78             <a target="_parent"  
79               href="http://www.lilik.it/~mirko/gapil/gapil.html">
80               <font face="sans-serif" color="darkred">
81                 <b>Versione online</b>
82               </font>
83             </a>
84           </td>
85           <td align="center" bgcolor="#dddddd">
86             <a target="_parent"  
87               href="http://gapil.truelite.it/sources">
88               <font face="sans-serif">
89                 <b>Trac</b>
90               </font>
91             </a>
92           </td>
93         </tr>
94       </tbody>
95     </table>
96
97 <!-- CUT HERE -->
98     <table width="1000" cellspacing="10" cellpadding="10" border="0">
99       <tbody>
100         <tr>
101           <td width="130" valign="top"><b>
102               <font color="#0000aa">
103                 Il progetto
104               </font>
105             </b>
106           </td>
107           <td bgcolor="lightblue"  width="600"> 
108             
109             <b>GaPiL</b> nasce dalla mia convinzione profonda che la <a
110               href="http://www.gnu.org/philosophy/philosophy.it.html">
111               "filosofia"</a> che ispira il software libero si applichi anche
112               ad altri campi che non siano necessariamente quelli della
113               scrittura di programmi per computer. In particolare ritengo che
114               possa assumere una grande rilevanza in ambiti come quelli
115               dell'educazione e della formazione.
116            
117             <p> Ma se trovare della buona documentazione libera, specie per
118                 quanto riguarda i programmi che girano sul sistema GNU/Linux,
119                 è ormai relativamente facile, la produzione di buoni testi
120                 didattici è ancora molto limitata, soprattutto se li si cercano
121                 in lingua italiana.
122             </p>
123             <p> <b>GaPiL</b> è un tentativo di scrivere un manuale di
124                 programmazione di sistema in ambiente Linux, con una
125                 particolare attenzione alle caratteristiche specifiche delle
126                 interfacce fornite dal kernel. Benché buona parte della
127                 trattazione delle funzioni di libreria faccia riferimento a
128                 standard generali come POSIX, si è comunque data una
129                 attenzione particolare alle GNU libc, che sono la versione più
130                 usata delle librerie del C, senza dimenticare, ove note, di
131                 citare le differenze con possibili alternative come le libc5 o
132                 le uclibc.
133             </p>
134             <p>
135                 L'obiettivo resta comunque quello di riuscire a produrre un
136                 testo, rilasciato sotto <a
137                 href="http://www.gnu.org/copyleft/fdl.html">GNU FDL</a>, che
138                 possa servire a chi si accosta per la prima volta alla
139                 programmazione avanzata e di sistema su un kernel Linux, con
140                 la speranza di poter un giorno raggiungere la qualità dei
141                 lavori del compianto R. W. Stevens.
142             </p>
143           </td>
144           <td valign="top">
145
146           <script type="text/javascript">
147             <!--
148               google_ad_client = "pub-8183995981511372";
149               /* GapilHomeAd160x600 */
150               google_ad_slot = "2733882512";
151               google_ad_width = 160;
152               google_ad_height = 600;
153              //-->
154           </script>
155           <script type="text/javascript"
156              src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
157           </script>
158           </td>
159           
160         </tr> 
161         <tr>
162           <td width="130" valign="top">
163             <b>
164               <font color="#0000aa">
165                 Altro materiale
166               </font>
167             </b>
168           </td>
169           <td bgcolor="lightblue"> 
170           
171             Potete trovare altro materiale libero di vario tipo (non
172             necessariamente attinente l'informatica) prodotto da me
173             all'indirizzo: <a
174             href="http://firenze.linux.it/~piccardi/pubblicazioni.html">
175             http://firenze.linux.it/~piccardi/pubblicazioni.html</a>
176             <p>
177             Invece la documentazione tecnica più recente che ho prodotto è
178             pubblicata sul sito di <a href="http://www.truelite.it">Truelite
179             Srl</a>, ed in particolare sono disponibili una serie di manuali
180             su temi di natura sistemistica a partire da <a href=
181             "http://labs.truelite.it/truedoc">
182             http://labs.truelite.it/truedoc</a>.
183             </p>
184           </td>
185         </tr>
186         <tr>
187           <td width="130" valign="top">
188             <b>
189               <font color="#0000aa">
190                 Notizie
191               </font>
192             </b>
193           </td>
194           <td bgcolor="lightblue"> 
195               <b>6 - dicembre - 2008</b> <br/> Aggiornata la versione cartacea
196                acquistabile su lulu.com, all'indirizzo 
197               <a href="http://stores.lulu.com/piccardi">
198                 http://stores.lulu.com/piccardi</a>, contiene le ultime
199                 novità in particolare riguardo le funzioni delle ACL. Si
200                 ricorda che il sovrapprezzo serve a finanziare lo sviluppo del
201                 testo; si può sempre scaricare la versione corrente aggiornata
202                 e gratuita da questo sito.
203             <p>
204               <b>5 - gennaio - 2007</b> <br/> Pubblicata una versione
205               stampabile a richiesta su lulu.com, ordinabile all'indirizzo 
206               <a href="http://stores.lulu.com/piccardi">
207                 http://stores.lulu.com/piccardi</a>. 
208             <p>
209               <b>1 - giugno - 2006</b> <br/> Nuova revisione con varie aggiunte
210               e correzioni, in occasione della pubblicazione sul DVD di
211               LinuxPro. 
212             <p>
213               <b>11 - marzo - 2005</b> <br/> Modificata la pagina dell'accesso
214               ai sorgenti, non viene più utilizzato ViewCVS ma è stato
215               installato il sistema di tracking <a
216               href="http://www.edgewall.com/trac/">trac</a> che oltre alla
217               navigazione dei contenuti consente di tenere sotto controllo le
218               revisioni, e l'evoluzione della guida e di inviare ticket via
219               web.
220             <p>
221               <b>6 - marzo - 2005</b> <br/> Realizzato un web server
222               elementare a scopo didattico, in vista <a href="
223               http://www.lilik.it/page.php?pg=gapil">dell'iniziativa del
224               Lilik</a> su GaPiL.
225             <p>
226               <b>12 - gennaio - 2005</b> <br/> Completata la sezione sulla
227               gestione della risoluzione degli indirizzi ed iniziata la
228               sezione sulle opzioni dei socket.
229             <p>
230               <b>19 - luglio - 2004</b> <br/> Completata una prima sezione sui
231               socket UDP ed iniziata una sezione sulle funzioni per la
232               risoluzione degli indirizzi. Inoltre da oggi i sorgenti di Gapil
233               sono accessibili usando <a href="http://subversion.tigris.org/">
234               Subversion</a> sul sito di <a
235               href="http://www.truelite.it">Truelite Srl</a>.
236             <p>
237               <b>3 - marzo - 2004</b> <br/> Ristrutturata la parte sulla
238               programmazione di rete, inserita la sezione sull'I/O
239               multiplexing (completata con esempio di server basato su
240               <b>poll</b>) nella sezione sui socket TCP. Introdotti i nuovi
241               capitoli sugli altri socket, ed iniziata la sezione sui socket
242               UDP. 
243             <p>
244               <b>26 - dicembre - 2003</b> <br/> Inserito esempio di server
245               basato sull'I/O multiplexing. Ristrutturato il capitolo sui file
246               avanzati scorporando in una sezione a parte l'I/O multiplexing,
247               e inserendo alcuni esempi per <b>pselect</b>. Creata una terza
248               parte per le appendici.
249             <p>
250               <b>8 - novembre - 2003</b> <br/> Corretta tabella sbagliata al
251               capitolo 5, completata la sezione sull'uso dell'I/O multiplexing
252               sul lato client ed iniziata la versione server, inserita la
253               trattazione della funzione shutdown.
254             </p>
255             <p>
256               <b>21 - settembre - 2003</b> <br/> Completato il capitolo sui
257               socket elementari, e corretti numerosi errori. Revisione della
258               sezione sull'I/O multiplexing nel capitolo sui file avanzati in
259               vista dell'uso nel capitolo sui socket TCP avanzati.
260             </p>
261             <p>
262               <b>6 - aprile - 2003</b> <br/> Grazie all'incredibile lavoro di
263               Mirko Maischberger abbiamo una favolosa versione in HTML, che
264               collego direttamente dalla sua home page. Non finirò mai di
265               ringraziarlo per aver domato htlatex fino a produrre la prima
266               versione di GaPiL realmente consuntabile on line. Con
267               l'occasione è stata completamente revisionata la parte di
268               introduzione alle reti.
269             </p>
270             <p>
271               <b>10 - marzo - 2003</b> <br/> Completata la memoria condivisa
272               POSIX, introdotte le relative funzioni di interfaccia,
273               revisionati ed ampliati i capitoli sull'introduzione alla rete
274               ed ai socket.
275             </p>
276             <p>
277               <b>20 - febbraio - 2003</b> <br/> Completata la sezione sulle
278               alternative al SysV IPC, introdotte le code di messaggi POSIX,
279               un esempio di uso della memoria condivisa, e parecchie revisioni
280               generali.
281             </p>
282             <p>
283               <b>10 - dicembre - 2002</b> <br/> Completata la sezione sul file
284               locking, inserita una nuova sezione sulle alternative al SysV
285               IPC, estesa la parte sulla memoria condivisa, fatta una
286               revisione generale degli indici.
287             </p>
288             <p>
289               <b>26 - ottobre - 2002</b> <br/> Revisione di terminali, code di
290               messaggi e advisory file locking.  Aggiunta la struttura dei
291               semafori SysV IPC, del file locking in stile POSIX, ed un
292               contributo di Daniele Masini sull'allocazione della memoria.
293             </p>
294             <p>
295               <b>18 - ottobre - 2002</b> <br/> Aggiunte: trattazione elementare
296               dei terminali, dei semafori di System V IPC, del file locking in
297               stile BSD.
298             </p>
299             <p>
300               <b>24 - settembre - 2002</b> <br/> Spostato tutto sul CVS
301               pubblico del FLUG che consente l'accesso anonimo. Aggiunta una
302               trattazione preliminare delle code di messaggi di System V IPC e
303               del controllo di sessione.
304             </p>
305             <p>
306               <b>20 - agosto - 2002</b> <br/> Completata la stesura preliminare
307               del memory mapped I/O, inserito un esempio di server basato
308               sulle FIFO, completata la versione iniziale dell'introduzione
309               al System V IPC.
310             </p>
311             <p>
312               <b>7 - agosto - 2002</b> <br/> Completata la prima stesura delle
313               sezioni relative all'I/O asincrono ed ai segnali real-time,
314               iniziata la stesura della sezione sul memory mapped I/O.
315             </p>
316             <p>
317               <b>22 - luglio - 2002</b> <br/> Iniziata la stesura del capitolo
318               sull'I/O avanzato. Completata la sezione su pipe e FIFO (in
319               versione preliminare) inziate le sezioni su I/O asincrono ed una
320               sezione aggiuntiva sui segnali real-time nel relativo capitolo.
321             </p>
322             <p>
323               <b>3 - luglio - 2002</b> <br/> Prima versione del sito, con
324               rilascio della prima versione di GaPiL in un HTML passabile.
325               <br/> Sono in versione preliminare, ma ricontrollati e di
326               qualità accettabile, i capitoli dal primo al nono: introduzione,
327               gestione dei processi, interfacce di base per i file e per il
328               controllo dei parametri del sistema, gestione dei segnali. Sono
329               da ricontrollare, ma di qualità decente, i capitoli dal
330               tredicesimo al sedicesimo: reti e socket elementari (il
331               sedicesimo capitolo è incompleto). Sono in corso di stesura, e
332               pertanto di qualità non classificabile (che può oscillare fra la
333               bozza non rivista ed il semplice elenco degli argomenti) gli
334               altri capitoli.
335             </p>
336           </td>
337         </tr>
338      </tbody>
339     </table>
340 <!-- CUT HERE -->
341   </body>
342 </html>