File

Da Semantic WikiSUN.

Un file (termine inglese per "archivio") in informatica è un contenitore di informazione digitalizzata. Le informazioni codificate al suo interno sono leggibili solo da software.
Tecnicamente, i dati codificati in un file sono organizzati come una sequenza (di byte), immagazzinati come un solo elemento su una memoria di massa, all'interno del File system (sistema di archivi) esistente su quella data memoria di massa.

cartelle file

Se dal punto di vista dell'utente un file è solitamente un singolo elemento, può succedere che invece fisicamente sia scritto su più zone diverse del supporto che lo ospita: questo fenomeno è molto comune se il supporto di memorizzazione è un disco, 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 la scrittura e il recupero delle informazioni dai vari blocchi fisici.

Ciascun archivio elettronico è dotato di un nome, che è tipicamente organizzato in contenitori denominati directory o cartelle in uno spazio di nomi gerarchico.

Il contenuto dei file è normalmente conforme ad un particolare formato, e per ciascun formato esistono una o più applicazioni che sono in grado di interpretarne e/o di modificarne il contenuto ("aprire" il file).

Alcuni sistemi operativi, come Microsoft Windows e l'MS-DOS, riconoscono il formato di un file in base all'estensione del loro nome; altri, come il Mac OS, da una serie di metadati salvati insieme al file; altri ancora, come Unix, identificano i tipi di file in base ai primi byte del loro contenuto, detti magic number.

Un tipo di file molto comune sono i file di testo ASCII (acronimo di American Standard Code for Information Interchange). Un simile file è una sequenza di caratteri ASCII pura e semplice, tale da poter essere letta ed interpretata nello stesso modo da tutti i sistemi operativi. Il termine "file binario", invece, si riferisce solitamente a tutti i file che non sono di testo ASCII.

Il concetto di file è molto semplice ed elegante: in ultima analisi, un file è una sorgente (o un deposito) di informazioni, che si può leggere e scrivere; questa sorgente/deposito ha anche delle "proprietà" (nome, estensione, flags) che possono essere modificate. Questa definizione si adatta molto bene a molte periferiche ed interfacce hardware; i sistemi operativi Unix e derivati hanno generalizzato il concetto di file tanto da farne una vera filosofia: in Unix tutto è un file, cioè può essere "aperto", "chiuso", "letto", "scritto" eccetera; questi "file speciali" possono essere delle comunicazioni fra processi, delle pipe, delle interfacce hardware o altro ancora: il sistema operativo si occuperà di gestire tutto nel modo appropriato lasciando ai programmi l'illusione di stare usando un normale file.

Indice

Operazioni sui file

Poiché accedere ad un archivio informatico da una memoria di massa è una operazione piuttosto lenta, necessita di una conoscenza dettagliata dell'hardware del computer e crea un rischio di conflitto di risorse fra programmi in esecuzione, queste operazioni sono eseguite dal sistema operativo per conto dei programmi che le richiedono. Le operazioni più comuni, universalmente presenti in tutti i sistemi operativi, sono:

  • Apertura: il programma segnala al sistema operativo che ha necessità di accedere a un certo file. Il sistema operativo controlla che il file esista e che non sia già usato o bloccato, da esso o da un altro programma; crea alcune strutture dati per gestire le operazioni successive e riserva una certa quantità di memoria RAM, detta buffer, per memorizzare i dati in transito da e per il file; restituisce al programma un simbolo (o un handle oppure un indirizzo di memoria fisica) a cui il programma farà riferimento nelle successive operazioni sul file; gli altri programmi possono accedere allo stesso file solo in modo limitato (solo lettura) o non possono accedervi affatto.
  • Chiusura: il programma comunica che non ha più bisogno del file. Tutte le strutture dati e il buffer allocato vengono rilasciate; il sistema operativo elimina il file dalla lista di quelli in uso; gli altri programmi hanno ora libero accesso al file.
  • Lettura: il programma richiede dei dati dal file. Il sistema operativo li legge, li memorizza nel buffer di cui comunica l'ubicazione al programma richiedente.
  • Scrittura: Il programma vuole scrivere dei dati in un file. Per prima cosa memorizza i dati in questione in un buffer, di cui poi comunica l'ubicazione al sistema operativo.

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.

Trasferimento di file

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.

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. Quando le connessioni tra computer erano particolarmente lente, per contenere la dimensione di un file si usavano varie tecniche: per esempio era possibile comprimerlo o suddividere il singolo file in file più piccoli e spedirli singolarmente; queste operazioni potevano richiedere l'uso di programmi specifici. Con l'avvento della banda larga queste operazioni preliminari sui file stanno andando in disuso.

È 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.

Per il trasferimento di grandi quantità di file esistono anche dei servizi web di desktop remoto, che permettono di "parcheggiare" per alcuni mesi i propri file in un archivio privato, cui si accede con username e password. 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.

Recupero dei file

È 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 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.

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 il recupero di file cancellati 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 il recupero dei dati non sia possibile.

Aspetti legali

Ad avviso della Suprema Corte di Cassazione, Sez. VI 13.11.2003, nr. 3449, copiare archivi informatici non costituisce furto: infatti, è da escludere la configurabilità del reato, nel caso di semplice copiatura non autorizzata di file contenuti in un supporto informatico altrui, non comportando tale attività la perdita del possesso della res ('cosa' in latino) da parte del legittimo detentore.

Note

Una sequenza di byte in RAM non è ritenuta solitamente un file, a meno che non sia immagazzinata in un disco virtuale risiedente in RAM. 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.

Voci correlate

Collegamenti esterni

  • [1] File (Inglese)
  • [2] Operazioni base sui file su Windows 7
  • [3] Icone
Strumenti personali