From f209f0494e4dd9065f3bf0cda54612297b3e079c Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Wed, 15 Dec 2004 21:11:08 +0000 Subject: [PATCH] Modificato la sezione invariante mettendoci solo quello che e effettivamente importante --- gapil.tex | 4 +++- pref.tex | 65 ++++++++++++---------------------------------------- sockctrl.tex | 32 +++++++++++++++----------- 3 files changed, 37 insertions(+), 64 deletions(-) diff --git a/gapil.tex b/gapil.tex index 7d96b48..8cf4bf6 100644 --- a/gapil.tex +++ b/gapil.tex @@ -88,7 +88,8 @@ Copyright \copyright\ 2000-2004 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'', + Free Software Foundation; with the Invariant Sections being ``Un preambolo'' + in ``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''. @@ -102,6 +103,7 @@ \clearemptydoublepage \include{macro} +\include{preambolo} \include{pref} \clearemptydoublepage \mainmatter diff --git a/pref.tex b/pref.tex index bf247e3..09656e3 100644 --- a/pref.tex +++ b/pref.tex @@ -11,49 +11,14 @@ \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 si 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 le \textit{GNU C Library} +o \textsl{glibc}, che ormai sono usate nella stragrande maggioranza dei casi. L'obiettivo finale di questo progetto è quello di riuscire a ottenere un testo utilizzabile per apprendere i concetti fondamentali della programmazione di @@ -69,14 +34,9 @@ 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 +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, 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. +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 @@ -90,7 +50,12 @@ 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. +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. diff --git a/sockctrl.tex b/sockctrl.tex index b1199d6..4b07f89 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -1874,19 +1874,25 @@ pi dai protocolli usati dal socket sul quale si va ad agire, e saranno anche esse differenziate a seconda del protocollo cui fanno riferimento. -La scelta su quale opzione agire è fatta appunto con l'uso dell'argomento -\param{level}, per esso esiste il valore speciale \const{SOL\_SOCKET} che -indica il livello astratto di socket (cioè di opzioni disponibili in generale -per qualunque tipo di socket), per impostare altre opzioni relative a -funzionalità disponibili per socket che usano particolari protocolli si usa in -genere il valore numerico degli stessi in \file{/etc/protocols},\footnote{o - quanto si può ottenere da una chiamata a \func{getprotoent}, questo però - presenta l'ambiguità dovuta al fatto che su Linux \const{SOL\_SOCKET} è - definito uguale ad 1, che corrisponde anche al valore di ICMP, che pertanto - non compare nelle varie costanti \texttt{SOL\_*}.} più comunemente però si -utilizzano le apposite costanti \texttt{SOL\_*} riportate in -tab.~\ref{tab:sock_option_levels} dove si sono riassunti i possibili valori -per l'argomento \param{level}. + + + +Il valore di \param{level} seleziona allora il livello sul quale si va ad +intervenire e permette di usare le opzioni definite su quel livello. Esiste +poi il valore \const{SOL\_SOCKET} che indica un livello generico e cioè le +opzioni disponibili per qualunque tipo di socket. Per impostare le opzioni +relative alle funzionalità disponibili per socket che usano particolari +protocolli può utilizzare il valore numerico che identifica questi ultimi in +\file{/etc/protocols}, ma più comunemente si suano le apposite costanti +\texttt{SOL\_*} riportate in tab.~\ref{tab:sock_option_levels} dove si sono +riassunti i possibili valori per l'argomento \param{level}.\footnote{la + notazione in questo caso è, purtroppo, abbastanza confusa: infatti in Linux + il valore si può impostare sia usando le costanti \texttt{SOL\_*}, che delle + analoghe \texttt{IPPROTO\_*} (citate anche da Stevens in \cite{UNP1}) che di + nuovo sono equivalenti ai numeri di protocollo di \file{/etc/protocols}; con + una eccesione specifica, che è quella del protocollo ICMP, per la quale non + esista una costante, dato poi che il suo valore, 1, è anche quello che viene + assegnato a \const{SOL\_SOCKET}.} \begin{table}[!htb] \centering -- 2.30.2