X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=intro.tex;h=24e301d50252eafbae2df1ed2e9c9c08b050ca74;hp=fcae6318e600207bc06d1edc4b4216dcdc8f8415;hb=ffb12837c5ed8ccc095bc9c88349cd19b5e6b472;hpb=8088f2df8bef63d425b42fa72f1f863345ec7ac8 diff --git a/intro.tex b/intro.tex index fcae631..24e301d 100644 --- a/intro.tex +++ b/intro.tex @@ -1,6 +1,6 @@ %% intro.tex %% -%% Copyright (C) 2000-2011 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2012 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", @@ -424,12 +424,12 @@ operazioni interne del kernel per la manipolazione sui file con le \textit{system call} relative alle operazioni di I/O, e gestisce poi l'organizzazione di dette operazioni nei vari modi in cui i diversi filesystem le effettuano, permettendo la coesistenza di filesystem differenti all'interno -dello stesso albero delle directory. Torneremo su questa interfaccia generica -fornita dal VFS in sez.~\ref{sec:file_vfs_work}. +dello stesso albero delle directory. Approfondiremo il funzionamento di +interfaccia generica fornita dal VFS in sez.~\ref{sec:file_vfs_work}. In sostanza quello che accade è che quando un processo esegue una \textit{system call} che opera su un file, il kernel chiama sempre una -funzione implementata nel VFS; la funzione eseguirà le manipolazioni sulle +funzione implementata nel VFS. La funzione eseguirà le manipolazioni sulle strutture generiche e utilizzerà poi la chiamata alle opportune funzioni del filesystem specifico a cui si fa riferimento. Saranno queste a chiamare le funzioni di più basso livello che eseguono le operazioni di I/O sul @@ -538,9 +538,10 @@ eseguito una \func{chroot} (funzione su cui torneremo in sez.~\ref{sec:file_chroot}) è la stessa per tutti i processi ed equivale alla directory radice dell'albero dei file; in questo caso si parla di un \textsl{pathname assoluto} \itindsub{pathname}{assoluto}. Altrimenti la -ricerca parte dalla directory di lavoro corrente del processo (su cui -torneremo in sez.~\ref{sec:file_work_dir}) ed il \textit{pathname} è detto -\itindsub{pathname}{relativo} \textsl{pathname relativo}. +ricerca parte dalla \index{directory~di~lavoro} directory di lavoro corrente +del processo (su cui torneremo in sez.~\ref{sec:file_work_dir}) ed il +\textit{pathname} è detto \itindsub{pathname}{relativo} \textsl{pathname + relativo}. Infine i nomi di directory ``\file{.}'' e ``\file{..}'' hanno un significato speciale e vengono inseriti in ogni directory quando questa viene creata (vedi @@ -714,7 +715,7 @@ interno alcune bufferizzazioni per aumentare l'efficienza nell'accesso ai 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} -\file{unistd.h} e la tratteremo in dettaglio in +\headfile{unistd.h} e la tratteremo in dettaglio in cap.~\ref{cha:file_unix_interface}. \itindbeg{file~stream} @@ -732,7 +733,7 @@ specificata dall'ANSI C e perciò si trova anche su tutti i sistemi non 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} \file{stdio.h} e la +L'interfaccia è definita nell'\textit{header file} \headfile{stdio.h} e la tratteremo in dettaglio nel cap.~\ref{cha:files_std_interface}. Entrambe le interfacce possono essere usate per l'accesso ai file come agli @@ -877,7 +878,7 @@ infinita serie di problemi di portabilità. sez.~\ref{sec:proc_access_id}).\\ \hline \end{tabular} - \caption{Elenco dei tipi primitivi, definiti in \file{sys/types.h}.} + \caption{Elenco dei tipi primitivi, definiti in \headfile{sys/types.h}.} \label{tab:intro_primitive_types} \end{table} @@ -885,7 +886,7 @@ 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 \index{tipo!primitivo} \textsl{tipi primitivi} del sistema, riportati in tab.~\ref{tab:intro_primitive_types}, e definiti nell'\textit{header file} -\file{sys/types.h}, in modo da mantenere completamente indipendenti i tipi +\headfile{sys/types.h}, in modo da mantenere completamente indipendenti i tipi utilizzati dalle funzioni di sistema dai tipi elementari supportati dal compilatore C.