Rialvorata l'introduzione.
authorSimone Piccardi <piccardi@gnulinux.it>
Sat, 23 Jun 2001 11:27:35 +0000 (11:27 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Sat, 23 Jun 2001 11:27:35 +0000 (11:27 +0000)
Makefile
intro.tex
macro.tex
process.tex
signal.tex

index 3ce18629b987c83fa981776a006251a867a8363c..e23ceede40af969a78caa223de23914fdfe89b70 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,13 +1,19 @@
+all: html dvi ps pdf
+
 html:
        latex2html -local_icons main.tex
 
 dvi: 
        latex main.tex
 
+pdf: 
+       pdflatex main.tex
+
 ps: 
        dvips -o gapil.ps main.dvi
 
-all: html dvi ps
+install:
+       scp gapil  piccardi@firenze.linux.it:public_html
 
 clean: 
        rm -f *.dvi *.log *.ps *.html *.aux
\ No newline at end of file
index 4e97e31d6d93385fb1407b1faee49fdfad431dd6..4c871ac0e67b32ce7853f3d6f56df6d0e1365c0c 100644 (file)
--- a/intro.tex
+++ b/intro.tex
@@ -96,7 +96,7 @@ kernel il programmatore deve usare le opportune interfacce che quest'ultimo
 fornisce allo user space. 
 
 
-\subsection{Il kernel e il resto}
+\subsection{Il kernel e il sistema}
 \label{sec:intro_kern_and_sys}
 
 Per capire meglio la distinzione fra kernel space e user space si può prendere
@@ -176,13 +176,13 @@ relizzazione di normali programmi non si hanno differenze pratiche fra l'uso
 di una funzione di libreria e quello di una chiamata al sistema.
 
 
-\subsection{Utenti e gruppi, permessi e protezioni}
-\label{sec:intro_usergroup}
+\subsection{Un sistema multiutente}
+\label{sec:intro_multiuser}
 
-Unix nasce fin dall'inizio come sistema multiutente, cioè in grado di fare
-lavorare più persone in contemporanea. Per questo esistono una serie di
-meccanismi base di sicurezza che non sono previsti in sistemi operativi
-monoutente.
+Linux, come gli altri unix, nasce fin dall'inizio come sistema multiutente,
+cioè in grado di fare lavorare più persone in contemporanea. Per questo
+esistono una serie di meccanismi di sicurezza che non sono previsti in sistemi
+operativi monoutente e che occorre tenere presente.
 
 Il concetto base è quello di utente (\textit{user}) del sistema, utente che ha
 dei ben definiti limiti e capacità rispetto a quello che può fare. Sono così
@@ -206,12 +206,12 @@ essere associato a pi
 accesso ai file e quindi anche alle periferiche, in maniera più flessibile,
 definendo gruppi di lavoro, di accesso a determinate risorse, etc.
 
-L'utente e il gruppo sono identificati da due numeri (la cui corrispondenza ad
-un nome in espresso in caratteri \`e inserita nei due files
-\texttt{/etc/passwd} e \texttt{/etc/groups}). Questi numeri sono
-l'\textit{user identifier}, detto in breve \textit{uid} e il \textit{group
- identifier}, detto in breve \textit{gid} che sono quelli che identificano
-l'utente di fronte al sistema.
+L'utente e il gruppo sono identificati da due numeri (la cui corrispondenza ad
+un nome in espresso in caratteri \`e inserita nei due files
+\texttt{/etc/passwd} e \texttt{/etc/groups}). Questi numeri sono
+l'\textit{user identifier}, detto in breve \textit{uid} e il \textit{group
+ identifier}, detto in breve \textit{gid} che sono quelli che identificano
+l'utente di fronte al sistema.
 
 In questo modo il sistema è in grado di tenere traccia per ogni processo
 dell'utente a cui appartiene ed impedire ad altri utenti di interferire con
index bff8918bc46fec18118ca05b62bb24aaa24db7f1..f1b1bf554332874b091a101c28e8e3b9c73abc5b 100644 (file)
--- a/macro.tex
+++ b/macro.tex
@@ -62,10 +62,12 @@ tab.~\thechapter.\theusercount}
 \newcommand{\secref}[1]{sez.~\ref{#1}}
 %
 % Macro to create a special environment for function prototypes
+% boxed description
 %
-\newenvironment{prototype}[2]{
+\newenvironment{prototype}[2]
+{% defining what is done by \begin
   \center
-   \footnotesize
+  \footnotesize
   \begin{minipage}[c]{14cm}
     \par \texttt{\#include <#1>}
 %    \par \ 
@@ -74,9 +76,35 @@ tab.~\thechapter.\theusercount}
 % #1
 % #2
 %   \end{lstlisting}
+  \begin{list}{}{} 
+    \item 
+}
+{% defining what is done by \end
+  \end{list} 
+  \par 
+\par \texttt{ }
+\end{minipage} 
+\normalsize 
+\par
+}
+\newenvironment{errlist}{\begin{description}}{\end{description}}
+
+%
+% Slighty different envirnoment to be used for multi-header, 
+% multi-functions boxed description
+%
+\newcommand{\headdecl}[1]{\par \texttt{\#include <#1>}}
+\newcommand{\funcdecl}[1]{\par \texttt{#1}}
+\newenvironment{functions}
+{% defining what is done by \begin
+  \center
+   \footnotesize
+  \begin{minipage}[c]{14cm}
+
   \begin{list}{}{} 
     \item }
-{ \end{list} 
+{% defining what is done by \end
+  \end{list} 
   \par 
 \par \texttt{ }
 \end{minipage} 
@@ -84,3 +112,6 @@ tab.~\thechapter.\theusercount}
 \par
 }
 \newenvironment{errlist}{\begin{description}}{\end{description}}
+
+
+
index 0ca84e1ae3d4d6fea72496775311966a3bffbdf5..9cf5f869df8143e9cfee78d62a87f1e36db58fa1 100644 (file)
@@ -435,6 +435,33 @@ maniera indiretta attraverso dei puntatori.
 
 Le funzioni previste dallo standard ANSI C per la gestione della memoria sono
 quattro, i prototipi sono i seguenti:
+\begin{prototypes}
+\headdecl{stdlib.h}
+\funcdecl{void *calloc(size\_t size)}
+  Alloca \texttt{size} bytes nello heap. La memoria viene inizializzata a 0.
+  
+  La funzione restituisce il puntatore alla zona di memoria allocata in caso
+  di successo e \texttt{NULL} in caso di fallimento, nel qual caso
+  \texttt{errno} viene settata a \texttt{ENOMEM}.
+\funcdecl{void *malloc(size\_t size)}
+  Alloca \texttt{size} bytes nello heap. La memoria non viene inizializzata.
+
+  La funzione restituisce il puntatore alla zona di memoria allocata in caso
+  di successo e \texttt{NULL} in caso di fallimento, nel qual caso
+  \texttt{errno} viene settata a \texttt{ENOMEM}.
+\funcdecl{void *realloc(void *ptr, size\_t size)}
+  Cambia la dimensione del blocco allocato all'indirizzo \texttt{ptr}
+  portandola a \texttt{size}.
+
+  La funzione restituisce il puntatore alla zona di memoria allocata in caso
+  di successo e \texttt{NULL} in caso di fallimento, nel qual caso
+  \texttt{errno} viene settata a \texttt{ENOMEM}.
+\funcdecl{void free(void *ptr)}
+  Disalloca lo spazio di memoria puntato da \texttt{ptr}.
+
+  La funzione non ritorna nulla.
+
+\end{prototypes}
 \begin{prototype}{stdlib.h}{void *calloc(size\_t size)}
   Alloca \texttt{size} bytes nello heap. La memoria viene inizializzata a 0.
   
index 49e5d9c3ad5a75ea2703ee3568d83d8c6f64f909..073a4cddfdb577411d76b20af3d7cd26cce64ba7 100644 (file)
@@ -123,7 +123,7 @@ sistema, nel qual caso qualunque tipo di segnale (quello scelto nella
 chiamata) può diventare sincrono o asincrono a seconda che sia generato
 internamente o esternamente al processo.
 
-\section{La notifica dei segnali}
+\subsection{La notifica dei segnali}
 \label{sec:sig_notification}
 
 Quando un segnale viene generato il kernel prende nota del fatto; si dice così
@@ -179,7 +179,7 @@ una \texttt{kill}.
 
 
 
-\subsection{I segnali standard}
+\section{I segnali standard}
 \label{sec:sig_standard}
 
 Esaminiamo ora i vari segnali disponibili e le loro caratteristiche. 
@@ -296,7 +296,7 @@ dell'errore.
 
 Questi segnali sono:
 
-\begin{list}
+\begin{description}
 \item \texttt{SIGFPE} Riporta un errore aritmetico fatale. Benché il nome
   derivi da \textit{floating point exception} si applica a tutti gli errori
   aritmetici compresa la divisione per zero e l'overflow. 
@@ -305,6 +305,7 @@ Questi segnali sono:
 %   molte diverse eccezioni che \texttt{SIGFPE} non distingue, mentre lo
 %   standard IEEE per le operazioni in virgola mobile definisce vaire eccezioni
 %   aritmetiche e richiede che esse siano notificate.  
+
 \item \texttt{SIGILL} Il nome deriva da \textit{illegal instruction},
   significa che il programma sta cercando di eseguire una istruzione
   privilegiata o inesistente, in generale del codice illegale. Poiché il
@@ -339,7 +340,7 @@ Questi segnali sono:
 \item \texttt{SIGSYS} Sta ad indicare che si è eseguta una istruzione che
   richiede l'esecuzione di una system call, ma si è fornito un codice
   sbagliato per quest'ultima.
-\end{list}
+\end{description}
 
 
 \subsection{I segnali di terminazione}