X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=intro.tex;h=34ad4e34b673a2f0df5643b496b8981dd869a6e9;hp=2a9c9735ab52ba475dd13effc6fd59fc4b7d76ba;hb=c474f4307db945bc45287edd0ea4c2c29374d0ee;hpb=687f101ae37d793ffda23c39ca8735e127b5fc9d diff --git a/intro.tex b/intro.tex index 2a9c973..34ad4e3 100644 --- a/intro.tex +++ b/intro.tex @@ -73,7 +73,7 @@ opportune chiamate al sistema che restituiranno il controllo al kernel. La memoria viene sempre gestita dal kernel attraverso il meccanismo della \textsl{memoria virtuale}\index{memoria virtuale}, che consente di assegnare a ciascun processo uno spazio di indirizzi ``\textsl{virtuale}'' (vedi -\secref{sec:proc_memory}) che il kernel stesso, con l'ausilio della unità di +sez.~\ref{sec:proc_memory}) che il kernel stesso, con l'ausilio della unità di gestione della memoria, si incaricherà di rimappare automaticamente sulla memoria disponibile, salvando su disco quando necessario (nella cosiddetta area di \textit{swap}) le pagine di memoria in eccedenza. @@ -81,7 +81,7 @@ area di \textit{swap}) le pagine di memoria in eccedenza. Le periferiche infine vengono viste in genere attraverso un'interfaccia astratta che permette di trattarle come fossero file, secondo il concetto per cui \textit{everything is a file}, su cui torneremo in dettaglio in -\capref{cha:file_intro}, (questo non è vero per le interfacce di rete, che +cap.~\ref{cha:file_intro}, (questo non è vero per le interfacce di rete, che hanno un'interfaccia diversa, ma resta valido il concetto generale che tutto il lavoro di accesso e gestione a basso livello è effettuato dal kernel). @@ -164,9 +164,9 @@ Ogni versione di Unix ha storicamente sempre avuto un certo numero di queste chiamate, che sono riportate nella seconda sezione del \textsl{Manuale di programmazione di Unix} (quella cui si accede con il comando \cmd{man 2 }) e Linux non fa eccezione. Queste sono poi state codificate da vari -standard, che esamineremo brevemente in \secref{sec:intro_standard}. Uno +standard, che esamineremo brevemente in sez.~\ref{sec:intro_standard}. Uno schema elementare della struttura del sistema è riportato in -\figref{fig:intro_sys_struct}. +fig.~\ref{fig:intro_sys_struct}. \begin{figure}[htb] \centering @@ -230,7 +230,7 @@ danneggiarsi a vicenda o danneggiare il sistema. Ogni utente è identificato da un nome (l'\textit{username}), che è quello che viene richiesto all'ingresso nel sistema dalla procedura di \textit{login} -(descritta in dettaglio in \secref{sec:sess_login}). Questa procedura si +(descritta in dettaglio in sez.~\ref{sec:sess_login}). Questa procedura si incarica di verificare l'identità dell'utente, in genere attraverso la richiesta di una parola d'ordine (la \textit{password}), anche se sono possibili meccanismi diversi.\footnote{Ad esempio usando la libreria PAM @@ -261,7 +261,7 @@ In questo modo il sistema appartiene ciascun processo ed impedire ad altri utenti di interferire con quest'ultimo. Inoltre con questo sistema viene anche garantita una forma base di sicurezza interna in quanto anche l'accesso ai file (vedi -\secref{sec:file_access_control}) è regolato da questo meccanismo di +sez.~\ref{sec:file_access_control}) è regolato da questo meccanismo di identificazione. Infine in ogni Unix è presente un utente speciale privilegiato, il cosiddetto @@ -314,7 +314,7 @@ di libreria da esso previste. Queste sono dichiarate in una serie di funzioni occorre includere con la direttiva \code{\#include} questi file nei propri programmi; per ciascuna funzione che tratteremo in seguito indicheremo anche gli \textit{header file} necessari ad usarla.} (anch'essi -provvisti dalla \acr{glibc}), In \tabref{tab:intro_posix_header} si sono +provvisti dalla \acr{glibc}), In tab.~\ref{tab:intro_posix_header} si sono riportati i principali \textit{header file} definiti nello standard POSIX, insieme a quelli definiti negli altri standard descritti nelle sezioni successive. @@ -414,7 +414,7 @@ una infinita serie di problemi di portabilit Per questo motivo tutte le funzioni di libreria di solito non fanno riferimento ai tipi elementari dello standard del linguaggio C, ma ad una serie di \textsl{tipi primitivi}\index{tipo!primitivo} del sistema, riportati -in \tabref{tab:intro_primitive_types}, e definiti nell'header file +in tab.~\ref{tab:intro_primitive_types}, e definiti nell'header file \file{sys/types.h}, in modo da mantenere completamente indipendenti i tipi utilizzati dalle funzioni di sistema dai tipi elementari supportati dal compilatore C. @@ -439,11 +439,11 @@ standardizzare l'interfaccia con il sistema operativo. Ma gli standard POSIX non si limitano alla standardizzazione delle funzioni di libreria, e in seguito sono stati prodotti anche altri standard per la shell e i comandi di sistema (1003.2), per le estensioni realtime e per i thread -(1003.1d e 1003.1c) e vari altri. In \tabref{tab:intro_posix_std} è riportata -una classificazione sommaria dei principali documenti prodotti, e di come sono -identificati fra IEEE ed ISO; si tenga conto inoltre che molto spesso si usa -l'estensione IEEE anche come aggiunta al nome POSIX (ad esempio si può parlare -di POSIX.4 come di POSIX.1b). +(1003.1d e 1003.1c) e vari altri. In tab.~\ref{tab:intro_posix_std} è +riportata una classificazione sommaria dei principali documenti prodotti, e di +come sono identificati fra IEEE ed ISO; si tenga conto inoltre che molto +spesso si usa l'estensione IEEE anche come aggiunta al nome POSIX (ad esempio +si può parlare di POSIX.4 come di POSIX.1b). Si tenga presente inoltre che nuove specifiche e proposte di standardizzazione si aggiungono continuamente, mentre le versioni precedenti vengono riviste; @@ -496,11 +496,11 @@ sistema e che sono definite nello standard POSIX.2. Nelle versioni più recenti del kernel e delle librerie sono inoltre supportate ulteriori funzionalità aggiunte dallo standard POSIX.1c per quanto riguarda i -\textit{thread} (vedi \capref{cha:threads}), e dallo standard POSIX.1b per +\textit{thread} (vedi cap.~\ref{cha:threads}), e dallo standard POSIX.1b per quanto riguarda i segnali e lo scheduling real-time -(\secref{sec:sig_real_time} e \secref{sec:proc_real_time}), la misura del -tempo, i meccanismi di intercomunicazione (\secref{sec:ipc_posix}) e l'I/O -asincrono (\secref{sec:file_asyncronous_io}). +(sez.~\ref{sec:sig_real_time} e sez.~\ref{sec:proc_real_time}), la misura del +tempo, i meccanismi di intercomunicazione (sez.~\ref{sec:ipc_posix}) e l'I/O +asincrono (sez.~\ref{sec:file_asyncronous_io}). @@ -611,7 +611,7 @@ presenti neanche in System V) sono state tralasciate. Le funzionalità implementate sono principalmente il meccanismo di intercomunicazione fra i processi e la memoria condivisa (il cosiddetto System -V IPC, che vedremo in \secref{sec:ipc_sysv}) le funzioni della famiglia +V IPC, che vedremo in sez.~\ref{sec:ipc_sysv}) le funzioni della famiglia \func{hsearch} e \func{drand48}, \func{fmtmsg} e svariate funzioni matematiche.