File: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m Bot: numeri di pagina nei template citazione
 
(24 versioni intermedie di 12 utenti non mostrate)
Riga 7:
Un '''file''' (dall'[[lingua inglese|inglese]], pronuncia {{IPA|[ˈfaɪl]|en}}, [[lingua italiana|italianizzata]] in {{IPA|/ˈfail/|it}}; 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 [[memoria (informatica)|memorizzazione]] [[digitale (informatica)|digitale]].<ref>{{cita web|url=https://www.oxfordlearnersdictionaries.com/definition/english/file_1|titolo=file_1 noun - Definition, pictures, pronunciation and usage notes|sito=Oxford Advanced Learner's Dictionary at OxfordLearnersDictionaries.com|accesso=15 aprile 2021}}</ref><ref>{{Dipi|file}}</ref><ref>{{cita|Silberscharz, Galvin, Gagne 2019|p. 576}}.</ref>
 
Il nome deriva dall'analogia con i sistemi di archiviazione dei dati utilizzati prima dell'avvento dei sistemi informatici che li sostituirono.<ref>{{Cita libro|autore=Florence E. McGill|titolo = Office practice and business procedure|url=http://archive.org/details/officepracticea01mcgigoog|via=[https://archive.org Internet Archive]|editore=The Gregg Publishing Co|città=New York (NY, USA)|anno= 1922|capitolo=Indexing and Filing|lingua=en|accesso=2022-04-08}}</ref>
|autore = Florence E. McGill
|titolo = Office practice and business procedure
|url = http://archive.org/details/officepracticea01mcgigoog
|via = [https://archive.org Internet Archive]
|editore = The Gregg Publishing Co
|città = New York (NY, USA)
|anno = 1922
|capitolo = Indexing and Filing
|lingua = en
|accesso = 2022-04-08
}}</ref>
 
== Descrizione ==
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]] ede altre proprietà che ne costituiscono i [[metadati]].<ref>{{cita|Silberscharz, Galvin, Gagne 2019|pp. 576-577}}.</ref>
 
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]].
 
=== Elementi caratterizzanti ===
 
