Loading AI tools
contenitore di dati in formato digitale Da Wikipedia, l'enciclopedia libera
Un file (dall'inglese, pronuncia [ˈfaɪl], italianizzata in /ˈfail/; traducibile come "fascicolo", o "archivio"), in informatica, è un contenitore di dati, tipicamente collocato in un file system, a sua volta registrato su un supporto di memorizzazione digitale.[1][2][3]
Il nome deriva dall'analogia con i sistemi di archiviazione dei dati utilizzati prima dell'avvento dei sistemi informatici che li sostituirono.[4]
Dalla prospettiva dell'utente medio, il file è la minima unità di informazione utilizzabile in un elaboratore. Difatti la totalità delle operazioni comunemente effettuate su un computer implica la creazione, modifica o cancellazione di un file. Le principali interfacce verso la memoria presentate all'utente sono orientate al file. Più in generale un file è una generica raccolta di informazioni, tipicamente strutturata, a cui è assegnato un identificatore ed altre proprietà che ne costituiscono i metadati.[5]
I file all'interno di un sistema informatico sono tipicamente molto numerosi ed eterogenei, e quindi il problema della loro organizzazione e memorizzazione è molto sentito. Per questo motivo nella quasi totalità dei casi i file vengono ricompresi in strutture dati dedicate allo scopo chiamate file system. Incidentalmente il fare parte di un file system è ciò che più marcatamente distingue i file da qualunque altra struttura dati.
La definizione esatta delle caratteristiche di un file varia anche di molto tra i diversi file system. È possibile tuttavia individuarne alcune comuni: [6] [7]
Ogni file ha bisogno di essere associato ad un identificatore univoco per poter essere distinto dagli altri in una medesima collezione. Molto spesso l'identificatore costituisce di una stringa testuale del tipo URI. Il particolare sottotipo di URI utilizzato dipende dal tipo di collezione nel quale risiede il file. Tipicamente i file sono organizzati in directory e come identificatore viene usata l'indicazione della posizione del file all'interno di questa, chiamata "percorso".
Un altro tipo di identificatore, decisamente meno univoco, è il nome del file. Nei sistemi basati su directory il nome coincide con l'ultimo componente del percorso. Questo tipo di identificatore riveste una particolare importanza in sistemi come Microsoft Windows, che decidono come trattare un file sulla base del nome ed in particolare dell'estensione.[8]
I file, quali generici contenitori di dati e spesso anche di grandi dimensioni, sono caratterizzati da una struttura interna ad-hoc.[9] Lo schema di questa struttura definisce il cosiddetto formato del file.[10][11]
Essendo la struttura necessariamente pensata per specifiche applicazioni, spesso è necessario utilizzare specifici programmi per manipolare il file in modo sostanziale. Fanno eccezione a questa «regola» una ristretta selezione di formati di uso particolarmente ampio, tant'è che molti sistemi operativi integrano già strumenti adatti a manipolarli.[9] [8] Sono parte di questa categoria i formati cosiddetti di «testo semplice» poiché basati sulla codifica ASCII oppure Unicode.[12] Tra i più famosi non si possono non citare JSON, TOML, YAML ed XML. In generale si è soliti indicare con il termine «file binario» tutti quei file di cui non è noto il formato, e che quindi se ispezionati in modo naive (ad esempio utilizzando un editor di testo) appaiono come un ammasso incomprensibile di simboli.
Il formato è convenzionalmente indicato attraverso l'estensione del file, ovvero una serie di caratteri suffissi al nome per mezzo di un punto. Ad esempio, un file denominato «prova.txt» va interpretato come file di testo, mentre «prova.jpg» contiene un'immagine JPEG. Molti sistemi operativi, tra cui notoriamente Microsoft Windows ed MS-DOS, usano questo metodo per identificare il tipo dei file.[8][11]
Un altro metodo per indicare il formato del file è includere un indizio all'interno del file stesso. Una strategia comune in questo senso sono i magic number, ovvero delle brevi sequenze di byte poste in posizioni note all'interno del file (tipicamente all'inizio) che possono essere associate univocamente ad un formato.
Questo metodo è comunemente utilizzato in ambienti Unix e Unix-like, dove la presenza della sequenza ASCII #!
(shabang) in testa ad un file segnala la sua natura eseguibile.[13][14][11]
In altri casi, come ad esempio sui sistemi Macintosh e nel file system HFS+, il formato è indicato nei metadati del file. Un approccio simile è usato con i file scambiati via e-mail o sul web, attraverso le intestazioni MIME o gli Internet media type.[11]
Tecnicamente, i dati di un file sono codificati/organizzati in una sequenza di byte in linea con il linguaggio binario usato dal computer, immagazzinati come un solo elemento su una memoria di massa attraverso il file system (sistema di archiviazione) esistente su quella data memoria. Il sistema, quando riceve una richiesta dall'utente (esempio: aprire un file), provvede poi all'operazione inversa di decodifica e visualizzazione, facendo apparire sul video parole e numeri.
Nei primi sistemi di elaborazione i file erano gestiti ed elaborati sequenzialmente, quindi per poter analizzare le ultime modifiche al file bisognava scorrere l'intero file e leggere in fondo le ultime modifiche. Nei sistemi operativi moderni questo non è più vero, dato che il file system provvede ad estrarre l'organizzazione fisica del file ed a riorganizzare il file stesso nel caso sia necessario.
Se dal punto di vista dell'utente un file è solitamente un singolo elemento, può succedere invece che fisicamente sia scritto o risieda su più zone diverse del supporto di memorizzazione che lo ospita: questo fenomeno è molto comune se il supporto di memorizzazione è un disco di memoria, mentre è molto raro su nastri magnetici. Uno dei compiti del sistema operativo è rendere trasparente alle applicazioni la reale suddivisione fisica del file e occuparsi di gestire il recupero delle informazioni in esso contenute (lettura) dai vari blocchi fisici del supporto di memorizzazione e la scrittura.
L'accesso ad un archivio informatico contenuto in una memoria di massa è un'operazione generalmente lenta, che deve essere effettuata secondo il protocollo dell’interfaccia della memoria di massa e che crea rischi di conflitto fra programmi in esecuzione contemporanea.[Chi? Perché?] Per tali motivi[poco convincente] queste operazioni sono eseguite, su richiesta dei programmi che le necessitano, dal sistema operativo che gestisce la coda di accesso e i conflitti. Le operazioni più comuni, universalmente presenti in tutti i sistemi operativi, sono:
Di per sé[di propria iniziativa?] il sistema operativo, tramite il file system, è in grado di compiere le seguenti operazioni:
Un programma non può leggere o scrivere un file se prima non lo ha "aperto", e una volta finito di usarlo lo deve sempre "chiudere" per dare modo al sistema operativo di liberare le risorse occupate.
Si possono utilizzare vari modi e tipologie di connessione diverse per trasferire file in una rete. Per esempio è possibile condividere e trasferire i file in una rete LAN tra due o più computer, utilizzare la posta elettronica, oppure usare dei servizi o programmi appositamente dedicati allo scopo (es. FTP).
Il trasferimento di file attraverso una rete può diventare problematico se non si dispone di una connessione sufficientemente veloce, in particolare se si tratta di file di grosse dimensioni. Per esempio per trasferire un file tramite Internet è opportuno contenerne la dimensione, altrimenti può essere necessario molto tempo per eseguire l'operazione. Per contenere la dimensione di un file è possibile usare varie tecniche: è possibile per esempio comprimerlo o suddividerlo segmenti più piccoli da trasferire singolarmente.
È possibile trasferire uno o più file tramite la comune e-mail. Per il trasferimento via e-mail va tenuto presente che normalmente i fornitori di servizi Internet limitano la dimensione di ogni singolo messaggio: per esempio Gmail limita la dimensione degli allegati in trasmissione e in ricezione a 25 Megabyte. Inoltre l'intera casella e-mail può avere dei limiti nella sua dimensione totale: per esempio Alice, nei contratti ADSL residenziali, limita a 3 Gigabyte la dimensione dell'intero contenuto di un account e-mail. È necessario tenere presente questi limiti quando si inviano file di grandi dimensioni, in modo da non rischiare che l'allegato non venga spedito, o di occupare interamente la casella di posta del destinatario.
In alternativa all'e-mail è possibile usare un programma di messaggistica istantanea, iscrivere il contatto e creare una cartella condivisa. Questi programmi, normalmente, non praticano limitazioni di banda legate all'estensione, alla dimensione e al tipo di file inviato.
L'archivio può essere aperto alle persone desiderate dando loro username e password. Una variante di questi servizi sono quelli di upload remoto che creano una chiave di sessione comune a due utenti iscritti e collegati a Internet; caricato il file, il ricevente deve indicare un percorso dove salvarlo e autorizzarne il download.
È possibile recuperare un file cancellato definitivamente, utilizzando appositi programmi in grado di ripristinarli.
Quando si conferma la cancellazione di un file, per esempio svuotando il cestino di Windows, viene infatti cancellato (logicamente o fisicamente) il solo collegamento fisico esistente tra il nome del file ed il suo contenuto, per cui il file non è più accessibile né all'utente né ai programmi del computer. In assenza di altri collegamenti fisici, anche l'area della memoria di massa occupata dal contenuto dei file viene designata come disponibile per nuovi contenuti, tuttavia essa non viene cancellata o sovrascritta immediatamente, per cui i dati risultano ancora fisicamente disponibili sulla memoria con opportune tecniche fino all'effettiva sovrascrittura.
In particolare i programmi per il recupero dei file esaminano il contenuto di un file system cercando collegamenti fisici cancellati logicamente e controllando le aree occupate dai dati a cui essi fanno riferimento, ricopiandone il contenuto e, se possibile, ricostruendo le parti ormai sovrascritte.
Per prevenire invece il recupero di file cancellati (per esempio per questioni di privacy) esistono programmi che provvedono a sovrascrivere (anche più volte) il contenuto di un file prima di cancellarlo, o a sovrascrivere tutte le aree libere di un file system, in modo che non sia possibile il recupero dei dati.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.