Tutti i file system sono in grado di gestire i file. Per ognuno di essi viene mantenuta una struttura dati che ne memorizza gli attributi quali il tipo, la dimensione, il proprietario, i permessi, i tempi di ultimo accesso e modifica ed altro. In Linux, e più in generale in tutti i sistemi simili a UNIX , questa struttura fondamentale è lo definito in che viene riportato in figura 3.1.
Il campo è molto importante perché descrive il tipo di file ed i suoi permessi associati. I tre principali tipi di file sono: file normale, directory e link simbolico. Un directory si differenzia da un file normale perché contiene altri file (di qualunque tipo). La caratteristica del link simbolico è invece di referenziare indirettamente un altro file esistente e quindi di fungere da punto di accesso ai suoi dati.
In realtà il tipo di ( ) è una maschera di bit che sono utilizzati come interruttori. Il sistema mette a disposizione alcune costanti dal significato intuitivo per impostarne i valori ( ) ed alcune macro per controllarne il contenuto. Queste ultime restituiscono un valore di verità:
Grazie al valore di , come si è accennato, è possibile codificare i permessi di accesso al file. La tecnica utilizzata è la stessa della gestione dei tipi, infatti vengono messi a disposizione nove bit di permessi per ogni file, divisi in tre categorie: utente, gruppo e altri. I termini utente e gruppo si riferiscono al proprietario del file (confrontando all'occorrenza i campi e ). Avendo a disposizione i permessi di lettura, scrittura ed esecuzione, ne segue una tabella di nove elementi, uno per ogni bit lasciato a questa codifica.
Per maggiori dettagli sulla struttura si consulti il capitolo 4 di [Ste96].