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
9 <META name="keywords" content="programmazione, programmazione linux,
10 POSIX, programmazione avanzata ">
11 <style type="text/css">
13 a {text-decoration: none;}
14 td {font-family: sans-serif}
18 <BODY link="mediumslateblue" vlink="mediumblue" alink="red" bgcolor="white">
20 <table cellspacing=0 cellpadding=0 border=0 width=800>
23 <td width="170" align=center>
24 <img src="gapil.png" width="160" border=0>
26 <td valign=bottom align=left bgcolor="white">
30 <font face="sans-serif" size="+4"
31 color="darkred" style="font-size: 22pt">
32 <b>Guida alla Programmazione in Linux</b>
34 <font color="midnightblue">
35 <b>Simone Piccardi</b>
45 <table width="790" cellspacing="0" cellpadding="3" border="0">
47 <td width=164 align="center" >
49 <td align="center" bgcolor="#dddddd">
50 <A target="_parent" HREF="index.html">
51 <font face="sans-serif">
56 <td align="center" bgcolor="#dddddd">
57 <A target="_parent" href="stampa.html">
58 <font face="sans-serif">
63 <td align="center" bgcolor="#dddddd">
64 <A target="_parent" HREF="html/index.html">
65 <font face="sans-serif" color="darkred">
66 <b>Versione online</b>
70 <td align="center" bgcolor="#dddddd">
72 HREF="http://cvs.firenze.linux.it/cgi-bin/viewcvs.cgi/gapil/?cvsroot=Misc">
73 <font face="sans-serif">
83 <table width="800" cellspacing="10" cellpadding="10" border="0">
86 <td width="130" valign="top"><b>
87 <font color="#0000aa">
92 <td bgcolor="lightblue">
94 <p> <b>GaPiL</b> nasce dalla mia convinzione profonda che la <A
95 HREF="http://www.gnu.org/philosophy/philosophy.it.html">
96 "filosofia"</a> che ispira il software libero si applichi
97 anche ad altri campi che non siano necessariamente quelli
98 della scrittura di programmi per computer. In particolare
99 ritengo che possa assumere una grande rilevanza in ambiti come
100 quelli dell'educazione e della formazione.
102 <p> Ma se trovare della buona documentazione libera, specie per
103 quanto riguarda i programmi che girano sul sistema GNU/Linux,
104 è ormai relativamente facile, la produzione di buoni testi
105 didattici è ancora molto limitata, soprattutto se li si cercano
108 <p> <b>GaPiL</b> è un tentativo di scrivere un manuale di
109 programmazione di sistema per Linux con un'occhio particolare
110 per le GNU libc, che sono la versione più diffusa delle
111 librerie di sistema. L'obiettivo è quello di riuscire a
112 produrre una testo, rilasciato sotto <A
113 HREF="http://www.gnu.org/copyleft/fdl.html">GNU FDL</a>, che
114 possa servire a chi si accosta per la prima volta alla
115 programmazione avanzata e di sistema in Linux, con la speranza
116 di poter un giorno raggiungere la qualità dei testi del
117 compianto R. W. Stevens.
122 <td width="130" valign="top">
124 <font color="#0000aa">
129 <td bgcolor="lightblue"> <b>GaPiL</b> è in continua evoluzione ma
130 alcune parti hanno raggiunto una "stabilità" sufficiente (nel
131 senso che le ho riviste, le ritengo abbastanza complete, e non
132 sono stato capace di accorgermi degli errori che ci ho lasciato)
133 altre sono da rivedere, altre sono solo parzialmente accennate. La
134 situazione attuale è la seguente:
135 <table width="600" cellspacing="5">
138 <td valign="top"> <b> Cap. 1 </b> </td>
139 <td valign="top"> Introduzione </td>
140 <td valign="top"> quasi completo e parzialmente revisionato
144 <td valign="top"> <b> Cap. 2-3 </b> </td>
145 <td valign="top"> Gestione dei processi </td>
146 <td valign="top"> quasi completi e parzialmente revisionati
150 <td valign="top"> <b> Cap. 4-7 </b> </td>
151 <td valign="top"> Gestione base dei file
152 <td valign="top"> quasi completi e parzialmente revisionati
156 <td valign="top"> <b> Cap. 8 </b> </td>
157 <td valign="top"> Sistema, parametri, errori</td>
158 <td valign="top"> quasi completo, da revisionare</td>
161 <td valign="top"> <b> Cap. 9 </b> </td>
162 <td valign="top"> Segnali</td>
163 <td valign="top"> quasi completo, da revisionare </td>
166 <td valign="top"> <b> Cap. 10 </b> </td>
167 <td valign="top"> Sessioni e terminali</td>
168 <td valign="top"> Sessioni complete, da revisionare,
169 terminali quasi completi. </td>
172 <td valign="top"> <b> Cap. 11 </b> </td>
173 <td valign="top"> Gestione avanzata dei file</td>
175 I/O non bloccante, asincrono, memory
176 mapped completo, da revisionare, file locking
177 completo, da revisionare.
181 <td valign="top"> <b> Cap. 12 </b> </td>
182 <td valign="top"> IPC</td>
183 <td valign="top"> Pipe, fifo e code, semafori,
184 memoria condivisa, tecniche alternative completi, da
185 revisionare, IPC POSIX quasi completo.
188 <td valign="top"> <b> Cap. 13-14 </b> </td>
189 <td valign="top"> Introduzione alla rete</td>
190 <td valign="top"> completi, da revisionare </td>
193 <td valign="top"> <b> Cap. 15-16 </b> </td>
194 <td valign="top"> Socket TCP elementari</td>
195 <td valign="top"> Caratteristiche base quasi complete,
196 esempio elementare da concludere </td>
201 <b> Versione corrente:</b> 467 pagine.
206 <td width="130" valign="top">
208 <font color="#0000aa">
213 <td bgcolor="lightblue">
216 <b>10 - marzo - 2003</b> <br> Completata la memoria condivisa
217 POSIX, introdotte le relative funzioni di interfaccia,
218 revisionati ed ampliati i capitoli sull'introduzione alla rete
221 <b>20 - febbraio - 2003</b> <br> Completata la sezione sulle
222 alternative al SysV IPC, introdotte le code di messaggi POSIX,
223 un esempio di uso della memoria condivisa, e parecchie revisioni
227 <b>10 - dicembre - 2002</b> <br> Completata la sezione sul file
228 locking, inserita una nuova sezione sulle alternative al SysV
229 IPC, estesa la parte sulla memoria condivisa, fatta una
230 revisione generale degli indici.
233 <b>26 - ottobre - 2002</b> <br> Revisione di terminali, code di
234 messaggi e advisory file locking. Aggiunta la struttura dei
235 semafori SysV IPC, del file locking in stile POSIX, ed un
236 contributo di Daniele Masini sull'allocazione della memoria.
239 <b>18 - ottobre - 2002</b> <br> Aggiunte: trattazione elementare
240 dei terminali, dei semafori di System V IPC, del file locking in
244 <b>24 - settembre - 2002</b> <br> Spostato tutto sul CVS
245 pubblico del FLUG che consente l'accesso anonimo. Aggiunta una
246 trattazione preliminare delle code di messaggi di System V IPC e
247 del controllo di sessione.
250 <b>20 - agosto - 2002</b> <br> Completata la stesura preliminare
251 del memory mapped I/O, inserito un esempio di server basato
252 sulle FIFO, completata la versione iniziale dell'introduzione
256 <b>7 - agosto - 2002</b> <br> Completata la prima stesura delle
257 sezioni relative all'I/O asincrono ed ai segnali real-time,
258 iniziata la stesura della sezione sul memory mapped I/O.
261 <b>22 - luglio - 2002</b> <br> Iniziata la stesura del capitolo
262 sull'I/O avanzato. Completata la sezione su pipe e FIFO (in
263 versione preliminare) inziate le sezioni su I/O asincrono ed una
264 sezione aggiuntiva sui segnali real-time nel relativo capitolo.
267 <b>3 - luglio - 2002</b> <br> Prima versione del sito, con
268 rilascio della prima versione di GaPiL in un HTML passabile.
270 Sono in versione preliminare, ma ricontrollati e di qualità
271 accettabile, i capitoli dal primo al nono: introduzione,
272 gestione dei processi, interfacce di base per i file e per il
273 controllo dei parametri del sistema, gestione dei segnali. Sono
274 da ricontrollare, ma di qualità decente, i capitoli dal
275 tredicesimo al sedicesimo: reti e socket elementari (il
276 sedicesimo capitolo è incompleto). Sono in corso di stesura, e
277 pertanto di qualità non classificabile (che può oscillare fra la
278 bozza non rivista ed il semplice elenco degli argomenti) gli