File system
Unfile system(inacronimoFS) è unastruttura datideputata alla gestione e all'archiviazione deifilesu uncomputer.
Il termine viene utilizzato anche in riferimento alfile system driver,ovvero tutta quella serie di programmi solitamente integrati nelsistema operativoche sono necessari ad operare il file system.
[1]
È importante non confondere i file system con ifile databaseo lebasi di datipiù in generale. Anche se in alcuni casi possono sembrare (superficialmente) sovrapponibili sono progettati per servire casi d'uso molto diversi.
Storia
[modifica|modifica wikitesto]Prima dell'avvento deicomputer,l'espressione "file system" veniva usata per descrivere un metodo di archiviazione e recupero di documenti cartacei.[2] Nel 1961 il termine veniva applicato all'archiviazione informatizzata accanto al significato originale, e a partire dal 1964 se ne affermò l'utilizzo generale.[senza fonte]
Descrizione
[modifica|modifica wikitesto]Più formalmente, un file system è l'insieme dei tipi di dati astratti necessari per la memorizzazione (scrittura), l'organizzazione gerarchica, la manipolazione, la navigazione, l'accesso e la lettura deidati.Di fatto, alcuni file system (come l'NFS) non interagiscono direttamente con i dispositivi di archiviazione.
I file system possono essere rappresentati sia graficamente tramitefile browsersia testualmente tramiteshell testuale.Nella rappresentazione grafica (GUI) è generalmente utilizzata la metafora dellecartelleche contengono documenti (i file) ed altre sottocartelle.
I dispositivi di archiviazione, ad esempio idischi fissisi presentano al sistema operativo comearraydi blocchi di dimensione fissa, generalmente chiamatisettori,tipicamente di 512 byte l'uno. Le operazioni disponibili sono la lettura e la scrittura di un blocco arbitrario, o talvolta di un insieme di blocchi. Basandosi su questo servizio fornito dai dispositivi a blocchi, il file system realizza due livelli di astrazione, che rendono le risorse di memorizzazione di massa facilmente utilizzabili dagli utenti.
Gestione del file system
[modifica|modifica wikitesto]Il software di gestione del file system è responsabile dell'organizzazione di questi settori in file e di tenere traccia di quali settori appartengono a quali file e quali settori invece non sono utilizzati. L'utente ha normalmente la totale libertà di creare nuovi file, cancellare file esistenti (liberando così i blocchi che questi occupavano), e modificare file esistenti (cambiando così anche la loro dimensione e quindi il numero di blocchi occupati).
Il primo livello di astrazione è quello che organizza i settori in un insieme di archivi (file) di dimensioni arbitrarie, che possono andare da zero all'intera dimensione disponibile del dispositivo: ciascun file viene distribuito in un insieme di settori. Normalmente l'utente vede solo un file e non deve preoccuparsi di quali settori sono stati utilizzati per memorizzarlo. Le operazioni disponibili sono la lettura o la scrittura di un blocco di dati di dimensione arbitraria in un punto arbitrario del file. Non tutti i file system hanno bisogno di un dispositivo di archiviazione. Un file system può infatti essere usato per organizzare e rappresentare qualsiasi tipo di dato, sia che sia memorizzato o generato dinamicamente (ad esempio, da una connessione di rete).
Nomi gerarchici dei file
[modifica|modifica wikitesto]Il secondo livello di astrazione è quello che permette di organizzare i file assegnando loro dei nomi gerarchici. I file system tipicamente hanno tabelle di associazione deinomi dei filecon i rispettivi file tramitecollegamenti fisici,usualmente collegando il nome del file a un indice in unatabella di allocazione dei file(file allocation table) di qualche genere, come laFATdi un file systemMS-DOS,o uninodein un file system di tipoUnix.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 esempioestensionio numeri di versione).
I file system gerarchici sono stati uno dei primi interessi di ricerca diDennis Ritchie,uno dei padri fondatori diUnix;le implementazioni precedenti erano ristrette a pochi livelli.
Controllo dell'accesso
[modifica|modifica wikitesto]Il file system viene inoltre utilizzato per memorizzare i dati che servono a controllare l'accesso a ciascun file da parte deiprocessi.I criteri di sicurezza nell'accesso alle operazioni sui file system sono in genere basati suliste di controllo di accesso(access control listo ACL) ocapabilities.Si è scoperta da qualche decina di anni l'inaffidabilità delle ACL, e per questo motivo i sistemi operativi moderni tendono a usare il meccanismo delle capabilities. I file system commerciali usano ancora le ACL. Una ACL permette di definire per ciascun elemento del file system di qualipermessi(lettura, scrittura, modifica ecc.) dispone ciascun utente che accede al sistema.
Funzionalità particolari
[modifica|modifica wikitesto]I file system tradizionali offrono degli strumenti per creare, muovere ed eliminare sia i file che le cartelle, ma non permettono di creare collegamenti addizionali alle cartelle (glihard linkdiUnixedNTFS), o di rinominare i collegamenti padre ( ".." nei sistemi Unix oDOS/Windows) e di creare collegamenti bidirezionali fra i file. Questi file system tradizionali hanno anche dei metodi per creare, muovere, cancellare e troncare i file, e per sostituire o aggiungervi in coda alcuni dati. Invece non permettono di aggiungere dati o troncare in testa un file, impedendo l'inserzione o la cancellazione arbitraria di dati. Le operazioni possibili sono quindi molto asimmetriche e spesso risultano inefficienti in contesti particolari.
Principali tipologie
[modifica|modifica wikitesto]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 odriver.I tipi di file system possono essere classificati infile system per dischi,file system di reteefile system per compiti speciali.In molti casi, nel linguaggio settoriale, si usa il termine file system per intendere la struttura di archiviazione del dispositivo, un modo gergale per dire "cartelle e file", così come visualizzate dalla shell del sistema operativo. Nel gergo comune si è soliti affermare, soprattutto in sistemiGNU/Linux,che il file system vienemontato,per consentire alsistema operativodi accedervi per le operazioni di lettura\scrittura.
File system per memorie di massa
[modifica|modifica wikitesto]Un file system del disco è un file system progettato per memorizzare deifilesu un'unità a disco,che può essere collegata direttamente o indirettamente alcomputer.Esempi di file system del disco sono:
- Amiga FileSystems- OFS, FFS1 e 2, International, PFS,SFSusati suAmiga
- APFS- (Apple File System) Introdotto daApplenel 2016[3]
- BFS (Beos File System)- file system nativo diBeOS
- DFS,ADFS- file system dellaAcorn
- EFS(IRIX) - un vecchio file system a blocchi usato suIRIXperunità di memoria di massarimovibili (DAT, CD-ROM...) precedente all'introduzione diISO 9660
- Ext -Extended file system,il primo file system appositamente progettato perGNU/Linux
- Ext2- Extended File System 2, diffuso su sistemiGNU/Linux
- Ext3- Extended File System 3, diffuso su sistemiGNU/Linux(ext2+journaling)
- Ext4- Extended File System 4, prodotto come stabile dal kernel Linux 2.6.28 (già presente dalla versione 2.6.19 come ext4dev)
- FAT- Usato suDOS,Microsoft Windowse 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 daMicrosofte pensato appositamente permemorie flash
- FFS- Fast File System, usato in vecchi sistemiBSDeAmiga
- HFS- Hierarchal File System, usato suMac OS
- HFS+- Hierarchal File System Plus, usato su Mac OS a partire dallaversione 8.1e sumacOS
- HPFS- High Performance File System, usato suOS/2
- ISO 9660- Usato su dischiCD-ROMeDVD-ROM(anche con estensioniRock RidgeeJoliet)
- Journaled File System(JFS) - disponibile su sistemiGNU/Linux,OS/2,eAIX
- LFS- Log-structured File System
- MINIX- Usato su sistemiMINIX
- NTFS- NT File System. Usato su sistemi basati suWindows NT
- NWFS- NetWare File System. Usato daNovell NetWare
- ReFS- Microsoft (Resilient File System),
- ReiserFS- File system journaling diffuso su sistemiGNU/Linux
- Reiser4- File system journaling successore delReiserFSdiffuso su sistemiGNU/Linux.
- UDF- File system a pacchetti usato su supporti WORM/RW, CD-RW e DVD
- UFS -Unix File System,usato su vecchi sistemiBSD
- UFS2- Unix File System, usato su nuovi sistemiBSD
- 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 suIRIX- Tale filesystem è indicato per unità non rimovibili (HDD...).
- ZFS- Creato dallaSun Microsystems
- Btrfs- Creato dallaOracle Corporation
- WBFS-(Wii Backup File System) Usato per i backup dei giochi della consoleWii
- WAFLOttimizzato per le scritture casuali.
- Protogon- File System introdotto con la build 7955 diWindows 8,disponibile però nella sola versione Server, successivamente modificato intorno alla fine del 2011 inReFSResilient File System
File system distribuito
[modifica|modifica wikitesto]Unfile system distribuitopermette di accedere ai file contenuti su un computer remoto tramiterete,potenzialmente in simultanea da diversi computer. Esempi di file system di rete sono:
- AFS(Andrew File System)
- AppleShare
- CIFS(conosciuto anche comeSMBoSamba)
- Coda
- Global File System(GFS)
- InterMezzo
- InterPlanetary File System(IPFS)
- Lustre
- MagmaFS
- NFS
- 9P
File system per compiti speciali
[modifica|modifica wikitesto]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 dalsistema operativoper 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(accessoFTP)
- lnfs(nomi lunghi)
- nntpfs(netnews)
- procfs(GNU/Linuxe altri, mostra dati sullo stato del sistema e dei processi)
- ROMFS(file system utilizzato nei sistemiμClinux)
- TCFS- Transparent Cryptographic File System. Progettato presso l'Università degli Studi di Salerno, fornisce un layer di cifratura in modo trasparente permettendo l'utilizzo delle primitive open, read write dei sistemi unix.
- TMPFS(file system temporaneo appoggiato sulla memoria di sistema)
- SYSFS(GNU/Linux2.6, sostituisce in parteprocfs)
Note
[modifica|modifica wikitesto]- ^Filesystems,sutldp.org.URL consultato l'8 aprile 2022.
- ^(EN) Florence E. McGill,Indexing and Filing,inOffice practice and business procedure,New York (NY, USA), The Gregg Publishing Co, 1922.URL consultato l'8 aprile 2022.Ospitato suInternet Archive.
- ^Introducing Apple File System - WWDC 2016 - Videos - Apple Developer,sudeveloper.apple.com.URL consultato il 23 giugno 2016.
Voci correlate
[modifica|modifica wikitesto]- Directory
- Disco rigido
- File
- File system virtuale
- Formattazione
- Filesystem Hierarchy Standard
- File system distribuito
- Formato di file
- Memoria di massa
- Partizione (informatica)
- Percorso
- Journaling
Altri progetti
[modifica|modifica wikitesto]- Wikizionariocontiene il lemma di dizionario «file system»
- Wikimedia Commonscontiene immagini o altri file sulfile system
Collegamenti esterni
[modifica|modifica wikitesto]- Mauro Cappelli,file system,inEnciclopedia della scienza e della tecnica,Istituto dell'Enciclopedia Italiana,2007-2008.
- file system,inEnciclopedia della Matematica,Istituto dell'Enciclopedia Italiana,2013.
- (EN)Opere riguardanti file system,suOpen Library,Internet Archive.
- (EN) Denis Howe,file system,inFree On-line Dictionary of Computing.Disponibile con licenzaGFDL
Controllo di autorità | J9U(EN,HE)987007531243305171 |
---|