X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=pref.tex;h=4659e921032acbbe55cc55a15e8e3084534d65af;hp=db5ca4a89a025d497d9efe07d8fd9b6b30b478bf;hb=26f7a8bb19c6cb198c213757a97b6ac79e40db4b;hpb=e15bf09623a78b9a5ddc5cef72d54fe1f4c411a2 diff --git a/pref.tex b/pref.tex index db5ca4a..4659e92 100644 --- a/pref.tex +++ b/pref.tex @@ -1,86 +1,64 @@ +%% pref.tex +%% +%% Copyright (C) 2000-2019 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 "Un preambolo", +%% 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 \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. - -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 -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é 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 -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 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 +Questo progetto mira alla stesura di un testo il più completo e chiaro +possibile sulla programmazione di sistema su un kernel Linux. Essendo i +concetti in gran parte gli stessi, il testo dovrebbe restare valido anche per +la programmazione in ambito di sistemi Unix generici, 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. +delle librerie del C in uso con esso; in particolare si darà ampio spazio alla +versione realizzata dal progetto GNU, le cosiddette \textit{GNU C Library} o +\textsl{glibc}, che ormai sono usate nella stragrande maggioranza dei casi, +senza tralasciare, là dove note, le differenze con altre implementazioni come +le \textsl{libc5} o le \textsl{uclib}. -L'obiettivo finale di questo progetto è quello di riuscire a ottenere un testo +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 +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). -Infatti benché le man pages 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 \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. Tutti i programmi di esempio sono invece rilasciati sotto GNU -GPL. +Per questo motivo si è cercato di fare tesoro di quanto appreso dai testi di +R. W. Stevens (in particolare \cite{APUE} e \cite{UNP1}) per rendere la +trattazione dei vari argomenti in una sequenza logica il più esplicativa +possibile, corredando il tutto, quando possibile, con programmi di esempio. 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 +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 +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 è +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. +l'impareggiabile qualità tipografica ottenibile, che per la congruenza dello +strumento con il fine, tanto sul piano pratico, quanto su quello filosofico. -Il testo sarà, almeno inizialmente, in italiano. +Il testo sarà, almeno inizialmente, in italiano. Per il momento lo si è +suddiviso in due parti, la prima sulla programmazione di sistema, in cui si +trattano le varie funzionalità disponibili per i programmi che devono essere +eseguiti su una singola macchina, la seconda sulla programmazione di rete, in +cui si trattano le funzionalità per eseguire programmi che mettono in +comunicazione macchine diverse. @@ -88,3 +66,5 @@ Il testo sar %%% mode: latex %%% TeX-master: "gapil" %%% End: + +% LocalWords: kernel Library glibc Stevens Reference Manual GCC