X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filedir.tex;h=90e731ed20cb0229a536f63412314f1814abc5eb;hp=88745775314ce73bbedf66ae7fabcac0c14746b1;hb=2f4922efce6bcac7c6ff10a4c5af7bebccb1f151;hpb=38e861ad46d836f985323de8667f98f107a07d86 diff --git a/filedir.tex b/filedir.tex index 8874577..90e731e 100644 --- a/filedir.tex +++ b/filedir.tex @@ -407,7 +407,7 @@ per i dati in essi contenuti. \end{figure} Se si va ad esaminare con maggiore dettaglio la strutturazione -dell'informazione all'interno del filesystem \textsl{ext2}, tralasciando i +dell'informazione all'interno del filesystem \acr{ext2}, tralasciando i dettagli relativi al funzionamento del filesystem stesso come la strutturazione in gruppi dei blocchi, il \textit{superblock} e tutti i dati di gestione possiamo esemplificare la situazione con uno schema come quello @@ -514,7 +514,7 @@ tre, in quanto adesso sarà referenziata anche dalla voce ``\texttt{..}'' di \itindend{inode} -\subsection{Alcuni dettagli sul filesystem \textsl{ext2} e successori} +\subsection{Alcuni dettagli sul filesystem \acr{ext2} e successori} \label{sec:file_ext2} Benché non esista ``il'' filesystem di Linux, dato che esiste un supporto @@ -525,7 +525,7 @@ grande sviluppo e diverse evoluzioni, fra cui l'aggiunta del \textit{journaling} con il passaggio ad \acr{ext3}, che probabilmente è ancora il filesystem più diffuso, ed una serie di ulteriori miglioramenti con il successivo \acr{ext4}. In futuro è previsto che questo debba essere sostituito -da un filesystem completamente diverso, \acr{btrfs}, che dovrebbe diventare il +da un filesystem completamente diverso, \acr{Btrfs}, che dovrebbe diventare il filesystem standard di Linux, ma questo al momento è ancora in fase di sviluppo.\footnote{si fa riferimento al momento dell'ultima revisione di questo paragrafo, l'inizio del 2012.} @@ -597,8 +597,8 @@ lo schema in fig.~\ref{fig:file_ext2_dirs}; in questo modo è possibile implementare nomi per i file anche molto lunghi (fino a 1024 caratteri) senza sprecare spazio disco. -Con l'introduzione del filesystem \textit{ext3} sono state introdotte diverse -modifiche strutturali, la principale di queste è quella che \textit{ext3} è un +Con l'introduzione del filesystem \acr{ext3} sono state introdotte diverse +modifiche strutturali, la principale di queste è quella che \acr{ext3} è un filesystem \textit{journaled}, è cioè in grado di eseguire una registrazione delle operazioni di scrittura su un giornale (uno speciale file interno) in modo da poter garantire il ripristino della coerenza dei dati del @@ -610,7 +610,7 @@ filesystem\footnote{si noti bene che si è parlato di dati \textsl{del} della corrente o di crollo del sistema che abbia causato una interruzione della scrittura dei dati sul disco. -Oltre a questo \textit{ext3} introduce ulteriori modifiche volte a migliorare +Oltre a questo \acr{ext3} introduce ulteriori modifiche volte a migliorare sia le prestazioni che la semplicità di gestione del filesystem, in particolare per le directory si è passato all'uso di alberi binari con indicizzazione tramite \textit{hash} al posto delle \textit{linked list} che @@ -2363,8 +2363,8 @@ ecc.), e consente di evitare una successiva chiamata a \func{lstat} (vedi sez.~\ref{sec:file_stat}) per determinarlo. I suoi possibili valori sono riportati in tab.~\ref{tab:file_dtype_macro}. Si tenga presente che questo valore è disponibile solo per i filesystem che ne supportano la restituzione -(fra questi i più noti sono \textsl{btrfs}, \textsl{ext2}, \textsl{ext3}, e -\textsl{ext4}), per gli altri si otterrà sempre il valore +(fra questi i più noti sono \acr{Btrfs}, \acr{ext2}, \acr{ext3}, e +\acr{ext4}), per gli altri si otterrà sempre il valore \const{DT\_UNKNOWN}.\footnote{inoltre fino alla versione 2.1 della \acr{glibc}, pur essendo il campo \var{d\_type} presente, il suo uso non era implementato, e veniva restituito comunque il valore \const{DT\_UNKNOWN}.} @@ -4662,8 +4662,8 @@ in particolare accade che: quando l'\ids{UID} effettivo del processo è zero. \end{enumerate*} -Per alcuni filesystem\footnote{i filesystem più comuni (\textsl{ext2}, - \textsl{ext3}, \textsl{ext4}, \textsl{xfs}, \texttt{btrfs}) supportano +Per alcuni filesystem\footnote{i filesystem più comuni (\acr{ext2}, + \acr{ext3}, \acr{ext4}, \acr{XFS}, \acr{Btrfs}) supportano questa caratteristica, che è mutuata da BSD.} è inoltre prevista un'ulteriore misura di sicurezza, volta a scongiurare l'abuso dei bit \acr{suid} e \acr{sgid}; essa consiste nel cancellare automaticamente questi @@ -4986,11 +4986,11 @@ che ogni valore precedente sia sovrascritto. Si tenga presente che non tutti i filesystem supportano gli \textit{Extended Attributes}; al momento della scrittura di queste dispense essi sono -presenti solo sui vari \textsl{extN}, \textsl{ReiserFS}, \textsl{JFS}, -\textsl{XFS}, \textsl{Btrfs}, \textsl{Lustre} e \textsl{OCFS2}. Inoltre a +presenti solo sui vari \acr{extN}, \acr{ReiserFS}, \acr{JFS}, +\acr{XFS}, \acr{Btrfs}, \acr{Lustre} e \acr{OCFS2}. Inoltre a seconda della implementazione ci possono essere dei limiti sulla quantità di attributi che si possono utilizzare.\footnote{ad esempio nel caso di - \textsl{ext2} ed \textsl{ext3} è richiesto che essi siano contenuti + \acr{ext2} ed \acr{ext3} è richiesto che essi siano contenuti all'interno di un singolo blocco, pertanto con dimensioni massime pari a 1024, 2048 o 4096 byte a seconda delle dimensioni di quest'ultimo impostate in fase di creazione del filesystem, mentre con \textsl{XFS} e @@ -6163,12 +6163,20 @@ tramite due distinte opzioni di montaggio, \texttt{usrquota} e i gruppi. Così è possibile usare le limitazioni delle quote o sugli utenti o sui gruppi o su entrambi. +Dal kernel 4.1, ed inizialmente solo per il filesystem XFS, sono diventate +disponibili un terzo tipo di quote, dette \textit{project quota}, che +consentono di applicare delle quote ad un ``\textsl{progetto}'', identificato +come ramo di albero sotto una directory, per il quale possono essere imposti +dei limiti (di nuovo in termini di spazio disco o \textit{inode}) per i file +che ne fanno parte. Si può così porre dei limiti sul contenuto di un ramo di +albero. + Il meccanismo prevede che per ciascun filesystem che supporta le quote disco -(i vari \textit{extN}, \textit{btrfs}, \textit{XFS}, \textit{JFS}, -\textit{ReiserFS}) il kernel provveda sia a mantenere aggiornati i dati -relativi al consumo delle risorse da parte degli utenti e dei gruppi, che a -far rispettare i limiti imposti dal sistema, con la generazione di un errore -di \errcode{EDQUOT} per tutte le operazioni sui file che porterebbero ad un +(i vari \acr{extN}, \acr{Btrfs}, \acr{XFS}, \acr{JFS}, \acr{ReiserFS}) il +kernel provveda sia a mantenere aggiornati i dati relativi al consumo delle +risorse da parte degli utenti e dei gruppi (e del progetto), che a far +rispettare i limiti imposti dal sistema, con la generazione di un errore di +\errcode{EDQUOT} per tutte le operazioni sui file che porterebbero ad un superamento degli stessi. Si tenga presente che questi due compiti sono separati, il primo si attiva al montaggio del filesystem con il supporto per le quote, il secondo deve essere abilitato esplicitamente. @@ -6177,7 +6185,9 @@ Per il mantenimento dei dati di consumo delle risorse vengono usati due file riservati nella directory radice del filesystem su cui si sono attivate le quote, uno per le quote utente e l'altro per le quote gruppo.\footnote{la cosa vale per tutti i filesystem tranne \textit{XFS} che mantiene i dati - internamente.} Con la versione 2 del supporto delle quote, che da anni è + internamente, compresi quelli per le \textit{project quota}, che pertanto, + essendo questo l'unico filesyste che le supporta, non hanno un file ad esse + riservato.} Con la versione 2 del supporto delle quote, che da anni è l'unica rimasta in uso, questi file sono \texttt{aquota.user} e \texttt{aquota.group}, in precedenza erano \texttt{quota.user} e \texttt{quota.group}. @@ -6251,14 +6261,18 @@ gestione delle quote è \funcd{quotactl}, ed il suo prototipo è: % TODO rivedere gli errori La funzione richiede che il filesystem sul quale si vuole operare, che deve -essere specificato con il nome del relativo file di dispositivo -nell'argomento \param{dev}, sia montato con il supporto delle quote -abilitato. Per le operazioni che lo richiedono inoltre si dovrà indicare con -l'argomento \param{id} l'utente o il gruppo (specificati rispettivamente per -\ids{UID} e \ids{GID}) su cui si vuole operare, o altri dati relativi -all'operazione. Alcune operazioni più complesse usano infine -l'argomento \param{addr} per indicare un indirizzo ad un area di memoria il -cui utilizzo dipende dall'operazione stessa. +essere specificato con il nome del relativo file di dispositivo nell'argomento +\param{dev}, sia montato con il supporto delle quote abilitato. Per le +operazioni che lo richiedono inoltre si dovrà indicare con l'argomento +\param{id} l'utente o il gruppo o il progetto (specificati rispettivamente per +\ids{UID}, \ids{GID} o identificativo) su cui si vuole operare,\footnote{nel + caso di \textit{project quota} gli identificativi vengono associati alla + directory base del progetto nel file \file{/etc/projects}, ed impostati con + \cmd{xfs\_quota}, l'argomento è di natura sistemistica e va al di là dello + scopo di questo testo.} o altri dati relativi all'operazione. Alcune +operazioni più complesse usano infine l'argomento \param{addr} per indicare un +indirizzo ad un area di memoria il cui utilizzo dipende dall'operazione +stessa. La funzione prevede la possibilità di eseguire una serie operazioni sulle quote molto diverse fra loro, la scelta viene effettuata tramite il primo @@ -6280,9 +6294,9 @@ macro \macro{QCMD}: La macro consente di specificare, oltre al tipo di operazione, da indicare con l'argomento \param{subcmd}, se questa deve applicarsi alle quote utente o alle -quote gruppo. Questo viene indicato dall'argomento \param{type} che deve -essere sempre definito ed assegnato ad uno fra i due valori \const{USRQUOTA} o -\const{GRPQUOTA}. +quote gruppo o alle quote progetto. Questo viene indicato dall'argomento +\param{type} che deve essere sempre definito ed assegnato ad uno fra i valori +\const{USRQUOTA}, \const{GRPQUOTA} e \const{PRJQUOTA}. \begin{table}[htb] \centering @@ -6762,7 +6776,7 @@ librerie) di cui il server potrebbe avere bisogno. % LocalWords: version libcap lcap clear ncap caps pag capgetp CapInh CapPrm RT % LocalWords: fffffeff CapEff getcap scheduling lookup dqinfo SETINFO GETFMT % LocalWords: NEWNS unshare nice NUMA ioctl journaling close XOPEN fdopendir -% LocalWords: btrfs mkostemp extN ReiserFS JFS Posix usrquota grpquota EDQUOT +% LocalWords: Btrfs mkostemp extN ReiserFS JFS Posix usrquota grpquota EDQUOT % LocalWords: aquota quotacheck limit grace period quotactl cmd caddr addr dqb % LocalWords: QUOTAON ENODEV ENOPKG ENOTBLK GETQUOTA SETQUOTA SETUSE SETQLIM % LocalWords: forced allowed sendmail SYSLOG WAKE ALARM CLOCK BOOTTIME dqstats