X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filedir.tex;h=28326342d99d52478023e86cf421ff773acfae38;hp=30d71caf2719152003dd00200760dbfe78023d7a;hb=cd905cd37ac75847fdbfcc6fb4d2fd094dd808b7;hpb=5af27a7a0ed59f8684593f0c2b300b81576351b0 diff --git a/filedir.tex b/filedir.tex index 30d71ca..2832634 100644 --- a/filedir.tex +++ b/filedir.tex @@ -305,10 +305,11 @@ che non esiste: in questo caso si ha quello che viene chiamato un \textit{dangling link}, letteralmente un \textsl{link ciondolante}. Come accennato i link simbolici sono risolti automaticamente dal kernel -all'invocazione delle varie system call; in \ntab\ si è riportato un elenco -dei comportamenti delle varie funzioni di libreria che operano sui file nei -confronti della risoluzione dei link simbolici, specificando quali seguono il -link simbolico e quali invece possono operare direttamente sul suo contenuto. +all'invocazione delle varie system call; in \tabref{tab:file_symb_effect} si è +riportato un elenco dei comportamenti delle varie funzioni di libreria che +operano sui file nei confronti della risoluzione dei link simbolici, +specificando quali seguono il link simbolico e quali invece possono operare +direttamente sul suo contenuto. \begin{table}[htb] \centering \footnotesize @@ -386,15 +387,15 @@ stringa con un carattere nullo e la tronca alla dimensione specificata da \end{figure} Un caso comune che si può avere con i link simbolici è la creazione dei -cosiddetti \textit{loop}. La situazione è illustrata in \curfig, che riporta -la struttura della directory \file{/boot}. Come si vede si è creato al suo -interno un link simbolico che punta di nuovo a \file{/boot}.\footnote{Questo - tipo di loop è stato effettuato per poter permettere a \cmd{grub} (un - bootloader in grado di leggere direttamente da vari filesystem il file da - lanciare come sistema operativo) di vedere i file in questa directory con lo - stesso path con cui verrebbero visti dal sistema operativo, anche se essi si - trovano, come è solito, su una partizione separata (e che \cmd{grub} - vedrebbe come radice).} +cosiddetti \textit{loop}. La situazione è illustrata in +\figref{fig:file_link_loop}, che riporta la struttura della directory +\file{/boot}. Come si vede si è creato al suo interno un link simbolico che +punta di nuovo a \file{/boot}.\footnote{Questo tipo di loop è stato effettuato + per poter permettere a \cmd{grub} (un bootloader in grado di leggere + direttamente da vari filesystem il file da lanciare come sistema operativo) + di vedere i file in questa directory con lo stesso path con cui verrebbero + visti dal sistema operativo, anche se essi si trovano, come è solito, su una + partizione separata (e che \cmd{grub} vedrebbe come radice).} Questo può causare problemi per tutti quei programmi che effettuano la scansione di una directory senza tener conto dei link simbolici, ad esempio se @@ -919,10 +920,10 @@ su un file, su un link simbolico e su un file descriptor. La struttura \var{stat} usata da queste funzioni è definita nell'header \file{sys/stat.h} e in generale dipende dall'implementazione, la versione -usata da Linux è mostrata in \nfig, così come riportata dalla pagina di -manuale di \func{stat} (in realtà la definizione effettivamente usata nel -kernel dipende dall'architettura e ha altri campi riservati per estensioni -come tempi più precisi, o per il padding dei campi). +usata da Linux è mostrata in \figref{fig:file_stat_struct}, così come +riportata dalla pagina di manuale di \func{stat} (in realtà la definizione +effettivamente usata nel kernel dipende dall'architettura e ha altri campi +riservati per estensioni come tempi più precisi, o per il padding dei campi). \begin{figure}[!htb] \footnotesize @@ -970,7 +971,7 @@ standard POSIX definisce un insieme di macro per verificare il tipo di files, queste vengono usate anche da Linux che supporta pure le estensioni allo standard per i link simbolici e i socket definite da BSD; l'elenco completo delle macro con cui è possibile estrarre l'informazione da \var{st\_mode} è -riportato in \ntab. +riportato in \tabref{tab:file_type_macro}. \begin{table}[htb] \centering \footnotesize @@ -995,9 +996,10 @@ riportato in \ntab. Oltre alle macro di \tabref{tab:file_type_macro} è possibile usare direttamente il valore di \var{st\_mode} per ricavare il tipo di file controllando direttamente i vari bit in esso memorizzati. Per questo sempre in -\file{sys/stat.h} sono definite le costanti numeriche riportate in \ntab. +\file{sys/stat.h} sono definite le costanti numeriche riportate in +\tabref{tab:file_mode_flags}. -Il primo valore dell'elenco di \secref{tab:file_mode_flags} è la maschera +Il primo valore dell'elenco di \tabref{tab:file_mode_flags} è la maschera binaria che permette di estrarre i bit nei quali viene memorizzato il tipo di file, i valori successivi sono le costanti corrispondenti ai singoli bit, e possono essere usati per effettuare la selezione sul tipo di file voluto, con @@ -1132,8 +1134,9 @@ Il sistema mantiene per ciascun file tre tempi. Questi sono registrati nell'inode insieme agli altri attributi del file e possono essere letti tramite la funzione \func{stat}, che li restituisce attraverso tre campi della struttura \var{stat} di \figref{fig:file_stat_struct}. Il significato di detti -tempi e dei relativi campi è riportato nello schema in \ntab, dove si è anche -riportato un esempio delle funzioni che effettuano cambiamenti su di essi. +tempi e dei relativi campi è riportato nello schema in +\tabref{tab:file_file_times}, dove si è anche riportato un esempio delle +funzioni che effettuano cambiamenti su di essi. \begin{table}[htb] \centering @@ -1176,14 +1179,14 @@ quali file necessitano di essere ricompilati o (talvolta insieme anche al tempo di cambiamento di stato) per decidere quali file devono essere archiviati per il backup. Il comando \cmd{ls} (quando usato con le opzioni \cmd{-l} o \cmd{-t}) mostra i tempi dei file secondo lo schema riportato -nell'ultima colonna di \curtab. +nell'ultima colonna di \tabref{tab:file_file_times}. L'effetto delle varie funzioni di manipolazione dei file sui tempi è -illustrato in \ntab. Si sono riportati gli effetti sia per il file a cui si fa -riferimento, sia per la directory che lo contiene; questi ultimi possono -essere capiti se si tiene conto di quanto già detto, e cioè che anche le -directory sono file (che contengono una lista di nomi) che il sistema tratta -in maniera del tutto analoga a tutti gli altri. +illustrato in \tabref{tab:file_times_effects}. Si sono riportati gli effetti +sia per il file a cui si fa riferimento, sia per la directory che lo contiene; +questi ultimi possono essere capiti se si tiene conto di quanto già detto, e +cioè che anche le directory sono file (che contengono una lista di nomi) che +il sistema tratta in maniera del tutto analoga a tutti gli altri. Per questo motivo tutte le volte che compiremo un'operazione su un file che comporta una modifica del nome contenuto nella directory, andremo anche a @@ -1389,7 +1392,7 @@ distinzione dato che in certi casi, mutuando la terminologia in uso nel VMS, si parla dei permessi base come di permessi per \textit{owner}, \textit{group} ed \textit{all}, le cui iniziali possono dar luogo a confusione. Le costanti che permettono di accedere al valore numerico di questi bit nel campo -\var{st\_mode} sono riportate in \ntab. +\var{st\_mode} sono riportate in \tabref{tab:file_bit_perm}. \begin{table}[htb] \centering