Revisione dell’introduzione a file e directory

Nella revisione del testo iniziata con le vacanze natalizie, e che procederà lentamente nei prossimi mesi, il precedente quarto capitolo, L’architettura dei file, è stato completamente eliminato.

Trattandosi di una introduzione all’architettura dei file una prima metà dei contenuti (quella di carattere più generale, con i tipi di file, l’albero unico e il significato dei pathname) stati riportati più correttamente all’inizio nel primo capitolo, in una nuova sezione aggiunta fra le due precedenti, volta ad illustrare a grandi linee l’architettura della gestione dei file in un sistema unix-like.

La parte finale del capitolo, dedicata al funzionamento del Virtual File System di Linux (dentry, inode, ecc.) e alla descrizione della strutturazione generica di un filesystem per Linux è invece stata inserita in una nuova sezione iniziale di quello che era il precedente capitolo 5, cui si è aggiunta, essendo strettamente correlata, la parte relativa alla system call mount che in precedenza era trattata molto più avanti, nella sezione sulla gestione del sistema.

Tutte queste parti, essendo alquanto datate, sono state riviste profondamente, se non addirittura, come fatto per la sezione dedicata al funzionamento del Virtual File System, riscritte da zero. Inoltre nella aggiunta della parte relativa alla system call mount si sono trattate in dettaglio alcune delle opzioni avanzate introdotte nei kernel più recenti, come il bind mount e gli shared subtree. In particolare si sono cercate di trattare queste ultime, che al momento non sono documentate neanche nelle pagine di manuale della system call.

PS
Per eseguire un test diretto dei vari flag si è scritto un semplice programma per l’invocazione diretta della della system call mount, che consente di indicare, senza nessun controllo sulla correttezza della stessa, una qualunque combinazione di flag di montaggio. Il programma passa direttamente anche gli altri argomenti della funzione (opzioni del filesystem, tipo del filesystem, sorgente e target)

Il codice del comando è disponibile nel file mymount.c, lanciato con l’opzione -h stampa una breve spiegazione, i vari mount flags si specificano con una lista di nomi seprati da virgole per l’opzione -f. I nomi sono quelli dei corrispondenti flag MS_* togliendo il suffisso MS_ e mettendoli in minuscolo. Il programma è stato anche un buon esercizio sulle funzioni di ricerca sulle stringhe della glibc.

This work by Simone Piccardi is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported.