Correzioni ortografiche generali, con creazione dei vocabolari locali
authorSimone Piccardi <piccardi@gnulinux.it>
Sun, 16 Apr 2006 19:33:05 +0000 (19:33 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Sun, 16 Apr 2006 19:33:05 +0000 (19:33 +0000)
19 files changed:
fileadv.tex
fileintro.tex
filestd.tex
fileunix.tex
ipc.tex
netlayer.tex
network.tex
othersock.tex
preambolo.tex
pref.tex
process.tex
session.tex
signal.tex
sockadv.tex
sockctrl.tex
socket.tex
system.tex
tcpsock.tex
trasplayer.tex

index b49bcf84ad8ccd7fe3c295251d2ab32f95614ae2..904e81ea18cdbbc17f00762232e937babf2d05fd 100644 (file)
@@ -1,6 +1,6 @@
 %% fileadv.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -270,7 +270,7 @@ immediatamente prima di eseguire l'attesa, e ripristinata al ritorno della
 funzione.
 
 L'uso di \param{sigmask} è stato introdotto allo scopo di prevenire possibili
-\textit{race condition}\itindex{race~condition} quando ci si deve porre in
+\textit{race condition} \itindex{race~condition} quando ci si deve porre in
 attesa sia di un segnale che di dati. La tecnica classica è quella di
 utilizzare il gestore per impostare una variabile globale e controllare questa
 nel corpo principale del programma; abbiamo visto in
@@ -285,10 +285,10 @@ sotto controllo anche dei file descriptor con \func{select}, in questo caso si
 può fare conto sul fatto che all'arrivo di un segnale essa verrebbe interrotta
 e si potrebbero eseguire di conseguenza le operazioni relative al segnale e
 alla gestione dati con un ciclo del tipo:
-\includecodesnip{listati/select_race.c} qui però emerge una \textit{race
-  condition},\itindex{race~condition} perché se il segnale arriva prima della
-chiamata a \func{select}, questa non verrà interrotta, e la ricezione del
-segnale non sarà rilevata.
+\includecodesnip{listati/select_race.c} 
+qui però emerge una \itindex{race~condition} \textit{race condition}, perché
+se il segnale arriva prima della chiamata a \func{select}, questa non verrà
+interrotta, e la ricezione del segnale non sarà rilevata.
 
 Per questo è stata introdotta \func{pselect} che attraverso l'argomento
 \param{sigmask} permette di riabilitare la ricezione il segnale
@@ -309,6 +309,8 @@ in questo caso utilizzando \var{oldmask} durante l'esecuzione di
 \func{pselect} la ricezione del segnale sarà abilitata, ed in caso di
 interruzione si potranno eseguire le relative operazioni.
 
+% TODO pselect è stata introdotta nel kernel 2.6.16 (o 15 o 17?) insieme a
+% ppoll mettere e verificare
 
 
 \subsection{La funzione \func{poll}}
@@ -435,6 +437,8 @@ indica un errore nella chiamata, il cui codice viene riportato al solito
 tramite \var{errno}.
 
 
+% TODO accennare a ppoll
+
 %\subsection{L'interfaccia di \textit{epoll}}
 %\label{sec:file_epoll}
 % placeholder ...
@@ -1402,7 +1406,7 @@ tab.~\ref{tab:file_mmap_flag}.
                              un \const{SIGSEGV}. \\
     \const{MAP\_LOCKED}    & Se impostato impedisce lo swapping delle pagine
                              mappate.\\
-    \const{MAP\_GROWSDOWN} & Usato per gli stack. Indica 
+    \const{MAP\_GROWSDOWN} & Usato per gli \itindex{stack} stack. Indica 
                              che la mappatura deve essere effettuata con gli
                              indirizzi crescenti verso il basso.\\
     \const{MAP\_ANONYMOUS} & La mappatura non è associata a nessun file. Gli
@@ -2280,13 +2284,13 @@ questo caso la titolarit
 voce nella file table, ma con il valore del \acr{pid} del processo.
 
 Quando si richiede un lock il kernel effettua una scansione di tutti i lock
-presenti sul file\footnote{scandisce cioè la
-  \itindex{linked~list}\textit{linked list} delle strutture
-  \struct{file\_lock}, scartando automaticamente quelle per cui
-  \var{fl\_flags} non è \const{FL\_POSIX}, così che le due interfacce restano
-  ben separate.}  per verificare se la regione richiesta non si sovrappone ad
-una già bloccata, in caso affermativo decide in base al tipo di lock, in caso
-negativo il nuovo lock viene comunque acquisito ed aggiunto alla lista.
+presenti sul file\footnote{scandisce cioè la \itindex{linked~list}
+  \textit{linked list} delle strutture \struct{file\_lock}, scartando
+  automaticamente quelle per cui \var{fl\_flags} non è \const{FL\_POSIX}, così
+  che le due interfacce restano ben separate.}  per verificare se la regione
+richiesta non si sovrappone ad una già bloccata, in caso affermativo decide in
+base al tipo di lock, in caso negativo il nuovo lock viene comunque acquisito
+ed aggiunto alla lista.
 
 Nel caso di rimozione invece questa viene effettuata controllando che il
 \acr{pid} del processo richiedente corrisponda a quello contenuto nel lock.
@@ -2619,16 +2623,16 @@ significato, diventa l'indicazione della presenza o meno del \textit{mandatory
   quando esso viene utilizzato per attivare il \textit{mandatory locking}.}
 
 L'uso del \textit{mandatory locking} presenta vari aspetti delicati, dato che
-neanche root può passare sopra ad un lock; pertanto un processo che blocchi un
-file cruciale può renderlo completamente inaccessibile, rendendo completamente
-inutilizzabile il sistema\footnote{il problema si potrebbe risolvere
-  rimuovendo il bit \itindex{sgid~bit} \acr{sgid}, ma non è detto che sia così
-  facile fare questa operazione con un sistema bloccato.} inoltre con il
-\textit{mandatory locking} si può bloccare completamente un server NFS
-richiedendo una lettura su un file su cui è attivo un lock. Per questo motivo
-l'abilitazione del mandatory locking è di norma disabilitata, e deve essere
-attivata filesystem per filesystem in fase di montaggio (specificando
-l'apposita opzione di \func{mount} riportata in
+neanche l'amministratore può passare sopra ad un lock; pertanto un processo
+che blocchi un file cruciale può renderlo completamente inaccessibile,
+rendendo completamente inutilizzabile il sistema\footnote{il problema si
+  potrebbe risolvere rimuovendo il bit \itindex{sgid~bit} \acr{sgid}, ma non è
+  detto che sia così facile fare questa operazione con un sistema bloccato.}
+inoltre con il \textit{mandatory locking} si può bloccare completamente un
+server NFS richiedendo una lettura su un file su cui è attivo un lock. Per
+questo motivo l'abilitazione del mandatory locking è di norma disabilitata, e
+deve essere attivata filesystem per filesystem in fase di montaggio
+(specificando l'apposita opzione di \func{mount} riportata in
 tab.~\ref{tab:sys_mount_flags}, o con l'opzione \code{-o mand} per il comando
 omonimo).
 
@@ -2690,3 +2694,39 @@ possibilit
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  dell'I locking multiplexing cap dell' sez system call socket BSD
+% LocalWords:  descriptor client deadlock NONBLOCK EAGAIN polling select kernel
+% LocalWords:  pselect like sys unistd int fd readfds writefds exceptfds struct
+% LocalWords:  timeval errno EBADF EINTR EINVAL ENOMEM sleep tab signal void of
+% LocalWords:  CLR ISSET SETSIZE POSIX read NULL nell'header l'header glibc fig
+% LocalWords:  libc header psignal sigmask SOURCE XOPEN timespec sigset race DN
+% LocalWords:  condition sigprocmask tut self trick oldmask poll XPG pollfd l'I
+% LocalWords:  ufds unsigned nfds RLIMIT NOFILE EFAULT ndfs events revents hung
+% LocalWords:  POLLIN POLLRDNORM POLLRDBAND POLLPRI POLLOUT POLLWRNORM POLLERR
+% LocalWords:  POLLWRBAND POLLHUP POLLNVAL POLLMSG SysV stream ASYNC SETOWN FAQ
+% LocalWords:  GETOWN fcntl SETFL SIGIO SETSIG Stevens driven siginfo sigaction
+% LocalWords:  all'I nell'I Frequently Unanswered Question SIGHUP lease holder
+% LocalWords:  breaker truncate write SETLEASE arg RDLCK WRLCK UNLCK GETLEASE
+% LocalWords:  uid capabilities capability EWOULDBLOCK notify dall'OR ACCESS st
+% LocalWords:  pread readv MODIFY pwrite writev ftruncate creat mknod mkdir buf
+% LocalWords:  symlink rename DELETE unlink rmdir ATTRIB chown chmod utime lio
+% LocalWords:  MULTISHOT thread linkando librt layer aiocb asyncronous control
+% LocalWords:  block ASYNCHRONOUS lseek fildes nbytes reqprio PRIORITIZED sigev
+% LocalWords:  PRIORITY SCHEDULING opcode listio sigevent signo value function
+% LocalWords:  aiocbp ENOSYS append error const EINPROGRESS fsync return ssize
+% LocalWords:  DSYNC fdatasync SYNC cancel ECANCELED ALLDONE CANCELED suspend
+% LocalWords:  NOTCANCELED list nent timout sig NOP WAIT NOWAIT size count iov
+% LocalWords:  iovec vector EOPNOTSUPP EISDIR len memory mapping mapped swap NB
+% LocalWords:  mmap length prot flags off MAP FAILED ANONYMOUS EACCES SHARED SH
+% LocalWords:  only ETXTBSY DENYWRITE ENODEV filesystem EPERM EXEC noexec table
+% LocalWords:  ENFILE lenght segment violation SIGSEGV FIXED msync munmap copy
+% LocalWords:  DoS Denial Service EXECUTABLE NORESERVE LOCKED swapping stack fs
+% LocalWords:  GROWSDOWN ANON GiB POPULATE prefaulting SIGBUS fifo VME fork old
+% LocalWords:  exec atime ctime mtime mprotect addr EACCESS mremap address new
+% LocalWords:  long MAYMOVE realloc VMA virtual Ingo Molnar remap pages pgoff
+% LocalWords:  dall' fault cache linker prelink advisory discrectionary lock fl
+% LocalWords:  flock shared exclusive operation dup inode linked NFS cmd ENOLCK
+% LocalWords:  EDEADLK whence SEEK CUR type pid GETLK SETLK SETLKW all'inode HP
+% LocalWords:  switch bsd lockf mandatory SVr sgid group root mount mand TRUNC
+% LocalWords:  SVID UX Documentation
index 56b8ef7f0f6333d01c757aff8023436ca5672817..129df40c8c1492295fbdcd40aa2111b7f71b70e4 100644 (file)
@@ -264,14 +264,15 @@ utilizzando il tipo \ctyp{FILE *}.  L'interfaccia 
 \file{stdio.h}.
 
 Entrambe le interfacce possono essere usate per l'accesso ai file come agli
-altri oggetti del VFS (fifo, socket\index{socket}, device, sui quali torneremo
-in dettaglio a tempo opportuno), ma per poter accedere alle operazioni di
-controllo (descritte in sez.~\ref{sec:file_fcntl} e sez.~\ref{sec:file_ioctl})
-su un qualunque tipo di oggetto del VFS occorre usare l'interfaccia standard
-di Unix con i \textit{file descriptor}. Allo stesso modo devono essere usati i
-\textit{file descriptor}\index{file!descriptor} se si vuole ricorrere a
-modalità speciali di I/O come il \textit{file locking}\index{file!locking} o
-l'I/O non-bloccante (vedi cap.~\ref{cha:file_advanced}).
+altri oggetti del VFS (fifo, socket\index{socket}, dispositivi, sui quali
+torneremo in dettaglio a tempo opportuno), ma per poter accedere alle
+operazioni di controllo (descritte in sez.~\ref{sec:file_fcntl} e
+sez.~\ref{sec:file_ioctl}) su un qualunque tipo di oggetto del VFS occorre
+usare l'interfaccia standard di Unix con i \textit{file descriptor}. Allo
+stesso modo devono essere usati i \textit{file descriptor}
+\index{file!descriptor} se si vuole ricorrere a modalità speciali di I/O come
+il \textit{file locking}\index{file!locking} o l'I/O non-bloccante (vedi
+cap.~\ref{cha:file_advanced}).
 
 Gli \textit{stream} forniscono un'interfaccia di alto livello costruita sopra
 quella dei \textit{file descriptor}, che permette di poter scegliere tra
index f01266a7110cbb9e4840b950e571bbdfdb51881b..c6cf4577ec4f2240080acb0129219bc7fdc56c9c 100644 (file)
@@ -1,6 +1,6 @@
 %% filestd.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -753,10 +753,10 @@ processo adiacente al buffer.\footnote{questa tecnica 
 Questa è una delle vulnerabilità più sfruttate per guadagnare accessi non
 autorizzati al sistema (i cosiddetti \textit{exploit}), basta infatti inviare
 una stringa sufficientemente lunga ed opportunamente forgiata per
-sovrascrivere gli indirizzi di ritorno nello \itindex{stack} stack (supposto
-che la \func{gets} sia stata chiamata da una subroutine), in modo da far
-ripartire l'esecuzione nel codice inviato nella stringa stessa (in genere uno
-\textit{shell code} cioè una sezione di programma che lancia una shell).
+sovrascrivere gli indirizzi di ritorno nello \itindex{stack} \textit{stack}
+(supposto che la \func{gets} sia stata chiamata da una subroutine), in modo da
+far ripartire l'esecuzione nel codice inviato nella stringa stessa (in genere
+uno \textit{shell code} cioè una sezione di programma che lancia una shell).
 
 La funzione \func{fgets} non ha i precedenti problemi di \func{gets} in quanto
 prende in input la dimensione del buffer \param{size}, che non verrà mai
