Cambiato il riferimento nelle note di copyright alla nuova sezione invariante
[gapil.git] / pref.tex
1 %% pref.tex
2 %%
3 %% Copyright (C) 2000-2003 Simone Piccardi.  Permission is granted to
4 %% copy, distribute and/or modify this document under the terms of the GNU Free
5 %% Documentation License, Version 1.1 or any later version published by the
6 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
7 %% with no Front-Cover Texts, and with no Back-Cover Texts.  A copy of the
8 %% license is included in the section entitled "GNU Free Documentation
9 %% License".
10 %%
11 \chapter{Prefazione}
12 \label{cha:preface}
13
14 Questo progetto mira alla stesura di un testo il più completo e chiaro
15 possibile sulla programmazione di sistema su un kernel Linux.  Essendo i
16 concetti in gran parte gli stessi, il testo dovrebbe restare valido anche per
17 la programmazione in ambito si sistemi Unix generici, ma resta una attenzione
18 specifica alle caratteristiche peculiari del kernel Linux e delle versioni
19 delle librerie del C in uso con esso; in particolare si darà ampio spazio alla
20 versione realizzata dal progetto GNU, le cosiddette le \textit{GNU C Library}
21 o \textsl{glibc}, che ormai sono usate nella stragrande maggioranza dei casi.
22
23 L'obiettivo finale di questo progetto è quello di riuscire a ottenere un testo
24 utilizzabile per apprendere i concetti fondamentali della programmazione di
25 sistema della stessa qualità dei libri del compianto R. W. Stevens (è un
26 progetto molto ambizioso ...).
27
28 Infatti benché le pagine di manuale del sistema (quelle che si accedono con il
29 comando \cmd{man}) e il manuale delle librerie del C GNU siano una fonte
30 inesauribile di informazioni (da cui si è costantemente attinto nella stesura
31 di tutto il testo) la loro struttura li rende totalmente inadatti ad una
32 trattazione che vada oltre la descrizione delle caratteristiche particolari
33 dello specifico argomento in esame (ed in particolare lo \textit{GNU C Library
34   Reference Manual} non brilla per chiarezza espositiva).
35
36 Per questo motivo si è cercato di fare tesoro di quanto appreso dai testi di
37 R. W. Stevens (in particolare \cite{APUE} e \cite{UNP1}) per rendere la
38 trattazione dei vari argomenti in una sequenza logica il più esplicativa
39 possibile, corredando il tutto, quando possibile, con programmi di esempio.
40
41 Dato che sia il kernel che tutte le librerie fondamentali di GNU/Linux sono
42 scritte in C, questo sarà il linguaggio di riferimento del testo. In
43 particolare il compilatore usato per provare tutti i programmi e gli esempi
44 descritti nel testo è lo GNU GCC. Il testo presuppone una conoscenza media del
45 linguaggio, e di quanto necessario per scrivere, compilare ed eseguire un
46 programma.
47
48 Infine, dato che lo scopo del progetto è la produzione di un libro, si è
49 scelto di usare \LaTeX\ come "ambiente di sviluppo" del medesimo, sia per
50 l'impareggiabile qualità tipografica ottenibile, che per la congruenza dello
51 strumento con il fine, tanto sul piano pratico, quanto su quello filosofico.
52
53 Il testo sarà, almeno inizialmente, in italiano. Per il momento lo si è
54 suddiviso in due parti, la prima sulla programmazione di sistema, in cui si
55 trattano le varie funzionalità disponibili per i programmi che devono essere
56 eseguiti su una singola macchina, la seconda sulla programmazione di rete, in
57 cui si trattano le funzionalità per eseguire programmi che mettono in
58 comunicazione macchine diverse.
59
60
61
62 %%% Local Variables: 
63 %%% mode: latex
64 %%% TeX-master: "gapil"
65 %%% End: