Altro lavoro sul server echo, e sulle condizioni particolari
[gapil.git] / html / index.html
1 <HTML>
2   <HEAD>
3    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
4     <TITLE>GaPiL -- Guida alla Programmazione in Linux</TITLE>
5     <META name="author" content="Simone Piccardi">
6     <META name="title" content="Guida alla Programmazione in Linux">
7     <META name="description" content="Un manuale di programmazione avanzata in
8       Linux">
9     <META name="keywords" content="programmazione, programmazione linux, 
10       POSIX, programmazione avanzata ">
11     <style type="text/css">
12 <!--
13  a {text-decoration: none;}
14  td {font-family: sans-serif}
15 -->
16     </style>
17   </HEAD>
18   <BODY link="mediumslateblue" vlink="mediumblue" alink="red" bgcolor="white">
19
20     <table cellspacing=0 cellpadding=0 border=0 width=800>
21       <tbody>
22         <tr>
23           <td width="170" align=center>
24             <img src="gapil.png" width="160" border=0>
25           </td>
26           <td valign=bottom align=left bgcolor="white">
27             <table cellspacing=0>
28                 <tr>
29                   <td>
30                     <font face="sans-serif" size="+4" 
31                       color="darkred" style="font-size: 22pt">
32                       <b>Guida alla Programmazione in Linux</b>
33                       <br>
34                       <font color="midnightblue">
35                         <b>Simone Piccardi</b>
36                       </font>
37                     </font>
38                   </td>
39                 </tr>
40             </table>
41         </tr>
42       </tbody>
43     </table>
44
45     <table width="790" cellspacing="0" cellpadding="3" border="0">
46       <tbody>
47           <td width=164 align="center" >
48           </td>
49           <td align="center" bgcolor="#dddddd">
50             <A target="_parent"  HREF="index.html">
51               <font face="sans-serif">
52                 <b>Home</b>
53               </font>
54             </A> 
55           </td>
56           <td align="center" bgcolor="#dddddd">
57             <A target="_parent"  href="stampa.html">
58               <font face="sans-serif">
59                 <b>Download</b>
60               </font>
61             </A> 
62           </td>
63           <td align="center" bgcolor="#dddddd">
64             <A target="_parent"  
65             HREF="http://www.lilik.it/~mirko/gapil/gapil.html">
66               <font face="sans-serif" color="darkred">
67                 <b>Versione online</b>
68               </font>
69             </A>
70           </td>
71           <td align="center" bgcolor="#dddddd">
72             <A target="_parent"  
73               HREF="http://cvs.firenze.linux.it/cgi-bin/viewcvs.cgi/gapil/?cvsroot=Misc">
74               <font face="sans-serif">
75                 <b>CVS</b>
76               </font>
77             </A> 
78           </td>
79         </tr>
80       </tbody>
81     </table>
82
83 <!-- CUT HERE -->
84     <table width="800" cellspacing="10" cellpadding="10" border="0">
85       <tbody>
86         <tr>
87           <td width="130" valign="top"><b>
88               <font color="#0000aa">
89                 Il progetto
90               </font>
91             </b>
92           </td>
93           <td bgcolor="lightblue"> 
94             
95             <p> <b>GaPiL</b> nasce dalla mia convinzione profonda che la <A
96                 HREF="http://www.gnu.org/philosophy/philosophy.it.html">
97                 "filosofia"</a> che ispira il software libero si applichi
98                 anche ad altri campi che non siano necessariamente quelli
99                 della scrittura di programmi per computer. In particolare
100                 ritengo che possa assumere una grande rilevanza in ambiti come
101                 quelli dell'educazione e della formazione.
102             </p>
103             <p> Ma se trovare della buona documentazione libera, specie per
104                 quanto riguarda i programmi che girano sul sistema GNU/Linux,
105                 è ormai relativamente facile, la produzione di buoni testi
106                 didattici è ancora molto limitata, soprattutto se li si cercano
107                 in lingua italiana.
108             </p>
109             <p> <b>GaPiL</b> è un tentativo di scrivere un manuale di
110                 programmazione di sistema in ambiente Linux, con una
111                 particolare attenzione alle caratteristiche specifiche delle
112                 interfacce fornite dal kernel. Benché buona parte della
113                 trattazione delle funzioni di libreria faccia riferimento a
114                 standard generali come POSIX, si è comunque data una
115                 attenzione particolare alle GNU libc, che sono la versione più
116                 usata delle librerie del C, senza dimenticare, ove note, di
117                 citare le differenze con possibili alternative come le libc5 o
118                 le uclibc.
119             </p>
120             <p>
121                 L'obiettivo resta comunque quello di riuscire a produrre una
122                 testo, rilasciato sotto <A
123                 HREF="http://www.gnu.org/copyleft/fdl.html">GNU FDL</a>, che
124                 possa servire a chi si accosta per la prima volta alla
125                 programmazione avanzata e di sistema su un kernel Linux, con
126                 la speranza di poter un giorno raggiungere la qualità dei
127                 lavori del compianto R. W. Stevens.
128             </p>
129           </td>
130         </tr> 
131         <tr>
132           <td width="130" valign="top">
133             <b>
134               <font color="#0000aa">
135                 Disponibilità
136               </font>
137             </b>
138           </td>
139           <td bgcolor="lightblue"> 
140             <p>
141               GaPiL nasce come libro e come tale la versione di riferimento è
142               quella in PDF, accessibile nella sezione <A href="stampa.html">
143               <font face="sans-serif"> <b>Download</b> </font></A>. Grazie
144               all'opera di Mirko Maischberger abbiamo anche una bellissima
145               versione HTML, accessibile nella sezione <A
146               href="http://www.lilik.it/~mirko/gapil/gapil.html"> <font
147               face="sans-serif"> <b>online</b> </font></A>, finalmente
148               all'altezza della versione stampabile.
149             </p>
150           </td>
151         </tr>
152         <tr>
153           <td width="130" valign="top">
154             <b>
155               <font color="#0000aa">
156                 Stato
157               </font>
158             </b>
159           </td>
160           <td bgcolor="lightblue"> <b>GaPiL</b> è in continua evoluzione ma
161             alcune parti hanno raggiunto una "stabilità" sufficiente (nel
162             senso che le ho riviste, le ritengo abbastanza complete, e non
163             sono stato capace di accorgermi degli errori che ci ho lasciato)
164             altre sono da rivedere, altre sono solo parzialmente accennate. La
165             situazione attuale è la seguente:
166             <table width="600" cellspacing="5">
167               <tbody>
168                 <tr>
169                   <td valign="top"> <b> Cap. 1 </b> </td>
170                   <td valign="top"> Introduzione </td> 
171                   <td valign="top"> quasi completo e parzialmente revisionato
172                   </td>
173                 </tr>
174                 <tr>
175                   <td valign="top"> <b> Cap. 2-3 </b> </td>
176                   <td valign="top"> Gestione dei processi </td>
177                   <td valign="top"> quasi completi e parzialmente revisionati
178                   </td>
179                 </tr>
180                 <tr>
181                   <td valign="top"> <b> Cap. 4-7 </b> </td>
182                   <td valign="top"> Gestione base dei file
183                   <td valign="top"> quasi completi e parzialmente revisionati
184                   </td>
185                 </tr>
186                 <tr>
187                   <td valign="top"> <b> Cap. 8 </b> </td>               
188                   <td valign="top"> Sistema, parametri, errori</td> 
189                   <td valign="top"> quasi completo, da revisionare</td>
190                 </tr>
191                 <tr>
192                   <td valign="top"> <b> Cap. 9 </b> </td>
193                   <td valign="top"> Segnali</td> 
194                   <td valign="top"> quasi completo, da revisionare </td>
195                 </tr>
196                 <tr>
197                   <td valign="top"> <b> Cap. 10 </b> </td>
198                   <td valign="top"> Sessioni e terminali</td> 
199                   <td valign="top"> Sessioni complete, da revisionare, 
200                     terminali quasi completi. </td>
201                 </tr>
202                 <tr>
203                   <td valign="top"> <b> Cap. 11 </b> </td>
204                   <td valign="top"> Gestione avanzata dei file</td> 
205                   <td valign="top"> 
206                     I/O non bloccante, asincrono, memory
207                     mapped completo, da revisionare, file locking
208                     completo, da revisionare.  
209                   </td>
210                 </tr>
211                 <tr>
212                   <td valign="top"> <b> Cap. 12 </b> </td>
213                   <td valign="top"> IPC</td> 
214                   <td valign="top"> Pipe, fifo e code, semafori, 
215                     memoria condivisa, tecniche alternative completi, da
216                     revisionare, IPC POSIX quasi completo. 
217                   </td>
218                 <tr>
219                   <td valign="top"> <b> Cap. 13-14 </b> </td>
220                   <td valign="top"> Introduzione alla rete</td> 
221                   <td valign="top"> completi, da revisionare </td>
222                 </tr>
223                 <tr>
224                   <td valign="top"> <b> Cap. 15-16 </b> </td>
225                   <td valign="top"> Socket TCP elementari</td> 
226                   <td valign="top"> Caratteristiche base quasi complete,
227                     esempio elementare da concludere </td>
228                 </tr>
229               </tbody>
230             </table>
231             <p>
232               <b> Versione corrente:</b> 473 pagine.
233             </p>
234           </td>
235         </tr>
236         <tr>
237           <td width="130" valign="top">
238             <b>
239               <font color="#0000aa">
240                 Notizie
241               </font>
242             </b>
243           </td>
244           <td bgcolor="lightblue"> 
245             <p>
246               <b>6 - aprile - 2003</b> <br> Grazie all'incredibile lavoro di
247               Mirko Maischberger abbiamo una favolosa versione in HTML, che
248               collego direttamente dalla sua home page. Non finirò mai di
249               ringraziarlo per aver domato htlatex fino a produrre la prima
250               versione di GaPiL realmente consuntabile on line. Con
251               l'occasione è stata completamente revisionata la parte di
252               introduzione alle reti.
253             </p>
254             <p>
255               <b>10 - marzo - 2003</b> <br> Completata la memoria condivisa
256               POSIX, introdotte le relative funzioni di interfaccia,
257               revisionati ed ampliati i capitoli sull'introduzione alla rete
258               ed ai socket.
259             </p>
260               <b>20 - febbraio - 2003</b> <br> Completata la sezione sulle
261               alternative al SysV IPC, introdotte le code di messaggi POSIX,
262               un esempio di uso della memoria condivisa, e parecchie revisioni
263               generali.
264             </p>
265             <p>
266               <b>10 - dicembre - 2002</b> <br> Completata la sezione sul file
267               locking, inserita una nuova sezione sulle alternative al SysV
268               IPC, estesa la parte sulla memoria condivisa, fatta una
269               revisione generale degli indici.
270             </p>
271             <p>
272               <b>26 - ottobre - 2002</b> <br> Revisione di terminali, code di
273               messaggi e advisory file locking.  Aggiunta la struttura dei
274               semafori SysV IPC, del file locking in stile POSIX, ed un
275               contributo di Daniele Masini sull'allocazione della memoria.
276             </p>
277             <p>
278               <b>18 - ottobre - 2002</b> <br> Aggiunte: trattazione elementare
279               dei terminali, dei semafori di System V IPC, del file locking in
280               stile BSD.
281             </p>
282             <p>
283               <b>24 - settembre - 2002</b> <br> Spostato tutto sul CVS
284               pubblico del FLUG che consente l'accesso anonimo. Aggiunta una
285               trattazione preliminare delle code di messaggi di System V IPC e
286               del controllo di sessione.
287             </p>
288             <p>
289               <b>20 - agosto - 2002</b> <br> Completata la stesura preliminare
290               del memory mapped I/O, inserito un esempio di server basato
291               sulle FIFO, completata la versione iniziale dell'introduzione
292               al System V IPC.
293             </p>
294             <p>
295               <b>7 - agosto - 2002</b> <br> Completata la prima stesura delle
296               sezioni relative all'I/O asincrono ed ai segnali real-time,
297               iniziata la stesura della sezione sul memory mapped I/O.
298             </p>
299             <p>
300               <b>22 - luglio - 2002</b> <br> Iniziata la stesura del capitolo
301               sull'I/O avanzato. Completata la sezione su pipe e FIFO (in
302               versione preliminare) inziate le sezioni su I/O asincrono ed una
303               sezione aggiuntiva sui segnali real-time nel relativo capitolo.
304             </p>
305             <p>
306               <b>3 - luglio - 2002</b> <br> Prima versione del sito, con
307               rilascio della prima versione di GaPiL in un HTML passabile.
308               <br>
309               Sono in versione preliminare, ma ricontrollati e di qualità
310               accettabile, i capitoli dal primo al nono: introduzione,
311               gestione dei processi, interfacce di base per i file e per il
312               controllo dei parametri del sistema, gestione dei segnali. Sono
313               da ricontrollare, ma di qualità decente, i capitoli dal
314               tredicesimo al sedicesimo: reti e socket elementari (il
315               sedicesimo capitolo è incompleto). Sono in corso di stesura, e
316               pertanto di qualità non classificabile (che può oscillare fra la
317               bozza non rivista ed il semplice elenco degli argomenti) gli
318               altri capitoli.
319             </p>
320           </td>
321         </tr>
322      </tbody>
323     </table>
324 <!-- CUT HERE -->
325   </body>
326 </html>