@@ -1417,7 +1417,7 @@ Dato che la procedura di allocazione manuale 
 (come delle scritture accidentali sul buffer) e non assicura la scelta delle
 dimensioni ottimali, è sempre meglio lasciare allocare il buffer alle funzioni
 di libreria, che sono in grado di farlo in maniera ottimale e trasparente
-all'utente (in quanto la disallocazione avviene automaticamente). Inoltre
+all'utente (in quanto la deallocazione avviene automaticamente). Inoltre
 siccome alcune implementazioni usano parte del buffer per mantenere delle
 informazioni di controllo, non è detto che le dimensioni dello stesso
 coincidano con quelle su cui viene effettuato l'I/O.
@@ -1614,3 +1614,27 @@ che pu
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  stream cap system call kernel Ritchie glibc descriptor Stevens
+% LocalWords:  buf read write filesystem st blksize stat sez l'header stdio BSD
+% LocalWords:  nell'header stdin shell stdout stderr error freopen flush line
+% LocalWords:  unbuffered buffered newline fully SVr fopen fdopen POSIX const
+% LocalWords:  char path int fildes NULL errno malloc fcntl fclose fflush tab
+% LocalWords:  dup fifo socket append EXCL ccs STRING IRUSR IWUSR IRGRP IWGRP
+% LocalWords:  IROTH IWOTH umask fseek fsetpos rewind SEEK CUR EOF EBADF close
+% LocalWords:  sync fcloseall SOURCE void stdlib of feof ferror clearerr l'I ws
+% LocalWords:  unlocked fread fwrite size ptr nmemb nelem gcc padding point str
+% LocalWords:  lock thread fgetc getc getchar dell'overhead altresì unsigned ap
+% LocalWords:  getwc fgetwc getwchar wint wchar WEOF putc fputc putchar dell'I
+% LocalWords:  SVID getw putw parsing peeking ahead ungetc gets fgets string
+% LocalWords:  overflow Aleph stack fputs puts fgetws fputws getline ssize leak
+% LocalWords:  realloc value result argument memory getdelim delim printf short
+% LocalWords:  fprintf sprintf format snprintf variadic long double intmax list
+% LocalWords:  uintmax ptrdiff vprintf vfprintf vsprintf vsnprintf asprintf lex
+% LocalWords:  vasprintf strptr dprintf vdprintf print scanf fscanf sscanf flex
+% LocalWords:  vscanf vfscanf vsscanf bison parser yacc like off VMS whence pos
+% LocalWords:  lseek ftell fgetpos fpos fseeko ftello fileno Solaris freadable
+% LocalWords:  fwritable ext freading fwriting buffering setvbuf BUFSIZ setbuf
+% LocalWords:  IONBF IOLBF IOFBF setbuffer setlinebuf flbf fbufsize flushlbf
+% LocalWords:  fsync fpurge flockfile ftrylockfile funlockfile SAFE FUNCTIONS
+% LocalWords:  locking fsetlocking type BYCALLER QUERY
index 8af781cc276be9409f4e9ba2ddcce4ea23026378..1bae4dd1a392cb4148cb7e9b20698647c13b8d53 100644 (file)
@@ -296,7 +296,7 @@ descriptor con il valore pi
                          \itindex{Denial~of~Service~(DoS)}
                          \textit{DoS}\protect\footnotemark\ quando 
                          \func{opendir} viene chiamata su una fifo o su un
-                         device di unità a nastri, non deve essere utilizzato
+                         dispositivo a nastri; non deve essere utilizzato
                          al di fuori dell'implementazione di \func{opendir}. \\
     \const{O\_LARGEFILE}&nel caso di sistemi a 32 bit che supportano file di
                          grandi dimensioni consente di aprire file le cui
@@ -455,9 +455,9 @@ descriptor ritorna disponibile; il suo prototipo 
   ed inoltre \errval{EIO}.}
 \end{prototype}
 
-La chiusura di un file rilascia ogni blocco (il \textit{file
-  locking}\index{file!locking} è trattato in sez.~\ref{sec:file_locking}) che
-il processo poteva avere acquisito su di esso; se \param{fd} è l'ultimo
+La chiusura di un file rilascia ogni blocco (il \textit{file locking}
+\index{file!locking} è trattato in sez.~\ref{sec:file_locking}) che il
+processo poteva avere acquisito su di esso; se \param{fd} è l'ultimo
 riferimento (di eventuali copie) ad un file aperto, tutte le risorse nella
 file table vengono rilasciate. Infine se il file descriptor era l'ultimo
 riferimento ad un file su disco quest'ultimo viene cancellato.
@@ -651,7 +651,7 @@ posizione \param{offset}, nel buffer \param{buf}.
 
 La funzione prende esattamente gli stessi argomenti di \func{read} con lo
 stesso significato, a cui si aggiunge l'argomento \func{offset} che indica una
-posizione sul file. Indetico è il comportamento ed il valore di ritorno. La
+posizione sul file. Identico è il comportamento ed il valore di ritorno. La
 funzione serve quando si vogliono leggere dati dal file senza modificare la
 posizione corrente.
 
@@ -839,7 +839,7 @@ problema, quando si andr
 maniera imprevedibile.  Il sistema però fornisce in alcuni casi la possibilità
 di eseguire alcune operazioni di scrittura in maniera coordinata anche senza
 utilizzare meccanismi di sincronizzazione più complessi (come il \textit{file
-  locking}\index{file!locking}, che esamineremo in
+  locking} \index{file!locking}, che esamineremo in
 sez.~\ref{sec:file_locking}).
 
 Un caso tipico di necessità di accesso condiviso in scrittura è quello in cui
@@ -1051,8 +1051,8 @@ descriptor, che non riguardano la normale lettura e scrittura di dati, ma la
 gestione sia delle loro proprietà, che di tutta una serie di ulteriori
 funzionalità che il kernel può mettere a disposizione.\footnote{ad esempio si
   gestiscono con questa funzione varie modalità di I/O asincrono (vedi
-  sez.~\ref{sec:file_asyncronous_operation}) e il file
-  locking\index{file!locking} (vedi sez.~\ref{sec:file_locking}).}
+  sez.~\ref{sec:file_asyncronous_operation}) e il file locking
+  \index{file!locking} (vedi sez.~\ref{sec:file_locking}).}
 
 Per queste operazioni di manipolazione e di controllo delle varie proprietà e
 caratteristiche di un file descriptor, viene usata la funzione \funcd{fcntl},
@@ -1217,7 +1217,7 @@ accesso dal \textit{file status flag}.
 \subsection{La funzione \func{ioctl}}
 \label{sec:file_ioctl}
 
-Benché il concetto di \textit{everything is a file} si sia dimostratato molto
+Benché il concetto di \textit{everything is a file} si sia dimostrato molto
 valido anche per l'interazione con i dispositivi più vari, fornendo una
 interfaccia che permette di interagire con essi tramite le stesse funzioni
 usate per i normali file di dati, esisteranno sempre caratteristiche
@@ -1241,9 +1241,9 @@ file descriptor.  Il prototipo di questa funzione 
     caso di errore viene sempre restituito $-1$ ed \var{errno} assumerà uno dei
     valori:
   \begin{errlist}
-  \item[\errcode{ENOTTY}] il file \param{fd} non è associato con un device, o
-    la richiesta non è applicabile all'oggetto a cui fa riferimento
-    \param{fd}.
+  \item[\errcode{ENOTTY}] il file \param{fd} non è associato con un
+    dispositivo, o la richiesta non è applicabile all'oggetto a cui fa
+    riferimento \param{fd}.
   \item[\errcode{EINVAL}] gli argomenti \param{request} o \param{argp} non sono
     validi.
   \end{errlist}
