X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=fileintro.tex;h=c0109833ee15b7258baeb95b84935a84e8efc95f;hb=fbaa0a5900dd5a65fd373dcbca8299ba0bc69493;hp=dfd3081dc67781aa9984a8052d20dc99818db1ea;hpb=efd164169524125422cf9bb80ff70a0b037886a0;p=gapil.git diff --git a/fileintro.tex b/fileintro.tex index dfd3081..c010983 100644 --- a/fileintro.tex +++ b/fileintro.tex @@ -31,13 +31,15 @@ al Cap.~\ref{cha:intro_unix}. Partiamo allora da come viene strutturata nel sistema la disposizione dei file: per potervi accedere il kernel usa una apposita interfaccia che permetta di strutturare l'informazione tenuta sullo spazio grezzo disponibile sui -dischi, cioè quello che si chiama un \textit{filesystem}. +dischi, cioè quello che si chiama un \textit{filesystem} (useremo per brevità +questo nome al posto della più prolissa traduzione italiana sistema di file). Sarà attraverso quest'ultimo che il kernel andrà a gestire l'accesso ai dati memorizzati all'interno del disco stesso, strutturando l'informazione in files -e directory. Per poter accedere ai file contenuti in un disco occorrerà -perciò attivare il filesystem, questo viene fatto \textsl{montando} il disco -(o la partizione del disco). +e directory (su questo aspetto torneremo con maggiori dettagli in +\ref{sec:filedir_filesystem}). Per poter accedere ai file contenuti in un +disco occorrerà perciò attivare il filesystem, questo viene fatto +\textsl{montando} il disco (o la partizione del disco). %In generale un filesystem piazzerà opportunamente sul disco dei blocchi di %informazioni riservate che tengono conto degli inodes allocati, di quelli @@ -127,8 +129,9 @@ una struttura di tipo \texttt{file} in cui viene inserito un puntatore alla dentry e una struttura \verb|f_ops| che contiene i puntatori ai metodi che implementano le operazioni disponibili sul file. In questo modo i processi in user space possono accedere alle operazioni attraverso detti metodi, che -saranno diversi a seconda del tipo di file (o dispositivo) aperto. Un elenco -delle operazioni disponibili è riportato in \ntab. +saranno diversi a seconda del tipo di file (o dispositivo) aperto (su questo +torneremo in dettaglio in \ref{sec:fileunix_fd}). Un elenco delle operazioni +previste dal kernel è riportato in \ntab. \begin{table}[htb] \centering @@ -173,8 +176,9 @@ diversi filesystem (come quelli usati da Windows o MacOs) In unix è implementata da qualunque filesystem standard una forma elementare (ma adatta alla maggior parte delle esigenze) di controllo di accesso ai -files. Torneremo sull'argomento in dettaglio più avanti, qui ci limitiamo ad -una introduzione dei concetti essenziali. +files. Torneremo sull'argomento in dettaglio più avanti (vedi +\ref{sec:filedir_access_control}), qui ci limitiamo ad una introduzione dei +concetti essenziali. Si tenga conto poi che quanto diremo è vero solo per filesystem di tipo Unix, e non è detto che sia applicabile (ed infatti non è vero per il filesystem di @@ -184,7 +188,7 @@ di controllo di accesso molto pi Ad ogni file Unix associa sempre l'utente che ne è proprietario (il cosiddetto \textit{owner}) e il gruppo di appartenenza, secondo il meccanismo degli uid e -gid spiegato in Sez.~\ref{sec:intro_usergroup}, e un insieme di permessi che +gid accennato in Sez.~\ref{sec:intro_usergroup}, e un insieme di permessi che sono divisi in tre classi, e cioè attribuiti rispettivamente al proprietario, a qualunque utente faccia parte del gruppo cui appartiene il file, e a tutti gli altri utenti. @@ -375,3 +379,9 @@ in cui il processo Ritorneremo su questo più avanti, quando tratteremo l'input/output sui file, esaminando in dettaglio come tutto ciò viene realizzato. +Si ricordi infine che in unix non esistono i tipi di file e che non c'è nessun +supporto per le estensioni come parte del filesystem. Ciò non ostante molti +programmi adottano delle convenzioni per i nomi dei file, ad esempio il codice +C normalmente si mette in file con l'estensione .c, ma questa è, appunto, solo +una convenzione. +