X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=pref.tex;h=91c6536e0c2ce81148eccaae32be82ca05745584;hp=9d31a54733aae2b078e19b40ba12d31a7494f344;hb=193d612d40c5f81f5559ea6e11e70f6b6e51fb39;hpb=c4e84d074b7b59b920ab493e32d61d5f3ae2ff15 diff --git a/pref.tex b/pref.tex index 9d31a54..91c6536 100644 --- a/pref.tex +++ b/pref.tex @@ -12,52 +12,52 @@ \chapter{Prefazione} \label{cha:preface} -Questo progetto mira alla stesura di un testo il più completo e chiaro +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; in particolare si darà ampio spazio alla +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 +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 +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 +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 +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 +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 +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. Per il momento lo si è +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 +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 +cui si trattano le funzionalità per eseguire programmi che mettono in comunicazione macchine diverse.