@@ -1309,3 +1309,25 @@ relativi ad operazioni comunque eseguibili anche attraverso \func{fcntl}.
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  descriptor system call cap like kernel sez l'inode inode VFS tab
+% LocalWords:  process table struct files flags pos all'inode dentry fig shell
+% LocalWords:  error POSIX STDIN FILENO STDOUT STDERR unistd read write lseek
+% LocalWords:  close pathname sys fcntl int const char errno EEXIST CREAT EXCL
+% LocalWords:  EISDIR ENOTDIR ENXIO NOBLOCK WRONLY fifo ENODEV ETXTBSY ELOOP of
+% LocalWords:  NOFOLLOW EACCES ENAMETOOLONG ENOENT EROFS EFAULT ENOSPC ENOMEM
+% LocalWords:  EMFILE ENFILE NFS lock race condition Denial Service DoS RDONLY
+% LocalWords:  glibc RDWR NONBLOCK NOCTTY SHLOCK shared BSD EXLOCK TRUNC device
+% LocalWords:  opendir LARGEFILE APPEND append NDELAY ASYNC l'I SIGIO SYNC SVr
+% LocalWords:  DSYNC RSYNC filesystem DIRECT caching SGI IRIX dell'I FreeBSD fd
+% LocalWords:  fork exec umask SOURCE creat filedes EBADF EINTR EIO locking off
+% LocalWords:  behind sync flush shutdown whence ESPIPE socket EINVAL INCR XTND
+% LocalWords:  SEEK CUR EPIPE ssize void buf size count EAGAIN EWOULDBLOCK log
+% LocalWords:  Specification pwrite pread EFBIG SIGPIPE nell'inode dall'inode
+% LocalWords:  CLOEXEC stat fsync cache update l'update bdflush Documentation
+% LocalWords:  fdatasync fstat ext dup oldfd newfd DUPFD cmd long arg flock pid
+% LocalWords:  SETFD GETFD GETFL SETFL GETLK SETLK SETLKW GETOWN group SIGURG
+% LocalWords:  SETOWN GETSIG SETSIG sigaction SIGINFO siginfo SETLEASE lease is
+% LocalWords:  truncate GETLEASE NOTIFY all'I AND ACCMODE ioctl everything argp
+% LocalWords:  framebuffer request ENOTTY CDROM nell'header magic number
+% LocalWords:  FIOCLEX FIONCLEX FIOASYNC FIONBIO
diff --git a/ipc.tex b/ipc.tex
index 3baa2b83eae6a31528f59df05163fead6ff22d18..452962b500a1916dc1a39aacc2a37fe314206a68 100644 (file)
--- a/ipc.tex
+++ b/ipc.tex
@@ -1,6 +1,6 @@
 %% ipc.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -1639,7 +1639,7 @@ passo (\texttt{\small 17}) prima di uscire 
 messaggio ricevuto.
  
 Proviamo allora il nostro nuovo sistema, al solito occorre definire
-\code{LD\_LIBRAY\_PATH} per accedere alla libreria \file{libgapil.so}, dopo di
+\code{LD\_LIBRARY\_PATH} per accedere alla libreria \file{libgapil.so}, dopo di
 che, in maniera del tutto analoga a quanto fatto con il programma che usa le
 fifo, potremo far partire il server con:
 \begin{verbatim}
@@ -2506,14 +2506,14 @@ corrispondente comportamento della funzione, sono i seguenti:
   \var{shm\_perm.uid} e \var{shm\_perm.gid} occorre essere il proprietario o
   il creatore del segmento, oppure l'amministratore. Compiuta l'operazione
   aggiorna anche il valore del campo \var{shm\_ctime}.
-\item[\const{SHM\_LOCK}] Abilita il \textit{memory
-    locking}\itindex{memory~locking}\footnote{impedisce cioè che la memoria
-    usata per il segmento venga salvata su disco dal meccanismo della memoria
+\item[\const{SHM\_LOCK}] Abilita il \textit{memory locking}
+  \itindex{memory~locking}\footnote{impedisce cioè che la memoria usata per il
+    segmento venga salvata su disco dal meccanismo della memoria
     virtuale\index{memoria~virtuale}; si ricordi quanto trattato in
     sez.~\ref{sec:proc_mem_lock}.} sul segmento di memoria condivisa. Solo
   l'amministratore può utilizzare questo comando.
-\item[\const{SHM\_UNLOCK}] Disabilita il \textit{memory
-    locking}\itindex{memory~locking} sul segmento di memoria condivisa.  Solo
+\item[\const{SHM\_UNLOCK}] Disabilita il \textit{memory locking}
+  \itindex{memory~locking} sul segmento di memoria condivisa.  Solo
   l'amministratore può utilizzare questo comando.
 \end{basedescript}
 i primi tre comandi sono gli stessi già visti anche per le code di messaggi e
@@ -2707,7 +2707,7 @@ chiave ed il puntatore associati al segmento di memoria condivisa, prima lo
 sgancia dal processo e poi lo rimuove. Il primo passo (\texttt{\small 37}) è
 la chiamata a \func{shmdt} per sganciare il segmento, restituendo
 (\texttt{\small 38--39}) un valore -1 in caso di errore. Il passo successivo
-(\texttt{\small 41}) è utilizzare \func{shmget} per ottenre l'identificatore
+(\texttt{\small 41}) è utilizzare \func{shmget} per ottenere l'identificatore
 associato al segmento data la chiave \var{key}. Al solito si restituisce un
 valore di -1 (\texttt{\small 42--45}) in caso di errore, mentre se tutto va
 bene si conclude restituendo un valore nullo.
@@ -2770,7 +2770,7 @@ Il programma, dopo la sezione, omessa, relativa alla gestione delle opzioni da
 riga di comando (che si limitano alla eventuale stampa di un messaggio di
 aiuto a video ed all'impostazione della durata dell'intervallo con cui viene
 ripetuto il calcolo delle proprietà della directory) controlla (\texttt{\small
-  20--23}) che sia stato specificato l'argoemnto necessario contenente il nome
+  20--23}) che sia stato specificato l'argomento necessario contenente il nome
 della directory da tenere sotto controllo, senza il quale esce immediatamente
 con un messaggio di errore.
 
@@ -3037,13 +3037,13 @@ caratteristica della funzione \func{open} (illustrata in
 sez.~\ref{sec:file_open}) che prevede\footnote{questo è quanto dettato dallo
   standard POSIX.1, ciò non toglie che in alcune implementazioni questa
   tecnica possa non funzionare; in particolare per Linux, nel caso di NFS, si
-  è comunque soggetti alla possibilità di una \textit{race
-    condition}\itindex{race~condition}.} che essa ritorni un errore quando
-usata con i flag di \const{O\_CREAT} e \const{O\_EXCL}. In tal modo la
-creazione di un \textsl{file di lock} può essere eseguita atomicamente, il
-processo che crea il file con successo si può considerare come titolare del
-lock (e della risorsa ad esso associata) mentre il rilascio si può eseguire
-con una chiamata ad \func{unlink}.
+  è comunque soggetti alla possibilità di una \itindex{race~condition}
+  \textit{race condition}.} che essa ritorni un errore quando usata con i
+flag di \const{O\_CREAT} e \const{O\_EXCL}. In tal modo la creazione di un
+\textsl{file di lock} può essere eseguita atomicamente, il processo che crea
+il file con successo si può considerare come titolare del lock (e della
+risorsa ad esso associata) mentre il rilascio si può eseguire con una chiamata
+ad \func{unlink}.
 
 Un esempio dell'uso di questa funzione è mostrato dalle funzioni
 \func{LockFile} ed \func{UnlockFile} riportate in fig.~\ref{fig:ipc_file_lock}
@@ -3485,7 +3485,7 @@ Rimuove una coda di messaggi.
 
 Anche in questo caso il comportamento della funzione è analogo a quello di
 \func{unlink} per i file,\footnote{di nuovo l'implementazione di Linux usa
-  direttamente \func{unlink}.} la funzione rimove la coda \param{name}, così
+  direttamente \func{unlink}.} la funzione rimuove la coda \param{name}, così
 che una successiva chiamata a \func{mq\_open} fallisce o crea una coda
 diversa. 
 
@@ -3833,10 +3833,10 @@ La funzione apre un segmento di memoria condivisa identificato dal nome
 \param{name}. Come già spiegato in sez.~\ref{sec:ipc_posix_generic} questo nome
 può essere specificato in forma standard solo facendolo iniziare per \file{/}
 e senza ulteriori \file{/}, Linux supporta comunque nomi generici, che
-verranno intepretati prendendo come radice \file{/dev/shm}.\footnote{occorre
+verranno interpretati prendendo come radice \file{/dev/shm}.\footnote{occorre
   pertanto evitare di specificare qualcosa del tipo \file{/dev/shm/nome}
   all'interno di \param{name}, perché questo comporta, da parte delle funzioni
-  di libereria, il tentativo di accedere a \file{/dev/shm/dev/shm/nome}.}
+  di libreria, il tentativo di accedere a \file{/dev/shm/dev/shm/nome}.}
 
 La funzione è del tutto analoga ad \func{open} ed analoghi sono i valori che
 possono essere specificati per \param{oflag}, che deve essere specificato come
@@ -3953,7 +3953,7 @@ cancellare un segmento di memoria condivisa. Dato che al contrario di quanto
 avveniva con i segmenti del SysV IPC gli oggetti allocati nel kernel vengono
 rilasciati automaticamente quando nessuna li usa più, tutto quello che c'è da
 fare (\texttt{\small 44}) in questo caso è chiamare \func{shm\_unlink},
-retituendo al chiamante il valore di ritorno.
+restituendo al chiamante il valore di ritorno.
 
 
 
