Un file system è un meccanismo con il quale i files sono memorizzati sui dischi e sui supporti di memoria di massa e rappresenta 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.
I file system organizzano il contenuto dei dischi in Files e Cartelle, e per quanto riguarda quello su cui si trova il sistema operativo, la gran parte dei files e delle cartelle che vi si trovano, sono creati e gestiti direttamente dalle applicazioni senza l'intervento dell'utente. I files necessari per il corretto funzionamento dei programmi e del sistema operativo, non devono essere mai alterati dall'utente, per non compromettere il funzionamento della macchina. Ogni disco contiene l'indice di tutti i files, generato ed aggiornato automaticamente dal sistema operativo che memorizza per ogni file il nome, la posizione fisica nel disco, le dimensioni in bytes, la data di creazione o modifica, la cartella in cui è contenuto. Il sistema operativo fornisce poi all'utente tutti i programmi per visualizzare l'indice dei dischi e per organizzarne il contenuto, spostando, copiando o cancellando i file, cambiandone il nome, creando nuove cartelle. Alcuni sistemi operativi pongono restrizioni e protezioni sui file, impedendo modifiche ai files di sistema o impedendo la visualizzazione di file che contengono informazioni riservate o personali.
Il file system vede gli hard disks come array di blocchi di dimensione fissa da 512 bytes, chiamati settori. Le operazioni disponibili sono la lettura e la scrittura di un blocco. Ciascun file viene distribuito in un insieme di settori e l'utente non deve preoccuparsi di quali settori sono utilizzati per la memorizzazione, Il software di gestione del file system è responsabile dell'organizzazione di questi settori in files e di tenere traccia del loro collegamento e quali settori non sono utilizzati. E' possibile organizzare i files dando loro dei nomi gerarchici e la loro associazione viene eseguita tramite la tabelle di allocazione dei file (file allocation table).
I file system tradizionali presentano alcuni svantaggi in quanto non permettono di creare collegamenti addizionali alle cartelle, di rinominare i collegamenti padre e di creare collegamenti bidirezionali fra i file. Questi file system tradizionali hanno anche dei metodi per creare, spostare, cancellare e troncare i files, per sostituire o aggiungervi in coda alcuni dati, ma non permettono di aggiungere dati o troncare in testa un file, impedendo l'inserzione o la cancellazione arbitraria di dati, risultando inefficienti in contesti particolari.
Un altro problema dei filesystem é rappresentato dal fatto che se non sono stati smontati correttamente, si può provocare un disallineamento tra quanto è stato scritto su disco e i metadata che dovrebbero localizzarlo, costringendo il sistema operativo a controllare tutto il disco alla ricerca dei disallineamenti per correggerli. I metadata registrano tutte le informazioni che riguardano i file: grandezza e collocazione fisica sul supporto. Ogni volta che si crea, modifica o cancella un file il sistema deve aggiornare i metadata, così da mantenerli sempre allineati, che implica una certa quantità di accessi fisici al disco con tempi relativamente lunghi.
Nel corso della storia informatica, sono stati ideati svariati file system. I sistemi operativi moderni sono spesso in grado di accedere a diversi file system, installando semplicemente un apposito modulo o driver. Esistono file system per dischi (ext, fat, hfs, iso9660, jfs, ntfs ecc.), file system per rete (Samba, Lustre ecc.) e file system per compiti speciali.
S3QL è un filesystem che immagazzina tutti i suoi dati online utilizzando Amazon S3 o server SFTP fornendo un hard disk dinamico di capacità infinita a cui si può accedere da qualsiasi computer connesso alla rete, supporta diverse caratteristiche come symlink e hardlink, e prima dell'upload, i files vengono compressi, criptati e generato un checksum.
FHS rappresenta lo Standard di Gerarchia dei Filesystem, che definisce le directory principali ed il loro contenuto nei sistemi operativi Linux e Unix-like. Il processo di sviluppo di una gerarchia standard per i file system iniziò nell'agosto 1993 con l'idea di ristrutturare la struttura dei file e delle directory di Linux. L'FSSTND (Filesystem Standard) conobbe vari rilasci e con l'aiuto di alcuni membri della comunità di sviluppo BSD, si stabilirono le caratteristiche che accomunavano tutti i sistemi Unix-like, il nome dello standard venne cambiato in Filesystem Hierarchy Standard (FHS).








