In informatica, un file system è, informalmente, un meccanismo con il quale i file sono immagazzinati e organizzati su un dispositivo di archiviazione, come un hard disk o un CD-ROM. Più formalmente, un file system è l'insieme delle strutture dati e dei metodi che ci permettono la registrazione e l’accesso a dati e programmi presenti in un sistema di calcolo. Di fatto, alcuni file system (come NFS) non interagiscono direttamente con dispositivi di archiviazione. I file system possono essere rappresentati sia testualmente che graficamente tramite browser di file e shell. Nella rappresentazione grafica (GUI) è generalmente utilizzata la metafora delle cartelle che contengono documenti (i file) ed altre cartelle. Un file system è una parte integrante di qualsiasi sistema operativo moderno. L'unico vero compito dei sistemi operativi dei primi microcomputer era proprio la gestione dei file. I file system più comuni si appoggiano a dispositivi di archiviazione che offrono l'accesso ad un array di blocchi di dimensione fissa, generalmente chiamati settori, tipicamente di 512 byte l'uno. Il software di gestione del file system è responsabile dell'organizzazione di questi settori in file e cartelle, e di tenere traccia di quali settori appartengono a quali file, e quali invece non sono utilizzati. Un file system può essere usato per organizzare e rappresentare qualsiasi tipo di dato, sia che sia memorizzato o generato dinamicamente. Ogni sistema operativo supporta uno o più file system. Alcuni file system sono nativi per determinati sistemi, ad esempio FAT32 sotto MS-DOS o Windows9x; ext2, ext3, reiserFS sotto Linux/UNIX e HFS sotto Mac. Altri invece sono comuni a tutti, si pensi ai file system ISO(2) dei CD-ROM. Esistono anche file system basati su TCP/IP (come NFS), che si estendono su piú macchine connesse in rete in maniera del tutto trasparente per l'utente. Un File System (FS) può essere molto grande:decine di migliaia di file, centinaia di gigabyte di disco. Occorre una organizzazione per poter accedere a tutti questi dati in tempi ragionevoli. In particolare, è fondamentale che i tempi di accesso ai singoli file (dati e attributi) NON crescano linearmente con il numero dei file e con lo spazio disco occupato. Si organizzano per tanto i file mediante un sistema di Directory. Per realizzare un file system sono necessarie numerose strutture dati , sia nei dischi che nella memoria centrale. Queste strutture variano a seconda della particolare implementazione, ma in generale in un disco fisso avremo:
Blocco di controllo d’avviamento (boot control block): che contiene l’ informazioni necessarie per l’ avviamento del sistema
Blocchi di controllo delle partizioni (partition control block): ciascuno di essi contiene i dati riguardanti ciascuna partizione, come il numero e la dimensione dei blocchi del disco.
Strutture di directory: utilizzate per organizzare i file
Blocchi descrittori dei file: che contengono molti dettagli dei file, per esempio i permessi d’ accesso ai relativi file, i proprietari ecc…
Per migliorare le prestazioni, conviene mantenere in memoria centrale parte delle informazioni contenute in tali strutture come per esempio:
Struttura di directory: contenete le informazioni delle directory utilizzate di recente
Tabella dei file aperti per ciascun processo.
Tabella globale dei file aperti: contenente una copia del descrittore di ogni file aperto
Si noti che una partizione è priva di una struttura logica (raw partition) se non contiene alcun file system. Il montaggio delle partizioni può avvenire o in uno spazio di nomi separato (a:\ , c:\), come per i sistemi Windows, oppure in una qualsiasi directory. I sistemi operativi moderni si trovano a gestire contemporaneamente file system differenti. Un metodo potrebbe essere quello di scrivere procedure di gestione di file e directory per ciascun file system. Sarebbe però poco efficiente e dispendioso in termini di dimensioni del S.O. Si può invece isolare le funzioni di base delle chiamate di sistema dai dettagli implementativi del singolo file system, introducendo il virtual file system. La natura di accesso diretto dei dischi garantisce flessibilità nell’implementazione dei file. Sorge però il problema di allocare lo spazio disco ai file in modo da avere spreco minimo di memoria e rapidità di accesso. Esistono tre metodi principali per l’ assegnazione dello spazio di un disco:
I file system più utilizzati sono:
File system del disco
File system di rete ( Un file system di rete permette di accedere ai file contenuti su un computer remoto tramite rete, potenzialmente in simultanea da diversi computer).
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.