@@ -3961,3 +3961,53 @@ retituendo al chiamante il valore di ritorno.
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  like fifo System POSIX RPC Calls Common Object Request Brocker
+% LocalWords:  Architecture descriptor kernel unistd int filedes errno EMFILE
+% LocalWords:  ENFILE EFAULT BUF sez fig fork Stevens siblings EOF read SIGPIPE
+% LocalWords:  EPIPE shell CGI Gateway Interface HTML JPEG URL mime type gs dup
+% LocalWords:  barcode PostScript race condition stream BarCodePage WriteMess
+% LocalWords:  size PS switch wait popen pclose stdio const char command NULL
+% LocalWords:  EINVAL cap fully buffered Ghostscript l'Encapsulated epstopsf of
+% LocalWords:  PDF EPS lseek ESPIPE PPM Portable PixMap format pnmcrop PNG pnm
+% LocalWords:  pnmmargin png BarCode inode filesystem l'inode mknod mkfifo RDWR
+% LocalWords:  ENXIO deadlock client reinviate fortunes fortunefilename daemon
+% LocalWords:  FortuneServer FortuneParse FortuneClient pid libgapil LD LIBR<ARY
+% LocalWords:  PATH linker pathname ps tmp killall fortuned crash socket domain
+% LocalWords:  socketpair BSD sys protocol sv EAFNOSUPPORT EPROTONOSUPPORT AF
+% LocalWords:  EOPNOTSUPP SOCK SysV IPC Process Comunication ipc perm key exec
+% LocalWords:  header ftok proj stat libc SunOS glibc XPG dell'inode number uid
+% LocalWords:  cuid cgid gid tab MSG shift group umask seq MSGMNI SEMMNI SHMMNI
+% LocalWords:  shmmni msgmni sem sysctl IPCMNI IPCTestId msgget EACCES EEXIST
+% LocalWords:  CREAT EXCL EIDRM ENOENT ENOSPC ENOMEM novo proc MSGMAX msgmax ds
+% LocalWords:  MSGMNB msgmnb linked list msqid msgid linux msg qnum lspid lrpid
+% LocalWords:  rtime ctime qbytes first last cbytes msgctl semctl shmctl ioctl
+% LocalWords:  cmd struct buf EPERM RMID msgsnd msgbuf msgp msgsz msgflg EAGAIN
+% LocalWords:  NOWAIT EINTR mtype mtext long message sizeof LENGTH ts sleep BIG
+% LocalWords:  msgrcv ssize msgtyp NOERROR EXCEPT ENOMSG multiplexing select ls
+% LocalWords:  poll polling queue MQFortuneServer write init HandSIGTERM 
+% LocalWords:  MQFortuneClient mqfortuned mutex risorse' inter semaphore semget
+% LocalWords:  nsems SEMMNS SEMMSL semid otime semval sempid semncnt semzcnt nr
+% LocalWords:  SEMVMX SEMOPM semop SEMMNU SEMUME SEMAEM semnum union semun arg
+% LocalWords:  ERANGE SETALL SETVAL GETALL array GETNCNT GETPID GETVAL GETZCNT
+% LocalWords:  sembuf sops unsigned nsops UNDO flg nsop num undo pending semadj
+% LocalWords:  sleeper scheduler running next semundo MutexCreate semunion lock
+% LocalWords:  MutexFind wrapper MutexRead MutexLock MutexUnlock unlock locking
+% LocalWords:  MutexRemove shmget SHMALL SHMMAX SHMMIN shmid shm segsz atime FD
+% LocalWords:  dtime lpid cpid nattac shmall shmmax SHMLBA SHMSEG EOVERFLOW brk
+% LocalWords:  memory shmat shmdt void shmaddr shmflg SVID RND RDONLY rounded
+% LocalWords:  SIGSEGV nattch exit SharedMem ShmCreate memset fill ShmFind home
+% LocalWords:  ShmRemove DirMonitor DirProp chdir GaPiL shmptr DirScan ipcs NFS
+% LocalWords:  ComputeValues ReadMonitor touch SIGTERM dirmonitor unlink fcntl
+% LocalWords:  LockFile UnlockFile CreateMutex FindMutex LockMutex SETLKW GETLK
+% LocalWords:  UnlockMutex RemoveMutex ReadMutex UNLCK WRLCK RDLCK mapping MAP
+% LocalWords:  SHARED ANONYMOUS thread patch names strace system call userid Di
+% LocalWords:  groupid Michal Wronski Krzysztof Benedyczak wrona posix mqueue
+% LocalWords:  lmqueue gcc mount mqd name oflag attr maxmsg msgsize receive ptr
+% LocalWords:  send WRONLY NONBLOCK close mqdes EBADF getattr setattr mqstat
+% LocalWords:  omqstat curmsgs flags timedsend len prio timespec abs EMSGSIZE
+% LocalWords:  ETIMEDOUT timedreceive getaddr notify sigevent notification l'I
+% LocalWords:  EBUSY sigev SIGNAL signo value sigval siginfo all'userid MESGQ
+% LocalWords:  Konstantin Knizhnik futex tmpfs ramfs cache shared swap CONFIG
+% LocalWords:  lrt blocks PAGECACHE TRUNC CLOEXEC mmap ftruncate munmap FindShm
+% LocalWords:  CreateShm RemoveShm
index 597738b0a4d22948af385696615f7f4b2e8eb966..4fb7e1f5e9367813ac8fdd113ac8cdec35348798 100644 (file)
@@ -1,6 +1,6 @@
 %% netlayer.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -18,11 +18,11 @@ In questa appendice prenderemo in esame i vari protocolli disponibili a
 livello di rete.\footnote{per la spiegazione della suddivisione in livelli dei
   protocolli di rete, si faccia riferimento a quanto illustrato in
   sez.~\ref{sec:net_protocols}.} Per ciascuno di essi forniremo una descrizione
-generica delle principlai caratteristiche, del formato di dati usato e quanto
+generica delle principali caratteristiche, del formato di dati usato e quanto
 possa essere necessario per capirne meglio il funzionamento dal punto di vista
 della programmazione.
 
-Data la loro prevelenza il capitolo sarà sostanzialmente incentrato sui due
+Data la loro prevalenza il capitolo sarà sostanzialmente incentrato sui due
 protocolli principali esistenti su questo livello: il protocollo IP, sigla che
 sta per \textit{Internet Protocol}, (ma che più propriamente si dovrebbe
 chiamare IPv4) ed la nuova versione di questo stesso protocollo, denominata
@@ -161,8 +161,8 @@ classe A occorre passare a una classe B, con un conseguente spreco di numeri.
 Inoltre, in particolare per le reti di classe C, la presenza di tanti
 indirizzi di rete diversi comporta una crescita enorme delle tabelle di
 instradamento che ciascun router dovrebbe tenere in memoria per sapere dove
-inviare il pacchetto, con conseguente crescita dei tempi di processo da parte
-di questi ultimi ed inefficienza nel trasporto.
+inviare il pacchetto, con conseguente crescita dei tempi di elaborazione da
+parte di questi ultimi ed inefficienza nel trasporto.
 
 \begin{table}[htb]
   \centering
@@ -307,7 +307,7 @@ necessit
 \label{sec:IP_ipv6over}
 
 Per rispondere alle esigenze descritte in sez.~\ref{sec:IP_whyipv6} IPv6 nasce
-come evoluzione di IPv4, mantendone inalterate le funzioni che si sono
+come evoluzione di IPv4, mantenendone inalterate le funzioni che si sono
 dimostrate valide, eliminando quelle inutili e aggiungendone poche altre
 ponendo al contempo una grande attenzione a mantenere il protocollo il più
 snello e veloce possibile.
@@ -323,7 +323,7 @@ grandi linee nei seguenti punti:
   \textit{multicast}
 \item la semplificazione del formato dell'intestazione, eliminando o rendendo
   opzionali alcuni dei campi di IPv4, per eliminare la necessità di
-  riprocessamento della stessa da parte dei router e contenere l'aumento di
+  riprocessare la stessa da parte dei router e contenere l'aumento di
   dimensione dovuto ai nuovi indirizzi
 \item un supporto per le opzioni migliorato, per garantire una trasmissione
   più efficiente del traffico normale, limiti meno stringenti sulle
@@ -428,9 +428,9 @@ numero dei campi da 12 a 8.
   \end{center}
 \end{table}
 
-Abbiamo già anticipato in sez.~\ref{sec:IP_ipv6over} uno dei criteri principali
-nella progettazione di IPv6 è stato quello di ridurre al minimo il tempo di
-processamento dei pacchetti da parte dei router, un confronto con
+Abbiamo già anticipato in sez.~\ref{sec:IP_ipv6over} uno dei criteri
+principali nella progettazione di IPv6 è stato quello di ridurre al minimo il
+tempo di elaborazione dei pacchetti da parte dei router, un confronto con
 l'intestazione di IPv4 (vedi fig.~\ref{fig:IP_ipv4_head}) mostra le seguenti
 differenze:
 
@@ -444,8 +444,8 @@ differenze:
   veloce il processo da parte di computer con processori a 64 bit.
 \item i campi per gestire la frammentazione (\textit{identification},
   \textit{flag} e \textit{fragment offset}) sono stati eliminati; questo
-  perché la  frammentazione è un'eccezione che non deve rallentare il
-  processo dei pacchetti nel caso normale.
+  perché la frammentazione è un'eccezione che non deve rallentare
+  l'elaborazione dei pacchetti nel caso normale.
 \item è stato eliminato il campo \textit{checksum} in quanto tutti i
   protocolli di livello superiore (TCP, UDP e ICMPv6) hanno un campo di
   checksum che include, oltre alla loro intestazione e ai dati, pure i campi
@@ -453,9 +453,9 @@ differenze:
   di destinazione; una checksum esiste anche per la gran parte protocolli di
   livello inferiore (anche se quelli che non lo hanno, come SLIP, non possono
   essere usati con grande affidabilità); con questa scelta si è ridotto di