La definizione esatta delle caratteristiche di un file varia anche di molto tra i diversi [[file system]]. È possibile tuttavia individuarne alcune comuni:
<ref>{{cita|Silberscharz, Galvin, Gagne 2019|p. 577}}.</ref>
<ref name="xattrs">
{{cita web|url=https://man7.org/linux/man-pages/man7/xattr.7.html|titolo=Extended file attributes|autore=Michael Kerrisk|accesso=14 luglio 2023|lingua=en|postscript=nessuno}};<br>
{{cita web
{{cita web|url=https://www.freedesktop.org/wiki/CommonExtendedAttributes/|titolo=Guidelines for extended attributes|accesso=14 luglio 2023|lingua=en|postscript=nessuno}};<br>
|url = https://man7.org/linux/man-pages/man7/xattr.7.html
{{cita web|url=https://www.lesbonscomptes.com/pages/extattrs.html|titolo=Extended attributes: the good, the not so good, the bad.|data=15 luglio 2014|lingua=en|accesso=14 luglio 2023|postscript=nessuno}};<br>
|titolo = Extended file attributes
{{cita web|url= https://man.freebsd.org/cgi/man.cgi?query=zfsprops&sektion=7&apropos=0&manpath=FreeBSD+13.2-RELEASE+and+Ports|titolo=zfsprops -- native and user-defined properties of ZFS datasets|lingua=en|accesso=14 luglio 2023|postscript=nessuno}};<br>
|autore = Michael Kerrisk
{{cita web|url= https://btrfs.readthedocs.io/en/latest/Common-features.html#file-attributes-xflags|titolo=BTRFS: File attributes and xflags|lingua=en|accesso=14 luglio 2023}}</ref>
|accesso = 14 luglio 2023
|lingua = en
|postscript = nessuno
}};<br>
{{cita web
|url = https://www.freedesktop.org/wiki/CommonExtendedAttributes/
|titolo = Guidelines for extended attributes
|accesso = 14 luglio 2023
|lingua = en
|postscript = nessuno
}};<br>
{{cita web
|url = https://www.lesbonscomptes.com/pages/extattrs.html
|titolo = Extended attributes: the good, the not so good, the bad.
|data = 15 luglio 2014
|lingua = en
|accesso = 14 luglio 2023
|postscript = nessuno
}};<br>
{{cita web
|url = https://man.freebsd.org/cgi/man.cgi?query=zfsprops&sektion=7&apropos=0&manpath=FreeBSD+13.2-RELEASE+and+Ports
|titolo = zfsprops -- native and user-defined properties of ZFS datasets
|lingua = en
|accesso = 14 luglio 2023
|postscript = nessuno
}};<br>
{{cita web
|url = https://btrfs.readthedocs.io/en/latest/Common-features.html#file-attributes-xflags
|titolo = BTRFS: File attributes and xflags
|lingua = en
|accesso = 14 luglio 2023
}}
</ref>
 
==== Identificatore ====
Line 75 ⟶ 32:
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 (informatica)|stringa testuale]] del tipo [[Uniform Resource Identifier|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 ede in particolare dell'[[Estensione (informatica)|estensione]].<ref name="estensioni comuni in MSWIN">{{cita web|url=https://support.microsoft.com/it-it/windows/estensioni-del-nome-di-file-comuni-in-windows-da4a4430-8e76-89c5-59f7-1cdbbc75cb01|titolo = Estensioni del nome di file comuni in Windows}}</ref>
{{cita web
|url = https://support.microsoft.com/it-it/windows/estensioni-del-nome-di-file-comuni-in-windows-da4a4430-8e76-89c5-59f7-1cdbbc75cb01
|titolo = Estensioni del nome di file comuni in Windows
}}
</ref>
 
==== Formato ====
{{vedi anche|Lista di formati di file}}
 
I file, quali generici contenitori di dati e spesso anche di grandi dimensioni, sono caratterizzati da una [[struttura dati|struttura]] interna ad-hoc.<ref name="Silberscharz. Struttura dei file">{{cita|Silberscharz, Galvin, Gagne 2019|ppp. 584-585}}.</ref>
Lo schema di questa struttura definisce il cosiddetto formato del file.<ref>
{{Cita web|url=https://www.computerhope.com/jargon/f/file-format.htm|titolo=What is a File Format?|lingua=en|accesso=2021-10-30}}</ref><ref name="formati_allegato_2_dpcm_3-12-2013.pdf">
{{Cita web
{{cita libro|titolo=Supplemento ordinario alla «Gazzetta Ufficiale» n. 59 del 12 marzo 2014 - Serie generale|url=https://www.gazzettaufficiale.it/eli/gu/2014/03/12/59/so/20/sg/pdf|numero=20|sezione=Allegato 2. Formati|url_capitolo=https://www.agid.gov.it/sites/default/files/repository_files/leggi_decreti_direttive/formati_allegato_2_dpcm_3-12-2013.pdf|collana=[[Gazzetta Ufficiale della Repubblica Italiana]]|data=2014-03-12}}</ref>
|url = https://www.computerhope.com/jargon/f/file-format.htm
|titolo = What is a File Format?
|lingua = en
|accesso = 2021-10-30}}
</ref><ref name="formati_allegato_2_dpcm_3-12-2013.pdf">
{{cita libro
|titolo = Supplemento ordinario alla «Gazzetta Ufficiale» n. 59 del 12 marzo 2014 - Serie generale
|url = https://www.gazzettaufficiale.it/eli/gu/2014/03/12/59/so/20/sg/pdf
|numero = 20
|sezione = Allegato 2. Formati
|url_capitolo = https://www.agid.gov.it/sites/default/files/repository_files/leggi_decreti_direttive/formati_allegato_2_dpcm_3-12-2013.pdf
|collana = [[Gazzetta Ufficiale della Repubblica Italiana]]
|data = 2014-03-12
}}
</ref>
 
Essendo la struttura necessariamente pensata per specifiche applicazioni, spesso è necessario utilizzare specifici programmi per manipolare il file in modo sostanziale.
Line 111 ⟶ 49:
<ref name="estensioni comuni in MSWIN"/>
Sono parte di questa categoria i formati cosiddetti di «[[file di testo|testo semplice]]» poiché basati sulla [[codifica]] [[ASCII]] oppure [[Unicode]].<ref>{{cita libro
|autore=Paul Murrell|titolo=Introduction to Data Technologies|url=https://statmath.wu.ac.at/courses/data-analysis/itdt-2007-11-20.pdf|editore=Chapman and Hall/CRC |città=Auckland|anno=2009|lingua=en|capitolo = 7.5. Plain text files|url_capitolo = https://statmath.wu.ac.at/courses/data-analysis/itdtHTML/node56.html|ISBN = 978-1420065176}}</ref>
|autore = Paul Murrell
Tra i più famosi non si possono non citare [[JSON]], [[TOML]], [[YAML]] e [[XML]].
|titolo = Introduction to Data Technologies
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.
|url = https://statmath.wu.ac.at/courses/data-analysis/itdt-2007-11-20.pdf
|editore = Chapman and Hall/CRC
|città = Auckland
|anno = 2009
|lingua = en
|capitolo = 7.5. Plain text files
|url_capitolo = https://statmath.wu.ac.at/courses/data-analysis/itdtHTML/node56.html
|ISBN = 978-1420065176
}}</ref>
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 (file)|estensione]] del file, ovvero una serie di [[carattere (informatica)|caratteri]] suffissi al nome per mezzo di un punto. Ad esempio, un file denominato «<code>prova.txt»</code> va interpretato come [[file di testo]], mentre «<code>prova.jpg»</code> contiene un'immagine [[JPEG]].
Molti sistemi operativi, tra cui notoriamente [[Microsoft Windows]] ede [[MS-DOS]], usano questo metodo per identificare il tipo dei file.<ref name="estensioni comuni in MSWIN" /><ref name="formati_allegato_2_dpcm_3-12-2013.pdf" />
 
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 ada un formato.
Questo metodo è comunemente utilizzato in ambienti [[Unix]] e [[Unix-like]], dove la presenza della sequenza [[ASCII]] <code>#!</code> (''[[shabang]]'') in testa ada un file segnala la sua natura [[eseguibile]].<ref>
{{cita web|url=https://docs.kernel.org/admin-guide/binfmt-misc.html|titolo=Kernel Support for miscellaneous Binary Formats (binfmt_misc)|accesso=2023-12-21|lingua=en}}</ref><ref>
{{cita web
{{Cita web|url=https://www.ibm.com/support/pages/what-magic-number|titolo=What is a magic number?|data=2003-08-20|lingua=en|accesso=2021-10-30}}</ref><ref name="formati_allegato_2_dpcm_3-12-2013.pdf" />
|url = https://docs.kernel.org/admin-guide/binfmt-misc.html
|titolo = Kernel Support for miscellaneous Binary Formats (binfmt_misc)
|accesso = 2023-12-21
|lingua = en
}}
</ref><ref>
{{Cita web
|url=https://www.ibm.com/support/pages/what-magic-number
|titolo=What is a magic number?
|data=2003-08-20
|lingua=en
|accesso=2021-10-30
}}
</ref><ref name="formati_allegato_2_dpcm_3-12-2013.pdf" />
 
In altri casi, come adper 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 [[intestazione (informatica)|intestazioni]] [[Multipurpose Internet Mail Extensions|MIME]] o gli ''[[Internet media type]]''.<ref name="formati_allegato_2_dpcm_3-12-2013.pdf" />
 
=== ciaoImplementazione ===
{{vedi anche|File system}}
 
Tecnicamente, i dati di un file sono [[codifica]]ti / 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 (per 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 ede 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 rigido|disco di memoria]], mentre è molto raro su nastri magnetici. Uno dei compiti del [[sistema operativo]] è rendere trasparente alle [[applicazione (informatica)|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''.
 
== Operazioni sui gayfile ==
<!-- Ci sono diversi motivi per cui la gestione dei file è appannaggio del SO, quelle addotte sono poco convincenti e spigate troppo superficialmente-->
L'accesso ada un archivio informatico contenuto in una memoria di massa è un'operazione generalmente lenta, che deve essere effettuata secondo il [[Protocollo (informatica)|protocollo]] dell’[[interfaccia]] della memoria di massa {{Chiarire|e che crea rischi di conflitto fra programmi in esecuzione contemporanea.|Chi? Perché?}} {{Chiarire|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:
 
* '''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.
* '''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:''' Ilil 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.
* '''Chiusura:''' il programma comunica che non ha più bisogno del file. Tutte le strutture dati e il buffer allocato vengono rilasciati; il sistema operativo elimina il file dalla lista di quelli in uso; gli altri programmi hanno ora libero accesso al file.
 
{{chiarire|Di per sé|di propria iniziativa?}} ilIl sistema operativo, tramite il file system, è in grado di compiere le seguenti operazioni:
* '''Ridenominazione''': ridenominazione del file tramite assegnazione di un nome diverso.
* '''Sovrascrittura''': sovrascrivere il contenuto di un file con quello di un altro file con lo stesso nome e contenuto.
* '''Eliminazione:''' rimozione del file dalla memoria di massa che lo contiene.
 
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 [[risorsaRisorsa (informatica)di sistema|risorse]] occupate.
 
=== Trasferimento di file ===
{{vedi anche|Trasferimento di file}}
Si possono utilizzare vari modi e tipologie di [[connessione (informatica)|connessione]] diverse per trasferire file in una [[rete informatica|rete]]. Per esempio è possibile condividere e trasferire i file in una rete [[Local Area Network|LAN]] tra due o più [[computer]], utilizzare la [[posta elettronica]], oppure usare dei servizi o programmi appositamente dedicati allo scopo (es.ad esempio [[File Transfer Protocol|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 [[compressione dati|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 [[Internet Service Provider|fornitori di servizi Internet]] limitano la dimensione di ogni singolo messaggio: per esempio [[Gmail]] limita la dimensione degli allegati in [[trasmissione (telecomunicazioni)|trasmissione]] e in ricezione a {{M|25 [[Megabyte]]|ul=MB}}. Inoltre l'intera [[casella e-mail]] può avere dei limiti nella sua dimensione totale: per esempio [[Alice (internet)|Alice]], nei contratti [[ADSL]] residenziali, limita a {{M|3 [[Gigabyte]]|u=GB}} 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 [[velocità di trasmissione|banda]] legate all'estensione, alla dimensione e al tipo di file inviato.
Line 189 ⟶ 104:
È 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 (informatica)|cestino]] di [[Windows]], viene infatti cancellato (logicamente o fisicamente) il solo [[collegamento fisico]] esistente tra il nome del file ede 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.
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.
 
== Formato leggibile meccanicamente ==
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.
La Direttiva (UE) 2019/1024 (cosiddetta ''Open Data'') definisce formato leggibile meccanicamente «un formato di file strutturato in modo tale da consentire alle applicazioni software di individuare, riconoscere ed estrarre facilmente dati specifici, comprese dichiarazioni individuali di fatto e la loro struttura interna» (cfr. art. 2 punto 13).
 
== Note ==
Line 200 ⟶ 118:
== Bibliografia ==
* {{cita libro|autore=[[Andrew Stuart Tanenbaum]]|titolo=Architettura dei calcolatori. Un approccio strutturale|editore=Pearson Education|città=Milano|anno=2006|url=http://books.google.it/books?id=hK8lJ4BPOYcC|pp=440-445|capitolo=File|isbn=978-88-7192-271-3|cid=adc}}
* {{cita libro|autore=Abraham Silberschatz|autore2=Peter Baer Galvin|autore3=Greg Gagne|curatore=Riccardo Melen|traduttore=Pietro Codara|altri=et al.|titolo=Sistemi Operativi. Concetti ed esempi|sezione=Parte sesta. File system|editore=Pearson|città=Milano - Torino|anno=2019|edizione=10|ISBN=978-88-9190-455-3|cid=Silberscharz, Galvin, Gagne 2019}}
* {{cita libro
|autore = Abraham Silberschatz
|autore2 = Peter Baer Galvin
|autore3 = Greg Gagne
|curatore = Riccardo Melen
|traduttore = Pietro Codara
|altri = et al.
|titolo = Sistemi Operativi. Concetti ed esempi
|sezione = Parte sesta. File system
|editore = Pearson
|città = Milano - Torino
|anno = 2019
|edizione = 10
|ISBN = 978-88-9190-455-3
|cid = Silberscharz, Galvin, Gagne 2019
}}
 
== Voci correlate ==
* [[Formato aperto]]
* [[Directory]]
* [[Estensione (informatica)]]