File system
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 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 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.
| Indice |
Caratteristiche e storia dei file system
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 - un fatto che si riflette nei loro nomi (vedi DOS o QDOS).
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. Ma i file system non hanno necessariamente bisogno di un dispositivo di archiviazione. Un file system può essere usato per organizzare e rappresentare qualsiasi tipo di dato, sia che sia memorizzato o generato dinamicamente (ad esempio, da una connessione di rete).
I file system tipicamente hanno tabelle che associano i nomi dei file con i file, usualmente collegando il nome del file ad un indice in una tabella di allocazione dei file (file allocation table) di qualche genere, come la FAT di un file system MS-DOS, o un inode in un file system di tipo Unix. Le strutture di cartelle possono essere ad un solo livello, oppure possono permettere una struttura gerarchica in cui delle cartelle possono contenere sottocartelle. In alcuni file system i nomi dei file sono strutturati con una speciale sintassi (per esempio estensioni o numeri di versione).
Criteri di sicurezza nell'accesso alle operazioni sui file system sono in genere basati su liste di controllo di accesso (access control list o ACL). Una ACL permette di definire per ciascun elemento del file system di quali permessi (lettura, scrittura, modifica ecc.) dispone ciascun utente che accede al sistema.
I tipi di file system possono essere classificati in file system per dischi, file system di rete e file system per compiti speciali.
I file system gerarchici sono stati uno dei primi interessi di ricerca di Dennis Ritchie, uno dei padri fondatori di Unix; le implementazioni precedenti erano ristrette a pochi livelli.
Principali file system
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.
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 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 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.
Caratteristiche e storia dei file system
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 - un fatto che si riflette nei loro nomi (vedi DOS o QDOS).
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. Ma i file system non hanno necessariamente bisogno di un dispositivo di archiviazione. Un file system può essere usato per organizzare e rappresentare qualsiasi tipo di dato, sia che sia memorizzato o generato dinamicamente (ad esempio, da una connessione di rete).
I file system tipicamente hanno tabelle che associano i nomi dei file con i file, usualmente collegando il nome del file ad un indice in una tabella di allocazione dei file (file allocation table) di qualche genere, come la FAT di un file system MS-DOS, o un inode in un file system di tipo Unix. Le strutture di cartelle possono essere ad un solo livello, oppure possono permettere una struttura gerarchica in cui delle cartelle possono contenere sottocartelle. In alcuni file system i nomi dei file sono strutturati con una speciale sintassi (per esempio estensioni o numeri di versione).
Criteri di sicurezza nell'accesso alle operazioni sui file system sono in genere basati su liste di controllo di accesso (access control list o ACL). Una ACL permette di definire per ciascun elemento del file system di quali permessi (lettura, scrittura, modifica ecc.) dispone ciascun utente che accede al sistema.
I tipi di file system possono essere classificati in file system per dischi, file system di rete e file system per compiti speciali.
I file system gerarchici sono stati uno dei primi interessi di ricerca di Dennis Ritchie, uno dei padri fondatori di Unix; le implementazioni precedenti erano ristrette a pochi livelli.
Principali file system
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.
File system del disco
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 - il Be File System usato su BeOS
- DFS , ADFS - file system della Acorn
- EFS (IRIX) - un vecchio file system a blocchi usato su IRIX
- Ext2 - Extended filesystem 2, diffuso su sistemi GNU Linux
- Ext3 - Extended filesystem 3, diffuso su sistemi GNU Linux (ext2+journaling)
- 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
- FFS - Fast File System, usao in vecchi sistemi BSD
- HFS - Hierarchal Filesystem, usato su vecchie versioni di Mac OS
- HFS+ - Hierarchal Filesystem Plus, usato sulle versioni recenti di Mac OS e su Mac OS X
- HPFS - High Performance Filesystem, usato su OS/2
- ISO 9660 - Usato su dischi CD-ROM e DVD-ROM (anche con estensioni Rock Ridge e Joliet)
- JFS - Journaling Filesystem, disponibile su sistemi GNU Linux, OS/2, e AIX
- LFS - Log-structured filesystem
- Minix - Usato su sistemi Minix
- NTFS - Usato su sistemi basati su Windows NT
- ReiserFS - Filesystem journaling, diffuso su sistemi GNU Linux
- UDF - File system a pacchetti usato su supporti WORM/RW, CD-RW e DVD
- UFS - Unix Filesystem, usato su vecchi sistemi BSD
- UFS2 - Unix Filesystem, usato su nuovi sistemi BSD
- UMSDOS - file system FAT esteso con permessi e metadata, usato su GNU Linux
- XFS - Usato su sistemi IRIX
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.
Esempi di file system di rete sono:
- AFS (Andrew File System)
- AppleShare
- CIFS (conosciuto anche come SMB o Samba)
- Coda
- GFS
- InterMezzo
- Lustre
- NFS
File system per compiti speciali
Alcuni file system vengono utlizzati 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:
- acme (Plan 9) (finestre di testo)
- archfs (archivi)
- cdfs (lettura e scrittura di CD)
- 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)
- plumber (Plan 9) (comunicazioni interprocesso - pipes)
- PROCFS (GNU Linux e altri, mostra dati sullo stato del sistema e dei processi)
- ROMFS
- TMPFS (file system temporaneo appoggiato sulla memoria di sistema)
- SYSFS (GNU Linux 2.6, sostituisce in parte PROCFS)
- wikifs (wiki wiki)