-  molti tempo di riprocessamento dato che i router non hanno più la
-  necessità di ricalcolare la checksum ad ogni passaggio di un pacchetto per
-  il cambiamento del campo \textit{hop limit}.
+  molto il tempo di elaborazione dato che i router non hanno più la necessità
+  di ricalcolare la checksum ad ogni passaggio di un pacchetto per il
+  cambiamento del campo \textit{hop limit}.
 \item è stato eliminato il campo \textit{type of service}, che praticamente
   non è mai stato utilizzato; una parte delle funzionalità ad esso delegate
   sono state reimplementate (vedi il campo \textit{priority} al prossimo
@@ -883,7 +883,7 @@ costruirlo 
 Gli indirizzi di uso locale consentono ad una organizzazione che non è
 (ancora) connessa ad Internet di operare senza richiedere un prefisso globale,
 una volta che in seguito l'organizzazione venisse connessa a Internet
-potrebbe con4tinuare a usare la stessa suddivisione effettuata con gli
+potrebbe continuare a usare la stessa suddivisione effettuata con gli
 indirizzi \textit{site-local} utilizzando un prefisso globale e la
 rinumerazione degli indirizzi delle singole macchine sarebbe automatica.
 
@@ -1110,10 +1110,10 @@ pacchetto, e poste in apposite \textsl{intestazioni di estensione} (o
 \textit{extension header}) poste fra l'intestazione di IPv6 e l'intestazione
 del protocollo di trasporto.
 
-Per aumentare la velocità di processo, sia dei dati del livello seguente che
-di ulteriori opzioni, ciascuna estensione deve avere una lunghezza multipla di
-8 byte per mantenere l'allineamento a 64~bit di tutti le intestazioni
-seguenti.
+Per aumentare la velocità di elaborazione, sia dei dati del livello seguente
+che di ulteriori opzioni, ciascuna estensione deve avere una lunghezza
+multipla di 8 byte per mantenere l'allineamento a 64~bit di tutti le
+intestazioni seguenti.
 
 Dato che la maggior parte di queste estensioni non sono esaminate dai router
 durante l'instradamento e la trasmissione dei pacchetti, ma solo all'arrivo
@@ -1487,3 +1487,26 @@ l'indirizzo link-local e ricever
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  sez Protocol IPv dall' RFC Ethernet Token FDDI Universal host of
+% LocalWords:  addressing Best effort l'host router IANA Assigned Number tab to
+% LocalWords:  Authority quest'ultime multicast group reserved for CIDR Domain
+% LocalWords:  Classless Routing TOS Type Service IPTOS LOWDELAY THROUGHPUT QoS
+% LocalWords:  RELIABILITY MINCOST optval anycast unicast fig header version FE
+% LocalWords:  priority flow label payload length next hop limit live source FF
+% LocalWords:  destination identification fragment checksum TCP UDP ICMPv type
+% LocalWords:  service head total fragmentation protocol broadcast broadcasting
+% LocalWords:  multicasting path MTU discovery NSAP IPX based geografic local
+% LocalWords:  routing format prefix nell' Registry Subscriber Intra Regional
+% LocalWords:  Register INTERNIC NCC APNIC subscriber Interface MAC address Reg
+% LocalWords:  Subnet Naz Prov Subscr FEBF bootstrap FEC FEFF DNS socket FFFF
+% LocalWords:  sull'host loopback scop all nodes routers rip cbt name dhcp HBH
+% LocalWords:  agents servers relays solicited extension options route Keyword
+% LocalWords:  Authentication Encapsulation ICMP Control Message GGP Gateway ST
+% LocalWords:  encapsulation Stream Trasmission Datagram RH FH IDRP ESP Null
+% LocalWords:  Encrypted Security IGRP OSPF Short First tunnelling FFFFFF hash
+% LocalWords:  news FTP NFS authentication Parameter Index ICV Integrity Value
+% LocalWords:  padding Option gateway dell'MD keyed Encripted IEEE ethernet
+% LocalWords:  dell'autoconfigurazione L'autoconfigurazione Solicitation
+% LocalWords:  stateless solicitation Advertisement stateful
+% LocalWords:  l'autoconfigurazione
index 495e02f69f8da6991840f1eca27114e26b0ae366..9f67097ab5f60cc43be86c86cd47abd1c23c0fdd 100644 (file)
@@ -1,6 +1,6 @@
 %% network.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -199,7 +199,7 @@ tab.~\ref{tab:net_osilayers}.
 Il modello ISO/OSI è stato sviluppato in corrispondenza alla definizione della
 serie di protocolli X.25 per la commutazione di pacchetto; come si vede è un
 modello abbastanza complesso\footnote{infatti per memorizzarne i vari livelli
-  è stata creata la frase \texttt{All people seem to need data processing}, in
+  è stata creata la frase \textit{All people seem to need data processing}, in
   cui ciascuna parola corrisponde all'iniziale di uno dei livelli.}, tanto che
 usualmente si tende a suddividerlo in due parti, secondo lo schema mostrato in
 fig.~\ref{fig:net_osi_tcpip_comp}, con un \textit{upper layer} che riguarda
@@ -541,7 +541,7 @@ Negli anni '90 la crescita vertiginosa del numero di macchine connesse a
 internet ha iniziato a far emergere i vari limiti di IPv4, per risolverne i
 problemi si è perciò definita una nuova versione del protocollo, che (saltando
 un numero) è diventata la versione 6. IPv6 nasce quindi come evoluzione di
-IPv4, mantendone inalterate le funzioni che si sono dimostrate valide,
+IPv4, mantenendone inalterate le funzioni che si sono dimostrate valide,
 eliminando quelle inutili e aggiungendone poche altre per mantenere il
 protocollo il più snello e veloce possibile.
 
@@ -556,7 +556,7 @@ grandi linee nei seguenti punti:
   \textit{multicast}.
 \item la semplificazione del formato dell'intestazione (\textit{header}) dei
   pacchetti, eliminando o rendendo opzionali alcuni dei campi di IPv4, per
-  eliminare la necessità di riprocessamento della stessa da parte dei router e
+  eliminare la necessità di rielaborazione della stessa da parte dei router e
   contenere l'aumento di dimensione dovuto all'ampliamento degli indirizzi.
 \item un supporto per le opzioni migliorato, per garantire una trasmissione
   più efficiente del traffico normale, limiti meno stringenti sulle dimensioni
@@ -598,7 +598,7 @@ stesso ordine in cui sono stati trasmessi, e pu
 pacchetti vengano duplicati nella trasmissione, e non solo perduti. Di tutto
 questo di nuovo deve tenere conto l'applicazione.
 
-Un'altro aspetto di UDP è che se un pacchetto raggiunge correttamente la
+Un altro aspetto di UDP è che se un pacchetto raggiunge correttamente la
 destinazione esso viene passato all'applicazione ricevente in tutta la sua
 lunghezza, la trasmissione avviene perciò per \textit{record} la cui lunghezza
 viene anche essa trasmessa all'applicazione all'atto del ricevimento.
@@ -690,7 +690,7 @@ effettuato per entrambe le direzioni di comunicazione.
 \label{sec:net_lim_dim}
 
 Un aspetto di cui bisogna tenere conto nella programmazione di rete, e che
-ritornerà in seguito, quando tratteremo gli aspetti più avanzti, è che ci sono
+ritornerà in seguito, quando tratteremo gli aspetti più avanzati, è che ci sono
 una serie di limiti a cui la trasmissione dei dati attraverso i vari livelli
 del protocollo deve sottostare; limiti che è opportuno tenere presente perché
 in certi casi si possono avere delle conseguenze sul comportamento delle
@@ -797,3 +797,23 @@ delle intestazioni di IP e TCP, in Linux il default, mantenuto nella costante
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  TCP multitasking client ftp telnet ssh cap thread peer to three
+% LocalWords:  Napster routing tier two middle International Standards Systems
+% LocalWords:  Organization Interconnection tab Application Presentation All of
+% LocalWords:  Session Transport DataLink Physical people seem need processing
+% LocalWords:  fig upper layer lower kernel DoD Department Defense Connection
+% LocalWords:  sez UDP ICMP IGMP device Trasmission Control Protocol l'IP l'UDP
+% LocalWords:  IPv ethernet SMTP RFC Request For Comment socket stack PPP ARP
+% LocalWords:  router instradatori version RARP l'autoconfigurazione anycast Di
+% LocalWords:  l'acknoweledgment Datagram Message host ping ICPMv ICMPv Group
+% LocalWords:  multicast Address Resolution broadcast Token FDDI MAC address DF
+% LocalWords:  Reverse EGP Exterior Gateway gateway autonomous systems OSPF GRE
+% LocalWords:  Shortest Path First Generic Encapsulation Authentication Header
+% LocalWords:  IPSEC ESP Encapsulating Security Payload Point Line over raw QoS
+% LocalWords:  dall' Universal addressing Best effort unicast header dell' RTT
+% LocalWords:  datagram connectionless streaming nell' acknowlegment trip flow
+% LocalWords:  segment control advertised window nell'header dell'header option
+% LocalWords:  payload MTU Transfer Unit Hyperlink IBM Mbit sec IEEE path but
+% LocalWords:  dell'MTU destination unreachable fragmentation needed packet too
+% LocalWords:  big discovery MSS Size
index f905efbb9c237637d28c2ed94e48606edb2208ba..af29617fdd294933c7a61bcfb3bfe5dcea47947b 100644 (file)
@@ -1,6 +1,6 @@
 %% othersock.tex
 %%
-%% Copyright (C) 2004-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2004-2006 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",
@@ -743,7 +743,7 @@ risolvere questo problema l'unico modo sarebbe quello di impostare un
 
 Benché i socket Unix domain, come meccanismo di comunicazione fra processi che
 girano sulla stessa macchina, non siano strettamente attinenti alla rete, li
-tratteremo comunque in questa sezione. Nonstante le loro peculiarità infatti,
+tratteremo comunque in questa sezione. Nonostante le loro peculiarità infatti,
 l'interfaccia di programmazione che serve ad utilizzarli resta sempre quella
 dei socket.
 
@@ -778,3 +778,16 @@ il kernel.
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  socket cap TCP UDP domain sez NFS DNS stream datagram PF INET to
+% LocalWords:  IPv tab SOCK DGRAM three way handshake client fig bind listen AF
+% LocalWords:  accept recvfrom sendto connect netstat named DHCP kernel ICMP CR
+% LocalWords:  port unreachable read write glibc Specification flags int BSD LF
+% LocalWords:  libc unsigned len size tolen sys ssize sockfd const void buf MSG
+% LocalWords:  struct sockaddr socklen errno EAGAIN ECONNRESET EDESTADDRREQ RFC
+% LocalWords:  EISCONN EMSGSIZE ENOBUFS ENOTCONN EOPNOTSUPP EPIPE SIGPIPE EBADF
+% LocalWords:  NOSIGNAL EFAULT EINVAL EINTR ENOMEM ENOTSOCK NULL fromlen from
+% LocalWords:  ECONNREFUSED value result argument close shutdown daytime nell'
+% LocalWords:  memset inet pton nread NUL superdemone inetd sniffer daytimed
+% LocalWords:  INADDR ANY addr echo ClientEcho sendbuff serv VPN tcpdump l'I
+% LocalWords:  Stevens destination descriptor raw stack netlink
index 51bb284a4ea51152aac3736f3489ea197c911d67..c92a25ef8489bf81d4a22445dd85e165ed0f5266 100644 (file)
@@ -1,6 +1,6 @@
 %% preambolo.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -11,7 +11,7 @@
 \chapter{Un preambolo}
 \label{cha:preamble}
 
-Questa guida nasce dalla mia profonda convizione che le istanze di libertà e
+Questa guida nasce dalla mia profonda convinzione che le istanze di libertà e
 di condivisione della conoscenza che hanno dato vita a quello straordinario
 movimento di persone ed intelligenza che va sotto il nome di \textsl{software
   libero} hanno la stessa rilevanza anche quando applicate alla produzione
@@ -43,7 +43,7 @@ apportarvi migliorie, aggiornamenti, ecc.
 
 Per questo motivo la Free Software Foundation ha creato una apposita licenza
 che potesse giocare lo stesso ruolo fondamentale che la GPL ha avuto per il
-software libero nel garartire la permanenza delle libertà date, ma potesse
+software libero nel garantire la permanenza delle libertà date, ma potesse
 anche tenere conto delle differenze che comunque ci sono fra un testo ed un
 programma.
 
@@ -65,3 +65,5 @@ licenza GNU GPL.
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  Foundation FDL
index e85f17161e177cc397e4ca3ca406448ff0f0327b..e8d059a8d19d34b5ac7bdb2f4a251996786bcb4f 100644 (file)
--- a/pref.tex
+++ b/pref.tex
@@ -1,6 +1,6 @@
 %% pref.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -63,3 +63,5 @@ comunicazione macchine diverse.
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  kernel Library glibc Stevens Reference Manual GCC
index 92cb08eb38b2fa8612cd13d66ec17bce1536512a..2cca5986b9c0f08ed8f83f3d296e492e77119ef9 100644 (file)
@@ -1,6 +1,6 @@
 %% process.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -400,17 +400,17 @@ seguenti segmenti:
   e le informazioni dello stato del chiamante (tipo il contenuto di alcuni
   registri della CPU), poi la funzione chiamata alloca qui lo spazio per le
   sue variabili locali. Tutti questi dati vengono \textit{impilati} (da questo
-  viene il nome \textit{stack}) in sequenza uno sull'altro; in questo modo le
-  funzioni possono essere chiamate ricorsivamente. Al ritorno della funzione
-  lo spazio è automaticamente rilasciato e ``\textsl{ripulito}''. La pulizia
-  in C e C++ viene fatta dal chiamante.\footnote{a meno che non sia stato
-    specificato l'utilizzo di una calling convention diversa da quella
-    standard.}
+  viene il nome \itindex{stack} \textit{stack}) in sequenza uno sull'altro; in
+  questo modo le funzioni possono essere chiamate ricorsivamente. Al ritorno
+  della funzione lo spazio è automaticamente rilasciato e
+  ``\textsl{ripulito}''. La pulizia in C e C++ viene fatta dal
+  chiamante.\footnote{a meno che non sia stato specificato l'utilizzo di una
+    calling convention diversa da quella standard.}
 % TODO verificare le modalità di cambiamento della calling convention
 
   La dimensione di questo segmento aumenta seguendo la crescita dello
-  \textit{stack} del programma, ma non viene ridotta quando quest'ultimo si
-  restringe.
+  \itindex{stack} \textit{stack} del programma, ma non viene ridotta quando
+  quest'ultimo si restringe.
 \end{enumerate}
 
 \begin{figure}[htb]
@@ -461,10 +461,10 @@ librerie del C forniscono una serie opportuna di funzioni per eseguire
 l'allocazione dinamica di memoria (in genere nello \itindex{heap} heap). 
 
 Le variabili il cui contenuto è allocato in questo modo non potranno essere
-usate direttamente come le altre (quelle nello \itindex{stack} stack), ma
-l'accesso sarà possibile solo in maniera indiretta, attraverso i puntatori
-alla memoria loro riservata che si sono ottenuti dalle funzioni di
-allocazione.
+usate direttamente come le altre (quelle nello \itindex{stack}
+\textit{stack}), ma l'accesso sarà possibile solo in maniera indiretta,
+attraverso i puntatori alla memoria loro riservata che si sono ottenuti dalle
+funzioni di allocazione.
 
 
 \subsection{Le funzioni \func{malloc}, \func{calloc}, \func{realloc} e
@@ -635,7 +635,7 @@ molto complesse riguardo l'allocazione della memoria.
 Una possibile alternativa all'uso di \func{malloc}, che non soffre dei
 problemi di \textit{memory leak}\itindex{memory~leak} descritti in precedenza,
 è la funzione \funcd{alloca}, che invece di allocare la memoria nello
-\itindex{heap}\textit{heap} usa il segmento di \itindex{stack}\textit{stack}
+\itindex{heap}\textit{heap} usa il segmento di \itindex{stack} \textit{stack}
 della funzione corrente. La sintassi è identica a quella di \func{malloc}, il
 suo prototipo è:
 \begin{prototype}{stdlib.h}{void *alloca(size\_t size)}
@@ -647,10 +647,10 @@ suo prototipo 
 \end{prototype}
 
 La funzione alloca la quantità di memoria (non inizializzata) richiesta
-dall'argomento \param{size} nel segmento di \itindex{stack}stack della
-funzione chiamante.  Con questa funzione non è più necessario liberare la
-memoria allocata (e quindi non esiste un analogo della \func{free}) in quanto
-essa viene rilasciata automaticamente al ritorno della funzione.
+dall'argomento \param{size} nel segmento di \itindex{stack} \textit{stack}
+della funzione chiamante.  Con questa funzione non è più necessario liberare
+la memoria allocata (e quindi non esiste un analogo della \func{free}) in
+quanto essa viene rilasciata automaticamente al ritorno della funzione.
 
 Come è evidente questa funzione ha molti vantaggi, anzitutto permette di
 evitare alla radice i problemi di \textit{memory leak}\itindex{memory~leak},
index 9c6d9da79b321a78e9cbb7fe049098b6796ebbed..f56f969d26b38c257be318d3665ce1c506193d51 100644 (file)
@@ -1,6 +1,6 @@
 %% session.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -32,11 +32,11 @@ Viene comunemente chiamato \textit{job control} quell'insieme di funzionalit
 il cui scopo è quello di permettere ad un utente di poter sfruttare le
 capacità multitasking di un sistema Unix per eseguire in contemporanea più
 processi, pur potendo accedere, di solito, ad un solo terminale,\footnote{con
-  X e con i terminali virtuali tutto questo non è più vero, dato che si può
-  accedere a molti terminali in contemporanea da una singola postazione di
-  lavoro, ma il sistema è nato prima dell'esistenza di tutto ciò.} avendo cioè
-un solo punto in cui si può avere accesso all'input ed all'output degli
-stessi.
+  \textit{X Window} e con i terminali virtuali tutto questo non è più vero,
+  dato che si può accedere a molti terminali in contemporanea da una singola
+  postazione di lavoro, ma il sistema è nato prima dell'esistenza di tutto
+  ciò.} avendo cioè un solo punto in cui si può avere accesso all'input ed
+all'output degli stessi.
 
 
 \subsection{Una panoramica introduttiva}
@@ -46,7 +46,7 @@ Il \textit{job control} 
 negli anni '80, e successivamente standardizzata da POSIX.1; la sua
 disponibilità nel sistema è verificabile attraverso il controllo della macro
 \macro{\_POSIX\_JOB\_CONTROL}. In generale il \textit{job control} richiede il
-supporto sia da parte della shell (quasi tutte ormai lo fanno), che da parte
+supporto sia da parte della shell (quasi tutte ormai lo hanno), che da parte
 del kernel; in particolare il kernel deve assicurare sia la presenza di un
 driver per i terminali abilitato al \textit{job control} che quella dei
 relativi segnali illustrati in sez.~\ref{sec:sig_job_control}. 
@@ -534,13 +534,13 @@ amministratore e con un ambiente vuoto; \cmd{getty} si cura di chiamare
 \itindex{process~group} \textit{process group}, e di aprire il terminale (che
 così diventa il terminale di controllo della sessione) in lettura sullo
 standard input ed in scrittura sullo standard output e sullo standard error;
-inoltre effettuerà, qualora servano, ulteriori settaggi.\footnote{ad esempio,
-  come qualcuno si sarà accorto scrivendo un nome di login in maiuscolo, può
-  effettuare la conversione automatica dell'input in minuscolo, ponendosi in
-  una modalità speciale che non distingue fra i due tipi di caratteri (a
-  beneficio di alcuni vecchi terminali che non supportavano le minuscole).}
-Alla fine il programma stamperà un messaggio di benvenuto per poi porsi in
-attesa dell'immissione del nome di un utente.
+inoltre effettuerà, qualora servano, ulteriori impostazioni.\footnote{ad
+  esempio, come qualcuno si sarà accorto scrivendo un nome di login in
+  maiuscolo, può effettuare la conversione automatica dell'input in minuscolo,
+  ponendosi in una modalità speciale che non distingue fra i due tipi di
+  caratteri (a beneficio di alcuni vecchi terminali che non supportavano le
+  minuscole).}  Alla fine il programma stamperà un messaggio di benvenuto per
+poi porsi in attesa dell'immissione del nome di un utente.
 
 Una volta che si sia immesso il nome di login \cmd{getty} esegue direttamente
 il programma \cmd{login} con una \func{exevle}, passando come argomento la
@@ -726,7 +726,7 @@ dettagli si possono trovare sulle pagine di manuale per questo file e per
 
 Le \acr{glibc} definiscono una serie di funzioni standard con cui un processo
 può accedere in maniera generica al servizio di \textit{syslog}, che però
-funzionano solo localmente; se si vogliono inviare i messaggi ad un'altro
+funzionano solo localmente; se si vogliono inviare i messaggi ad un altro
 sistema occorre farlo esplicitamente con un socket\index{socket} UDP, o
 utilizzare le capacità di reinvio del servizio.
 
@@ -990,7 +990,7 @@ massime vengono persi; in alcuni casi il driver provvede ad inviare
 automaticamente un avviso (un carattere di BELL, che provoca un beep)
 sull'output quando si eccedono le dimensioni della coda.  Se è abilitato il
 modo canonico i caratteri in ingresso restano nella coda fintanto che non
-viene ricevuto un a capo; un'altro parametro del sistema, \const{MAX\_CANON},
+viene ricevuto un a capo; un altro parametro del sistema, \const{MAX\_CANON},
 specifica la dimensione massima di una riga in modo canonico.
 
 La coda di uscita è analoga a quella di ingresso e contiene i caratteri
@@ -1303,7 +1303,7 @@ valore.
                      \func{open} senza aver specificato il flag di
                      \const{O\_NOBLOCK} si bloccherà il processo finché 
                      non si è stabilita una connessione con il modem; inoltre 
-                     se viene rilevata una disconessione viene inviato un
+                     se viene rilevata una disconnessione viene inviato un
                      \const{SIGHUP} al processo di controllo del terminale. La
                      lettura su un terminale sconnesso comporta una condizione
                      di \textit{end of file} e la scrittura un errore di
@@ -1352,11 +1352,11 @@ valore.
 
 Il terzo flag, mantenuto nel campo \var{c\_cflag}, è detto \textsl{flag di
   controllo} ed è legato al funzionamento delle linee seriali, permettendo di
-impostarne varie caratteristiche, come il numero di bit di stop, i settaggi
-della parità, il funzionamento del controllo di flusso; esso ha senso solo per
-i terminali connessi a linee seriali. Un elenco dei vari bit, del loro
-significato e delle costanti utilizzate per identificarli è riportato in
-tab.~\ref{tab:sess_termios_cflag}.
+impostarne varie caratteristiche, come il numero di bit di stop, le
+impostazioni della parità, il funzionamento del controllo di flusso; esso ha
+senso solo per i terminali connessi a linee seriali. Un elenco dei vari bit,
+del loro significato e delle costanti utilizzate per identificarli è riportato
+in tab.~\ref{tab:sess_termios_cflag}.
 
 I valori di questo flag sono molto specifici, e completamente indirizzati al
 controllo di un terminale mantenuto su una linea seriale; essi pertanto non
@@ -1410,7 +1410,7 @@ fig.~\ref{fig:term_termios}).
                      \const{ECHO}. \\
     \const{ECHOCTL}& Se impostato insieme ad \const{ECHO} i caratteri di
                      controllo ASCII (tranne TAB, NL, START, e STOP) sono
-                     mostrati nella forma che prepende un \verb|^| alla
+                     mostrati nella forma che prepone un \verb|^| alla
                      lettera ottenuta sommando \texttt{0x40} al valore del
                      carattere (di solito questi si possono ottenere anche
                      direttamente premendo il tasto \texttt{ctrl} più la
@@ -1423,7 +1423,7 @@ fig.~\ref{fig:term_termios}).
                      essere interpretati. \\
     \const{NOFLSH} & Se impostato disabilita lo scarico delle code di ingresso
                      e uscita quando vengono emessi i segnali \const{SIGINT}, 
-                     \const{SIGQUIT} and \const{SIGSUSP}.\\
+                     \const{SIGQUIT} e \const{SIGSUSP}.\\
     \const{TOSTOP} & Se abilitato, con il supporto per il job control presente,
                      genera il segnale \const{SIGTTOU} per un processo in
                      background che cerca di scrivere sul terminale.\\
@@ -2004,3 +2004,38 @@ Qui vanno le cose su \func{openpty} e compagnia.
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  kernel multitasking dell'I job control BSD POSIX shell sez group
+% LocalWords:  foreground process bg fg Di waitpid WUNTRACED pgrp session sched
+% LocalWords:  struct pgid sid pid ps getpgid getpgrp SVr unistd void errno int
+% LocalWords:  ESRCH getsid glibc system call XOPEN SOURCE EPERM setpgrp EACCES
+% LocalWords:  setpgid exec EINVAL did fork race condition setsid l'I tty ioctl
+% LocalWords:  NOCTTY TIOCSCTTY error tcsetpgrp termios fd pgrpid descriptor VT
+% LocalWords:  ENOTTY ENOSYS EBADF SIGTTIN SIGTTOU EIO tcgetpgrp crypt SIGTSTP
+% LocalWords:  SIGINT SIGQUIT SIGTERM SIGHUP hungup kill orphaned SIGCONT exit
+% LocalWords:  init Slackware run level inittab fig device getty exevle TERM at
+% LocalWords:  getpwnam chdir home chown chmod setuid setgid initgroups SIGCHLD
+% LocalWords:  daemon like daemons NdT Stevens Programming FAQ filesystem umask
+% LocalWords:  noclose syslog syslogd socket UDP klogd printk printf facility
+% LocalWords:  priority log openlog const char ident option argv tab AUTH CRON
+% LocalWords:  AUTHPRIV cron FTP KERN LOCAL LPR NEWS news USENET UUCP CONS CRIT
+% LocalWords:  NDELAY NOWAIT ODELAY PERROR stderr format strerror EMERG ALERT
+% LocalWords:  ERR WARNING NOTICE INFO DEBUG debug setlogmask mask UPTO za ssh
+% LocalWords:  teletype telnet read write BELL beep CANON isatty desc ttyname
+% LocalWords:  NULL ctermid stdio pathname buff size len ERANGE bits ispeed xFF
+% LocalWords:  ospeed line tcflag INPCK IGNPAR PARMRK ISTRIP IGNBRK BREAK NUL
+% LocalWords:  BRKINT IGNCR carriage return newline ICRNL INLCR IUCLC IXON NL
+% LocalWords:  IXANY IXOFF IMAXBEL iflag OPOST CR OCRNL OLCUC ONLCR ONOCR OFILL
+% LocalWords:  ONLRET OFDEL NLDLY CRDLY TABDLY BSDLY backspace BS VTDLY FFDLY
+% LocalWords:  form feed FF oflag CLOCAL NOBLOCK of HUPCL CREAD CSTOPB PARENB
+% LocalWords:  PARODD CSIZE CS CBAUD CBAUDEX CIBAUD CRTSCTS RTS CTS cflag ECHO
+% LocalWords:  ICANON ECHOE ERASE ECHOPRT ECHOK ECHOKE ECHONL ECHOCTL ctrl ISIG
+% LocalWords:  INTR QUIT SUSP IEXTEN EOL LNEXT REPRINT WERASE NOFLSH and TOSTOP
+% LocalWords:  SIGSUSP XCASE DEFECHO FLUSHO DISCARD PENDIN lflag NCCS VINTR EOF
+% LocalWords:  interrupt VQUIT VERASE VKILL VEOF VTIME VMIN VSWTC switch VSTART
+% LocalWords:  VSTOP VSUSP VEOL VREPRINT VDISCARD VWERASE VLNEXT escape actions
+% LocalWords:  tcgetattr tcsetattr EINTR TCSANOW TCSADRAIN TCSAFLUSH speed MIN
+% LocalWords:  SetTermAttr UnSetTermAttr cfsetispeed cfsetospeed cfgetispeed
+% LocalWords:  cfgetospeed quest'ultime tcsendbreak duration break tcdrain
+% LocalWords:  tcflush queue TCIFLUSH TCOFLUSH TCIOFLUSH tcflow action TCOOFF
+% LocalWords:  TCOON TCIOFF TCION timer openpty
index a34227729174a53159b4b61fdfda315036e02f4a..8e4b64ca6e6bfbf13a0757c0ea7a07d5369d34ca 100644 (file)
@@ -1,6 +1,6 @@
 %% signal.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -2494,7 +2494,7 @@ dedicato alla gestione, che potrebbe riceverlo fra due chiamate successive.
 % LocalWords:  RESETHAND RESTART NOMASK NODEFER ONSTACK sigcontext union signo
 % LocalWords:  siginfo bits uid addr fd inline like blocked atomic sigprocmask
 % LocalWords:  how oldset BLOCK UNBLOCK SETMASK sigsuspend sigaltstack malloc
-% LocalWords:  SIGSTKSZ MINSIGSTKSZ ss oss ENOMEM flags DISABLE sp setrlimit
+% LocalWords:  SIGSTKSZ MINSIGSTKSZ ss oss ENOMEM flags DISABLE sp setrlimit LB
 % LocalWords:  RLIMIT rlim sigsetjmp siglongjmp sigjmp buf env savesigs jmp ptr
 % LocalWords:  SIGRTMIN SIGRTMAX sigval sival sigevent sigqueue EAGAIN sysctl
-% LocalWords:  QUEUE thread sigwait sigwaitinfo sigtimedwait info
+% LocalWords:  QUEUE thread sigwait sigwaitinfo sigtimedwait info DEF SLB
index 1fc196fb54164fd62ec29395ce27b5b5b97a3b6a..99fa601a1b7671b60ea827fcf0da7e217f7a30e7 100644 (file)
@@ -1,6 +1,6 @@
 %% sockadv.tex
 %%
-%% Copyright (C) 2004-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2004-2006 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",
index bf860378750aa4cecd96eb871011c78420a5c1e4..3170c53ca6a7a7aabe28ec8fe46d7369b420d7da 100644 (file)
@@ -3257,7 +3257,7 @@ accessibile con \texttt{man 7 ip}, sono i seguenti:
 
 
 
-I parametri specifiv
+I parametri specifici 
 
 
 % LocalWords:  socket sez dotted decimal resolver Domain Name Service cap DNS
@@ -3319,4 +3319,4 @@ I parametri specifiv
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
-% LocalWords:  quest'ultime neigh
+% LocalWords:  quest'ultime neigh dev weight cong mod somaxconn
index 69a6a3bb34c542ec782c2f8824052ab78fa61993..972c42d9760f9752554d647b089e25474eeb14ed 100644 (file)
@@ -1,6 +1,6 @@
 %% socket.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -37,7 +37,7 @@ I \textit{socket}\footnote{una traduzione letterale potrebbe essere
   \textsl{presa}, ma essendo universalmente noti come \textit{socket}
   utilizzeremo sempre la parola inglese.} sono uno dei principali meccanismi
 di comunicazione utilizzato in ambito Unix, e li abbiamo brevemente incontrati
-in sez.~\ref{sec:ipc_socketpair}, fra i vari meccanismi di intercominazione
+in sez.~\ref{sec:ipc_socketpair}, fra i vari meccanismi di intercomunicazione
 fra processi. Un socket costituisce in sostanza un canale di comunicazione fra
 due processi su cui si possono leggere e scrivere dati analogo a quello di una
 pipe (vedi sez.~\ref{sec:ipc_pipes}) ma, a differenza di questa e degli altri
@@ -83,7 +83,7 @@ che viene chiamato un \textsl{flusso} (in inglese \textit{stream}), mentre
 altri invece li raggruppano in \textsl{pacchetti} (in inglese
 \textit{datagram}) che vengono inviati in blocchi separati.
 
-Un'altro esempio di stile concerne la possibilità che la comunicazione possa o
+Un altro esempio di stile concerne la possibilità che la comunicazione possa o
 meno perdere dati, possa o meno non rispettare l'ordine in cui essi non sono
 inviati, o inviare dei pacchetti più volte (come nel caso di TCP e UDP).
 
@@ -205,10 +205,10 @@ i capi della comunicazione.
        \const{PF\_ECONET}   &19& Acorn Econet                  &    \\
        \const{PF\_ATMSVC}   &20& ATM SVCs                      &    \\
        \const{PF\_SNA}      &22& Linux SNA Project             &    \\
-       \const{PF\_IRDA}     &23& IRDA sockets                  &    \\
-       \const{PF\_PPPOX}    &24& PPPoX sockets                 &    \\
-       \const{PF\_WANPIPE}  &25& Wanpipe API sockets           &    \\
-       \const{PF\_BLUETOOTH}&31& Bluetooth sockets             &    \\
+       \const{PF\_IRDA}     &23& IRDA socket                   &    \\
+       \const{PF\_PPPOX}    &24& PPPoX socket                  &    \\
+       \const{PF\_WANPIPE}  &25& Wanpipe API socket            &    \\
+       \const{PF\_BLUETOOTH}&31& Bluetooth socket              &    \\
        \hline
   \end{tabular}
   \caption{Famiglie di protocolli definiti in Linux.}
@@ -466,7 +466,7 @@ come struttura (un resto di una implementazione precedente in cui questa era
 una \direct{union} usata per accedere alle diverse classi di indirizzi) che
 direttamente come intero. In \file{netinet/in.h} vengono definite anche alcune
 costanti che identificano alcuni indirizzi speciali, riportati in
-tab.~\ref{tab:TCP_ipv4_addr}, che reincontreremo più avanti.
+tab.~\ref{tab:TCP_ipv4_addr}, che rincontreremo più avanti.
 
 Infine occorre sottolineare che sia gli indirizzi che i numeri di porta devono
 essere specificati in quello che viene chiamato \textit{network order}, cioè
@@ -835,7 +835,7 @@ accedere al contenuto della prima variabile, ed infine calcola (\texttt{\small
   11}) il valore della seconda assumendo che il primo byte sia quello meno
 significativo (cioè, per quanto visto in fig.~\ref{fig:sock_endianess}, che sia
 \textit{little endian}). Infine la funzione restituisce (\texttt{\small 12})
-il valore del confonto delle due variabili. 
+il valore del confronto delle due variabili. 
 \itindend{endianess}
 
 
@@ -1016,3 +1016,28 @@ sez.~\ref{sec:IP_ipv6_notation} per IPv6.
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  socket sez cap BSD SVr XTI Transport Interface TCP stream UDP PF
+% LocalWords:  datagram broadcast descriptor sys int domain type protocol errno
+% LocalWords:  EPROTONOSUPPORT ENFILE kernel EMFILE EACCES EINVAL ENOBUFS raw
+% LocalWords:  ENOMEM table family AF address name glibc UNSPEC LOCAL Local IPv
+% LocalWords:  communication INET protocols ip AX Amateur IPX Novell APPLETALK
+% LocalWords:  Appletalk ddp NETROM NetROM Multiprotocol ATMPVC Access to ATM
+% LocalWords:  PVCs ITU ipv PLP DECnet Reserved for project NETBEUI LLC KEY key
+% LocalWords:  SECURITY Security callback NETLINK interface device netlink Low
+% LocalWords:  PACKET level packet ASH Ash ECONET Acorn Econet ATMSVC SVCs SNA
+% LocalWords:  IRDA PPPOX PPPoX WANPIPE Wanpipe BLUETOOTH Bluetooth POSIX bits
+% LocalWords:  dall'header tab SOCK capabilities capability styles DGRAM read
+% LocalWords:  SEQPACKET RDM sockaddr reference void fig Header uint socklen at
+% LocalWords:  addr netinet port len Stevens unsigned short casting nell'header
+% LocalWords:  BIND SERVICE bind union order big endian flowinfo dell'header ll
+% LocalWords:  multicast multicasting local socketpair sun path filesystem AARP
+% LocalWords:  pathname AppleTalk netatalk personal Apple ATPROTO atalk sat if
+% LocalWords:  ANYNET node ANYNODE ATADDR BCAST pcap IEEE linux ether ETH ALL
+% LocalWords:  sll ifindex ethernet halen MAC hatype ARP arp pkttype HOST recv
+% LocalWords:  OTHERHOST OUTGOING recvfrom recvmsg endianess little endtest Mac
+% LocalWords:  Intel Digital Motorola IBM VME PowerPC l'Intel xABCD ptr htonl
+% LocalWords:  all'endianess htons ntohl ntohs long hostlong hostshort netlong
+% LocalWords:  sort netshort host inet aton ntoa dotted decimal const char src
+% LocalWords:  strptr struct dest addrptr INADDR NULL pton ntop presentation af
+% LocalWords:  numeric EAFNOSUPPORT size ENOSPC ENOAFSUPPORT ADDRSTRLEN
index 05ef7acdf85f91f3b044a652c4760e5f47513083..ee6a624362da5b4413104bd7c1a35f961b9509a9 100644 (file)
@@ -1,6 +1,6 @@
 %% system.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -149,7 +149,7 @@ sez.~\ref{sec:sys_file_limits}.
 
 Purtroppo la sezione dello standard che tratta questi argomenti è una delle
 meno chiare\footnote{tanto che Stevens, in \cite{APUE}, la porta come esempio
-  di ``standardese''.}. Lo standard prevede che ci siano 13 macro che
+  di ``\textsl{standardese}''.}. Lo standard prevede che ci siano 13 macro che
 descrivono le caratteristiche del sistema (7 per le caratteristiche generiche,
 riportate in tab.~\ref{tab:sys_generic_macro}, e 6 per le caratteristiche dei
 file, riportate in tab.~\ref{tab:sys_file_macro}).
