X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=pref.tex;h=ce22a11fd7b761cc0aea6b35fdebf2d08973e3e7;hp=2b7910b50b274b0123845e2963ea37e7953956d3;hb=aee4a2e76ad7b0ed41eb06c4c70b8db5df9a4451;hpb=66765a9be9a61085dd00abd92d99a24b23dc844b diff --git a/pref.tex b/pref.tex index 2b7910b..ce22a11 100644 --- a/pref.tex +++ b/pref.tex @@ -1,16 +1,28 @@ +%% pref.tex +%% +%% Copyright (C) 2000-2002 Simone Piccardi. Permission is granted to +%% copy, distribute and/or modify this document under the terms of the GNU Free +%% Documentation License, Version 1.1 or any later version published by the +%% Free Software Foundation; with the Invariant Sections being "Prefazione", +%% with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the +%% license is included in the section entitled "GNU Free Documentation +%% License". +%% \chapter{Prefazione} +\label{cha:preface} Nelle motivazioni in cui si introduce la GNU Free Documentation License (FDL) -(reperibili su http://www.gnu.org/philosophy/free-doc.html) si dà una grande -rilevanza all'importanza di disporre di buoni manuali, in quanto la fruibilità -e la possilità di usare appieno il software libero, vengono notevolemte -ridotte senza la presenza di un valido manuale altrettanto liberamente +(reperibili su \href{http://www.gnu.org/philosophy/free-doc.html} +{http://www.gnu.org/philosophy/free-doc.html}) si dà una grande rilevanza +all'importanza di disporre di buoni manuali, in quanto la fruibilità e la +possibilità di usare appieno il software libero vengono notevolmente ridotte +senza la presenza di un valido manuale che sia altrettanto liberamente disponibile. -E come per il software libero è anche in questo caso è di fondamentale -importanza la libertà di accedere ai sorgenti (e non solo al risultato -finale, sia questo una stampa o un file formattato) e la libertà di -modificarli per apportarvi migliorie, aggiornamenti, etc. +E, come per il software libero, anche in questo caso è di fondamentale +importanza la libertà di accedere ai sorgenti (e non solo al risultato finale, +sia questo una stampa o un file formattato) e la libertà di modificarli per +apportarvi migliorie, aggiornamenti, etc. Per questo la Free Software Foundation ha approntato una licenza apposita per la documentazione, che tiene conto delle differenze che restano fra un testo e @@ -18,8 +30,9 @@ un programma. Esiste però un altro campo, diverso dalla documentazione e dai manuali, in cui avere a disposizione testi liberi, aperti e modificabili è essenziale ed -estremamente utile, quello della didattica e dell'educazione. E benché questo -sia citato dalla FDL non è altrettanto comune trovarlo messo in pratica. +estremamente utile: quello della didattica e dell'educazione. E benché anche +questo campo sia citato dalla FDL non è altrettanto comune trovarlo messo in +pratica. In particolare sarebbe di grande interesse poter disporre di testi didattici in grado di crescere, essere adattati alle diverse esigenze, modificati e @@ -27,41 +40,62 @@ ampliati, o anche ridotti per usi specifici, nello stesso modo in cui si fa per il software libero. Questo progetto mira alla stesura di un libro il più completo e chiaro -possibile sulla programmazione in GNU/Linux (che da qui in avanti spesso -chiameremo semplicemante Linux per brevità). Ovviamente essendo i concetti in -gran parte gli stessi, esso dovrebbe restare valido anche per la -programmazione in ambito Unix generico, pur restando l'intenzione di -approfondire in maniera specifica le caratteristiche peculiari di GNU/Linux. - -L'idea è quella di riuscire a ottenere alla fine un testo utilizzabile per -apprendere la programmazione sotto GNU/Linux della stessa qualità (è un -progetto molto ambizioso ...) dei testi del compianto R. W. Stevens. - -Infatti benché le man pages e il manuale delle librerie del C della GNU siano -una fonte enorme di informazioni (da cui si è costantemente attinto nella -stesura di tutto il testo) la loro struttura li rende totalmente inadatti ad -una trattazione che vada oltre la descrizione delle caratteristiche -particolari dell'argomento in esame (in particolare il manuale delle glibc non -brilla certo per chiarezza espositiva). +possibile sulla programmazione in un sistema basato su un kernel Linux. +Essendo i concetti in gran parte gli stessi, il testo dovrebbe restare valido +anche per la programmazione in ambito Unix generico, ma resta una attenzione +specifica alle caratteristiche peculiari del kernel Linux e delle versioni +delle librerie del C in uso con esso, ed in particolare per le glibc del +progetto GNU (che ormai sono usate nella stragrande maggioranza dei casi). + +Nonostante l'uso nel titolo del solo ``Linux'', (che si è fatto sia per +brevità sia perché il libro ha a che fare principalmente con le interfacce del +kernel e dei principali standard supportati delle librerie del C), voglio +sottolineare che trovo assolutamente scorretto chiamare in questo modo un +sistema completo. Il kernel infatti, senza tutte le librerie e le applicazioni +di base fornite dal progretto GNU, sarebbe sostanzialmente inutile: per questo +il nome del sistema nella sua interezza non può che essere GNU/Linux. + +L'obiettivo finale di questo progetto è quello di riuscire a ottenere un testo +utilizzabile per apprendere i concetti fondamentali della programmazione di +sistema della stessa qualità dei libri del compianto R. W. Stevens (è un +progetto molto ambizioso ...). + + +Infatti benché le pagine di manuale del sistema (quelle che si accedono con il +comando \cmd{man}) e il manuale delle librerie del C GNU siano una fonte +inesauribile di informazioni (da cui si è costantemente attinto nella stesura +di tutto il testo) la loro struttura li rende totalmente inadatti ad una +trattazione che vada oltre la descrizione delle caratteristiche particolari +dello specifico argomento in esame (ed in particolare lo \textit{GNU C Library + Reference Manual} non brilla per chiarezza espositiva). Per questo motivo si è cercato di fare tesoro di quanto appreso dai testi di -R. Stevens (in particolare Advanced Programming in the Unix Environment e Unix -Network Programming) per rendere in una sequenza logica il più esplicativa -possibile la trattazione dei vari argomenti. +R. Stevens (in particolare \cite{APUE} e \cite{UNP1}) per rendere la +trattazione dei vari argomenti in una sequenza logica il più esplicativa +possibile, corredata, quando possibile, da programmi di esempio. Il progetto prevede il rilascio del testo sotto licenza FDL, ed una modalità di realizzazione aperta che permetta di accogliere i contributi di chiunque -sia interessato. - -Dato che lo scopo del progetto è la produzione di un libro si è scelto di -usare latex come "ambiente di sviluppo" del medesimo, sia per l'impareggiabile -qualità tipografica ottenibile, che per la congruenza dello strumento sia sul -piano pratico che su quello filosofico. - -Il testo sarà, almeno inizialmente, in italiano. +sia interessato. Tutti i programmi di esempio sono invece rilasciati sotto GNU +GPL. +Dato che sia il kernel che tutte le librerie fondamentali di GNU/Linux sono +scritte in C, questo sarà il linguaggio di riferimento del testo. In +particolare il compilatore usato per provare tutti i programmi e gli esempi +descritti nel testo è lo GNU GCC. Il testo presuppone una conoscenza media del +linguaggio, e di quanto necessario per scrivere, compilare ed eseguire un +programma. +Infine, dato che lo scopo del progetto è la produzione di un libro, si è +scelto di usare \LaTeX\ come "ambiente di sviluppo" del medesimo, sia per +l'impareggiabile qualità tipografica ottenibile, che per la congruenza dello +strumento, tanto sul piano pratico, quanto su quello filosofico. +Il testo sarà, almeno inizialmente, in italiano. +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "gapil" +%%% End: