File
Da Wikipedia, l'enciclopedia libera.

Un file (termine inglese per "archivio") in informatica è un insieme di informazioni codificate organizzate come una sequenza (di byte), immagazzinate come un singolo elemento su una memoria di massa, all'interno del File System esistente su quella particolare memoria di massa.
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 file è 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 tipo di file, e per ciascun tipo di file 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 tipo di 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 due byte del loro contenuto, detti magic number.
Un tipo di file molto comune sono i file di testo ASCII. 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 |
[modifica] Operazioni sui file
Poiché accedere a un file da una memoria di massa è una operazione piuttosto lenta, necessita 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 lui 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.
[modifica] Trasferimento di file
Il trasferimento di file, anche compressi, può diventare problematico in assenza di una connessione a banda larga, e per file di alcuni megabyte di dimensione.
Per contenere la dimensione di un file, è possibile suddividerlo in file più piccoli e salvarli in una cartella, all'interno della quale viene aggiunto un file di controllo contenente le informazioni necessarie a ricomporre il file di partenza. L'operazione richiede l'uso di programmi di splitting, che in fase di ricomposizione fanno un merge dei vari file "piccoli" con una operazione di somma binaria.
In allegato a un e-mail possono essere inseriti file fino a 2 megabyte di dimensione, rischiando di occupare interamente la casella di posta del destinatario, perché tipicamente i fornitori di servizi Internet mettono a disposizione gratuitamente circa 5 - 10 megabyte di spazio per ogni casella e-mail col limite massimo di 2 megabyte per gli allegati. Pochi provider forniscono (gratuitamente e non) dimensioni superiori, come un Gigabyte di spazio o più, e ammettono allegati fino a 10 megabyte di dimensione massima. Questi limiti valgono sia per l'account di chi invia l'e-mail che per quello del ricevente.
In alternativa, per file di dimensione superiore ai 2 / 10 megabyte, è possibile usare un programma di messanger, iscrivere il contatto e creare una cartella condivisa. I programmi di messaggeria istantanea non praticano limitazioni di banda legati all'estensione e al tipo di file inviato.
Comprimendo il file, e scegliendo un'opzione di Windows che permette di modificare l'estensione dei file salvati, è possibile nascondere forma e contenuto dei file ai software di rete che praticano tali limitazioni di banda.
Altra opzione sono i servizi web di desktop remoto che permettono di parcheggiare per alcuni mesi i propri file in un'archivio privato, cui si accede con user e password. L'archivio può essere aperto alle persone desiderate, temporaneamente, cambiando in un secondo momento la 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 salvare il file, e autorizzare il download.
Un ulteriore opzione è l'installazione nei due computer di programmi leggeri e gratuiti per la diagnostica e il controllo da remoto, come daemaware. Chi deve ricevere il file si iscrive all'interno di una rete, oppure comunica il suo indirizzo IP; chi invia, apre il client, chiede di confermare il permesso ad assumere il controllo remoto del PC dell'altro utente, che vedrà dal vivo muoversi il cursore e tutte le operazioni per il salvataggio del file.
In maniera analoga, si possono installare programmi che utilizzano il File transfert protocol e richiederanno di indicare l'indirizzo IP del destinatario. In questo modo, avviene un trasferimento diretto fra due computer, senza passare per un server intermedio, a maggiore garanzia della privacy e della sicurezza informatica. Per rilevare il proprio indirizzo IP al momento della connessione è sufficiente aprire il prompt di DOS ed eseguire il comando ipconfig.
[modifica] Aspetti legali
Ad avviso della Suprema Corte di Cassazione, Sez. VI 13.11.2003, nr. 3449, copiare file 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 da parte del legittimo detentore.
[modifica] 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 astrarre l'organizzazione fisica del file ed a riorganizzare il file nel caso sia necessario.
[modifica] Voci correlate
Portale Informatica: accedi alle voci di Wikipedia che parlano di Informatica