@@ -1921,8 +1921,8 @@ ricevuto lo stato di terminazione, e lo stesso vale per \var{tms\_cstime}.
 Si tenga conto che l'aggiornamento di \var{tms\_cutime} e \var{tms\_cstime}
 viene eseguito solo quando una chiamata a \func{wait} o \func{waitpid} è
 ritornata. Per questo motivo se un processo figlio termina prima di ricevere
-lo stato di terminazione di tutti i suoi figli, questi processi ``nipoti'' non
-verranno considerati nel calcolo di questi tempi.
+lo stato di terminazione di tutti i suoi figli, questi processi
+``\textsl{nipoti}'' non verranno considerati nel calcolo di questi tempi.
 
 \itindend{process~time}
 
@@ -2681,4 +2681,4 @@ che errori relativi alla stessa linea non vengano ripetuti.
 % LocalWords:  strftime thread EOF modifiable lvalue app errcode strerror LC at
 % LocalWords:  perror string errnum MESSAGES error message ErrCode strtol log
 % LocalWords:  program invocation argv printf print progname exit count fname
-% LocalWords:  lineno one
+% LocalWords:  lineno one  standardese
index 4898087646e57f583b76a82d8e95c7a6bbcf74e3..a129fcec886542b05e95f1aebe7e0c341f4738a9 100644 (file)
@@ -1,6 +1,6 @@
 %% tcpsock.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 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",
