In informatica, un file system è, informalmente, un meccanismo con il quale i file sono immagazzinati e organizzati su un dispositivo di archiviazione, come un disco rigido o un CD-ROM. Più formalmente, un file system è l'insieme dei tipi di dati astratti necessari per la memorizzazione, l'organizzazione gerarchica, la manipolazione, la navigazione, l'accesso e la lettura dei dati. Di fatto, alcuni file system (come NFS) non interagiscono direttamente con i dispositivi di archiviazione.
Nel corso della storia informatica, è stata ideata una miriade di file system. I sistemi operativi moderni sono spesso in grado di accedere a diversi file system, spesso semplicemente installando un apposito modulo o driver.
I tipi di file system possono essere classificati in file system per dischi, file system di rete e file system per compiti speciali.
Nel gergo comune si è soliti affermare, soprattutto in sistemi GNU/Linux, che il file system viene montato, per consentire al sistema operativo di accedervi per le operazioni di lettura\scrittura.
File system del disco [modifica]
Un file system del disco è un file system progettato per memorizzare dei file su un'unità a disco, che può essere collegata direttamente o indirettamente al computer.
Esempi di file system del disco sono:
Amiga FileSystems - OFS, FFS1 e 2, International, PFS, SFS usati su Amiga
BFS (Beos File System) - file system nativo di BeOS
DFS, ADFS - file system della Acorn
EFS (IRIX) - un vecchio file system a blocchi usato su IRIX per unità di memoria di massa rimovibili (DAT, CD-ROM...) precedente all'introduzione di ISO 9660
Ext - Extended file system, il primo file system appositamente progettato per GNU/Linux
Ext2 - Extended File System 2, diffuso su sistemi GNU/Linux
Ext3 - Extended File System 3, diffuso su sistemi GNU/Linux (ext2+journaling)
Ext4 - Extended File System 4, rilasciato come stabile dal kernel Linux 2.6.28 (già presente dalla versione 2.6.19 come ext4dev)
FAT - Usato su DOS, Microsoft Windows e su molti dispositivi dedicati, dispone di tabelle a 12 e 16 bit
FAT32 - versione con tabelle a 32 bit di FAT
ExFAT - conosciuto anche come FAT64, creato da Microsoft e pensato appositamente per memorie flash
FFS - Fast File System, usato in vecchi sistemi BSD
HFS - Hierarchal File System, usato su Mac OS
HFS+ - Hierarchal File System Plus, usato su Mac OS a partire dalla versione 8.1 e su Mac OS X
HPFS - High Performance File System, usato su OS/2
ISO 9660 - Usato su dischi CD-ROM e DVD-ROM (anche con estensioni Rock Ridge e Joliet)
Journaled File System (JFS) - disponibile su sistemi GNU/Linux, OS/2, e AIX
LFS - Log-structured File System
Minix - Usato su sistemi Minix
NTFS - NT File System. Usato su sistemi basati su Windows NT
NWFS - NetWare File System. Usato da Novell NetWare
ReiserFS - File system journaling diffuso su sistemi GNU/Linux
Reiser4 - File system journaling successore del ReiserFS diffuso su sistemi GNU/Linux.
UDF - File system a pacchetti usato su supporti WORM/RW, CD-RW e DVD
UFS - Unix File System, usato su vecchi sistemi BSD
UFS2 - Unix File System, usato su nuovi sistemi BSD
UMSDOS - File system FAT esteso con permessi e metadata, usato su GNU/Linux
XFS - eXtended FileSystem: 64 bit in addressing con possibilità di partizione unica di 9 milioni di TB utilizzato su IRIX. Tale filesystem è indicato per unità non rimovibili (HDD...).
ZFS - Creato dalla Sun Microsystems
Btrfs - Creato dalla Oracle Corporation
File system distribuito [modifica]
Un file system distribuito permette di accedere ai file contenuti su un computer remoto tramite rete, potenzialmente in simultanea da diversi computer.
Esempi di file system di rete sono:
AFS (Andrew File System)
AppleShare
CIFS (conosciuto anche come SMB o Samba)
Coda
Global File System (GFS)
InterMezzo
Lustre
MagmaFS
NFS
9P
File system per compiti speciali [modifica]
Alcuni file system vengono utilizzati per compiti speciali che non rientrano direttamente nelle prime due categorie. Molti non hanno alcuna relazione con un supporto di memorizzazione permanente dei dati, ma vengono utilizzati dal sistema operativo per dare accesso ad alcune funzionalità. Alcuni esempi sono:
archfs (archivi)
cdfs (lettura e scrittura di CD)
incdfs (lettura e scrittura di CD o DVD riscrivibili come se fossero floppy, usato nel software Nero)
cfs (caching)
DEVFS (solaris, GNU/Linux, crea dinamicamente i file speciali per dare accesso alle periferiche effettivamente installate)
ftpfs (accesso FTP)
lnfs (nomi lunghi)
nntpfs (netnews)
PROCFS (GNU/Linux e altri, mostra dati sullo stato del sistema e dei processi)
ROMFS (file system utilizzato nei sistemi uClinux)
TMPFS (file system temporaneo appoggiato sulla memoria di sistema)
SYSFS (GNU/Linux 2.6, sostituisce in parte PROCFS)