X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=intro.tex;h=bf2429d5dab145420dbb9d951f1409fd8dc06b2f;hp=7378e59805390b7bad00ca6b1a82598e822d16e3;hb=2a44ed509cb94cf27315aaa8c0b496326b7b9cbd;hpb=5ac64ab2753cbd2198e9b5b17119134b5ef63bc6 diff --git a/intro.tex b/intro.tex index 7378e59..bf2429d 100644 --- a/intro.tex +++ b/intro.tex @@ -1,6 +1,6 @@ %% intro.tex %% -%% Copyright (C) 2000-2012 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2015 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,9 +400,10 @@ programmi delle opportune \textit{system call} che consentano di leggere e scrivere il contenuto. Tutto ciò ha due aspetti: il primo è che il kernel, per il concetto dell'\textit{everything is a file}, deve fornire una interfaccia che consenta di operare sui file, sia che questi corrispondano ai normali file -di dati, sia che siano quei file speciali (i cosiddetti -\index{file!di~dispositivo} file di dispositivo, o \textit{device file}) che -permettono di accedere alle periferiche. +di dati, o ai cosiddetti \index{file!speciali} ``\textsl{file speciali}'', +come \index{file!di~dispositivo} i file di dispositivo (o \textit{device + file}) che permettono di accedere alle periferiche o le fifo ed i socket che +forniscono funzionalità di comunicazione fra processi. Il secondo aspetto è che per poter utilizzare dei normali file di dati il kernel deve provvedere ad organizzare e rendere accessibile in maniera @@ -737,7 +738,7 @@ dispositivi. L'accesso viene gestito attraverso i \textit{file descriptor} che sono rappresentati da numeri interi (cioè semplici variabili di tipo \ctyp{int}). L'interfaccia è definita nell'\textit{header file} \headfile{unistd.h} e la tratteremo in dettaglio in -cap.~\ref{cha:file_unix_interface}. +sez.~\ref{sec:file_unix_interface}. \itindbeg{file~stream} @@ -755,15 +756,15 @@ Unix. Gli \textit{stream} sono oggetti complessi e sono rappresentati da puntatori ad un opportuna struttura definita dalle librerie del C, ad essi si accede sempre in maniera indiretta utilizzando il tipo \code{FILE *}. L'interfaccia è definita nell'\textit{header file} \headfile{stdio.h} e la -tratteremo in dettaglio nel cap.~\ref{cha:files_std_interface}. +tratteremo in dettaglio in sez.~\ref{sec:files_std_interface}. Entrambe le interfacce possono essere usate per l'accesso ai file come agli altri oggetti del VFS, 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 file descriptor. Allo stesso modo devono essere usati i file descriptor -se si vuole ricorrere a modalità speciali di I/O come il -\itindex{file~locking} \textit{file locking} o l'I/O non-bloccante (vedi +(descritte in sez.~\ref{sec:file_fcntl_ioctl}) su un qualunque tipo di oggetto +del VFS occorre usare l'interfaccia standard di Unix con i file +descriptor. Allo stesso modo devono essere usati i file descriptor se si vuole +ricorrere a modalità speciali di I/O come il \itindex{file~locking} +\textit{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 @@ -1036,18 +1037,18 @@ possono recuperare varie (e di norma piuttosto intricate) informazioni è \textbf{Standard} & \textbf{IEEE} & \textbf{ISO} & \textbf{Contenuto} \\ \hline \hline - POSIX.1 & 1003.1 & 9945-1& Interfacce di base \\ - POSIX.1a& 1003.1a& 9945-1& Estensioni a POSIX.1 \\ - POSIX.2 & 1003.2 & 9945-2& Comandi \\ - POSIX.3 & 2003 &TR13210& Metodi di test \\ - POSIX.4 & 1003.1b & --- & Estensioni real-time \\ - POSIX.4a& 1003.1c & --- & \itindex{thread} Thread \\ - POSIX.4b& 1003.1d &9945-1& Ulteriori estensioni real-time \\ - POSIX.5 & 1003.5 & 14519& Interfaccia per il linguaggio ADA \\ - POSIX.6 & 1003.2c,1e& 9945-2& Sicurezza \\ - POSIX.8 & 1003.1f& 9945-1& Accesso ai file via rete \\ - POSIX.9 & 1003.9 & --- & Interfaccia per il Fortran-77 \\ - POSIX.12& 1003.1g& 9945-1& Socket \\ + POSIX.1 & 1003.1 & 9945-1& Interfacce di base. \\ + POSIX.1a& 1003.1a& 9945-1& Estensioni a POSIX.1. \\ + POSIX.2 & 1003.2 & 9945-2& Comandi. \\ + POSIX.3 & 2003 &TR13210& Metodi di test. \\ + POSIX.4 & 1003.1b & --- & Estensioni real-time. \\ + POSIX.4a& 1003.1c & --- & \itindex{thread} Thread. \\ + POSIX.4b& 1003.1d &9945-1& Ulteriori estensioni real-time. \\ + POSIX.5 & 1003.5 & 14519& Interfaccia per il linguaggio ADA. \\ + POSIX.6 & 1003.2c,1e& 9945-2& Sicurezza. \\ + POSIX.8 & 1003.1f& 9945-1& Accesso ai file via rete. \\ + POSIX.9 & 1003.9 & --- & Interfaccia per il Fortran-77. \\ + POSIX.12& 1003.1g& 9945-1& Socket. \\ \hline \end{tabular} \caption{Elenco dei vari standard POSIX e relative denominazioni.} @@ -1361,7 +1362,7 @@ una opportuna macro; queste estensioni sono illustrate nel seguente elenco: presente negli standard con i file di grandi dimensioni, ed in particolare definire le due funzioni \func{fseeko} e \func{ftello} che al contrario delle corrispettive \func{fseek} e \func{ftell} usano il tipo di dato - specifico \type{off\_t} (vedi sez.~\ref{sec:file_fseek}). + specifico \type{off\_t} (vedi sez.~\ref{sec:file_io}). \item[\macro{\_LARGEFILE64\_SOURCE}] definendo questa macro si rendono disponibili le funzioni di una interfaccia alternativa al supporto di valori