@@ -373,7 +373,7 @@ fig.~\ref{fig:TCP_conn_example}: assumendo che l'ultimo ACK della sequenza
 (quello del capo che ha eseguito la chiusura attiva) venga perso, chi esegue
 la chiusura passiva non ricevendo risposta rimanderà un ulteriore FIN, per
 questo motivo chi esegue la chiusura attiva deve mantenere lo stato della
-connessione per essere in grado di reinviare l'ACK e chiuderla correttamente.
+connessione per essere in grado di rinviare l'ACK e chiuderla correttamente.
 Se non fosse così la risposta sarebbe un RST (un altro tipo si segmento) che
 verrebbe interpretato come un errore.
 
@@ -1465,13 +1465,14 @@ delle interfacce di rete locali. In caso di errore si stampa (\texttt{\small
   31}) un messaggio, e si termina (\texttt{\small 32}) immediatamente il
 programma.
 
-Il passo successivo (\texttt{\small 35--39}) è quello di mettere ``in
-ascolto'' il socket; questo viene fatto (\texttt{\small 36}) con la funzione
-\func{listen} che dice al kernel di accettare connessioni per il socket che
-abbiamo creato; la funzione indica inoltre, con il secondo argomento, il
-numero massimo di connessioni che il kernel accetterà di mettere in coda per
-il suddetto socket. Di nuovo in caso di errore si stampa (\texttt{\small 37})
-un messaggio, e si esce (\texttt{\small 38}) immediatamente.
+Il passo successivo (\texttt{\small 35--39}) è quello di mettere ``\textsl{in
+  ascolto}'' il socket; questo viene fatto (\texttt{\small 36}) con la
+funzione \func{listen} che dice al kernel di accettare connessioni per il
+socket che abbiamo creato; la funzione indica inoltre, con il secondo
+argomento, il numero massimo di connessioni che il kernel accetterà di mettere
+in coda per il suddetto socket. Di nuovo in caso di errore si stampa
+(\texttt{\small 37}) un messaggio, e si esce (\texttt{\small 38})
+immediatamente.
 
 La chiamata a \func{listen} completa la preparazione del socket per l'ascolto
 (che viene chiamato anche \textit{listening descriptor}) a questo punto si può
@@ -2590,7 +2591,7 @@ arp who-has anarres tell gont
 
 In questo caso l'andamento dei primi sette pacchetti è esattamente lo stesso
 di prima. Solo che stavolta, non appena inviata la seconda riga, il programma
-si bloccherà nella successiva chiamata a \func{read}, non ottendo nessuna
+si bloccherà nella successiva chiamata a \func{read}, non ottenendo nessuna
 risposta. Quello che succede è che nel frattempo il kernel provvede, come
 richiesto dal protocollo TCP, a tentare la ritrasmissione della nostra riga un
 certo numero di volte, con tempi di attesa crescente fra un tentativo ed il
@@ -2618,7 +2619,7 @@ Come abbiamo accennato in sez.~\ref{sec:net_tcpip_general} ARP 
 che si incarica di trovare le corrispondenze fra indirizzo IP e indirizzo
 hardware sulla scheda di rete. È evidente allora che nel nostro caso, essendo
 client e server sulla stessa rete, è scaduta la voce nella \textit{ARP
-  cache}\footnote{la \textit{ARP chache} è una tabella mantenuta internamente
+  cache}\footnote{la \textit{ARP cache} è una tabella mantenuta internamente
   dal kernel che contiene tutte le corrispondenze fra indirizzi IP e indirizzi
   fisici, ottenute appunto attraverso il protocollo ARP; le voci della tabella
   hanno un tempo di vita limitato, passato il quale scadono e devono essere
@@ -3532,7 +3533,7 @@ notificher
 di end-of-file (\texttt{\small 38--47}) si provvederà a chiudere
 (\texttt{\small 39}) anche il nostro capo del socket e a marcarlo
 (\texttt{\small 40}) nella struttura ad esso associata come inutilizzato.
-Infine dovrà essere ricalcolato (\texttt{\small 41--45}) un eventiale nuovo
+Infine dovrà essere ricalcolato (\texttt{\small 41--45}) un eventuale nuovo
 valore di \var{max\_fd}. L'ultimo passo è (\texttt{\small 46}) chiudere il
 ciclo in quanto in questo caso non c'è più niente da riscrivere all'indietro
 sul socket.
@@ -3554,3 +3555,43 @@ di sez.~\ref{sec:TCP_serv_select}.
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  socket TCP client dell'I multiplexing stream three way handshake
+% LocalWords:  header stack kernel SYN ACK URG syncronize sez bind listen fig
+% LocalWords:  accept connect active acknowledge l'acknowledge nell'header MSS
+% LocalWords:  sequence number l'acknowledgement dell'header options l'header
+% LocalWords:  option MMS segment size MAXSEG window advertized Mbit sec nell'
+% LocalWords:  timestamp RFC long fat close of l'end l'ACK half shutdown CLOSED
+% LocalWords:  netstat SENT ESTABLISHED WAIT IPv Ethernet piggybacking UDP MSL
+% LocalWords:  l'overhead Stevens Lifetime router hop limit TTL to live RST SSH
+% LocalWords:  routing dell'MSL l'IP multitasking well known port ephemeral BSD
+% LocalWords:  ports dall' IANA Assigned Authority like glibc netinet IPPORT AF
+% LocalWords:  RESERVED USERRESERVED rsh rlogin pair socketpair Local Address
+% LocalWords:  Foreing DNS caching INADDR ANY multihoming loopback ssh fuser ip
+% LocalWords:  lsof SOCK sys int sockfd const struct sockaddr serv addr socklen
+% LocalWords:  addrlen errno EBADF descriptor EINVAL ENOTSOCK EACCES EADDRINUSE
+% LocalWords:  EADDRNOTAVAIL EFAULT ENOTDIR ENOENT ENOMEM ELOOP ENOSR EROFS RPC
+% LocalWords:  portmapper htonl tab endianess BROADCAST broadcast any extern fd
+% LocalWords:  ADRR INIT DGRAM SEQPACKET servaddr ECONNREFUSED ETIMEDOUT EAGAIN
+% LocalWords:  ENETUNREACH EINPROGRESS EALREADY EAFNOSUPPORT EPERM EISCONN proc
+% LocalWords:  sysctl filesystem syn retries reset ICMP backlog EOPNOTSUPP RECV
+% LocalWords:  connection queue dell'ACK flood spoofing syncookies SOMAXCONN CR
+% LocalWords:  RDM EWOULDBLOCK firewall ENOBUFS EINTR EMFILE ECONNABORTED NULL
+% LocalWords:  ESOCKTNOSUPPORT EPROTONOSUPPORT ERESTARTSYS connected listening
+% LocalWords:  DECnet read write NONBLOCK fcntl getsockname getpeername name ps
+% LocalWords:  namelen namlen ENOTCONN exec inetd POSIX daytime FullRead count
+% LocalWords:  BUF FullWrite system call INET perror htons inet pton ctime FTP
+% LocalWords:  fputs carriage return line feed superdemone daytimed sleep fork
+% LocalWords:  daemon cunc logging list conn sock exit snprintf ntop ntohs echo
+% LocalWords:  crash superserver L'RFC first ClientEcho stdin stdout fgets main
+% LocalWords:  MAXLINE initd echod ServEcho setgid short nogroup nobody setuid
+% LocalWords:  demonize PrintErr syslog wrapper log error root RTT EOF ctrl ack
+% LocalWords:  while SIGCHLD Signal RESTART sigaction SignalRestart SigHand win
+% LocalWords:  flags select recvfrom debug second compat waiting Nsec ENETDOWN
+% LocalWords:  EPROTO ENOPROTOOPT EHOSTDOWN ENONET EHOSTUNREACH LINGER tcpdump
+% LocalWords:  ECONNRESET advertising PSH SIGTERM strace SIGPIPE gets tcp ARP
+% LocalWords:  cache anarres destination unreachable l'I low watermark RCVLOWAT
+% LocalWords:  SNDLOWAT third fset maxfd fileno ISSET closed how SHUT RD WR eof
+% LocalWords:  RDWR fifo Trip ping fourth CLR sull'I SETSIZE nread break Denial
+% LocalWords:  Service poll POLLIN POLLRDNORM POLLPRI POLLRDBAND POLLOUT events
+% LocalWords:  POLLHUP POLLERR revents pollfd
index 8150d9b81af5f29c9ff0dd58e8f3d8b3ca962772..243177fc3f0048c5f6212597f2276e24f3e9f2bf 100644 (file)
@@ -1,6 +1,6 @@
 %% tcpprot.tex
 %%
-%% Copyright (C) 2002-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2002-2006 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",
@@ -65,3 +65,5 @@ dopo il TCP 
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  sez TCP fig netstat UDP