| Formati - Gjlg Metamotore |
| Gjlg Metamotore |
Formato di fileIl formato di un certo file è comunemente indicato attraverso l'estensione.In informatica, un formato di file è la convenzione che viene usata per leggere, scrivere e interpretare i contenuti di un file.Poiché i file non sono altro che insiemi ordinati di byte, cioè semplici numeri, per poter associare al loro contenuto cose diverse si usano convenzioni che legano i bytes ad un significato. Ad esempio, un formato di file per immagini può stabilire che i primi due byte sono l'altezza e la larghezza dell'immagine, e i seguenti i colori secondo uno schema preordinato. I file di testo usano vari sistemi di codifica (come il sistema ASCII) per rappresentare lettere e formattazioni diverse. È teoricamente possibile, a meno di leggere manipolazioni, interpretare il contenuto di un file come se fosse codificato secondo un formato diverso da quello con cui è stato creato: i byte letti sono generalmente validi, anche se non dotati di molto senso; ad esempio è possibile leggere un'immagine come se fosse un file musicale, ma molto probabilmente si otterranno solo rumori e non musica. Identificazione del formato di un file Tramite l'estensione Il formato di un certo file è comunemente indicato attraverso l'estensione, che è una serie di lettere (in genere tre, per motivi storici) unita al nome del file attraverso un punto. Ad esempio, "prova.txt" è un file di testo (o meglio, il suo contenuto va interpretato come testo), mentre "prova.jpg" è un'immagine. Tramite "magic number" Il formato di un file può anche essere identificato dai primi due o più byte del file (comunemente detti magic number), ad esempio #! identifica gli script, mentre 0xffd8 identifica le immagini in formato jpg. Tramite metadati espliciti I file system HFS e HFS+ usati sui computer macintosh affiancano ogni file con informazioni dettagliate sul suo formato, il programma che l'ha creato ecc. Un approccio simile è usato con i tipi MIME usati per identificare il formato dei file trasferiti tramite internet. Specifiche Per molti formati sono state pubblicate delle specifiche che descrivono esattamente come i dati devono essere codificati e che possono essere usate per stabilire se un programma specifico tratti correttamente o meno un determinato formato. Non sempre tali specifiche sono disponibili: innanzitutto alcuni formati sono considerati segreti industriali e le loro specifiche non vengono distribuite pubblicamente, come avviene ad esempio per molti dei formati usati dalla suite Microsoft Office; inoltre in molti casi gli sviluppatori non scrivono un documento di specifica separato, ma definiscono il formato solo implicitamente attraverso il programma che lo gestisce. In questo modo i dati salvati con quel programma non possano essere letti con altri programmi simili (il file può sempre essere letto da qualunque programma: ma i dati restano incomprensibili, se non si conosce il formato con cui sono stati salvati). Risalire ai dati originali salvati in un formato sconosciuto è sempre possibile, attraverso un lavoro di reverse engineering, ma è di solito un processo molto lungo e costoso. Se il formato in questione è anche criptato, risalire ai dati diventa praticamente impossibile. Estensione (file) Il termine estensione indica, in informatica, una breve stringa di caratteri alfanumerici aggiunti dopo il nome di un file e separati da quest'ultimo da un punto. L'estensione, essendo aggiunta alla fine del nome, può essere chiamata anche suffisso. Essa permette all'utente di un computer, ma anche ad alcuni software, di distinguere tra i vari formati di file. Le estensioni sono utilizzate in maniera significativa in tutti i sistemi operativi Microsoft, da MS-DOS a Windows XP. Vi sono invece sistemi operativi che adottano metodi differenti di identificazione dei tipi di file, per esempio Unix (che impiega con scopi simili sia i diritti d'accesso che il magic number) e i sistemi operativi del Macintosh precedenti a Mac OS X (che usano type code e creator code). L'utilizzo delle estensioni L'estensione di un file serve a capire di fronte a che tipo di file ci si trovi. Nei sistemi operativi che ne fanno un uso considerevole, nonostante un'estensione possa essere cambiata o rimossa manualmente senza perdere il contenuto informativo del file, il file con estensione sbagliata o senza estensione può essere problematico da utilizzare. Lo scopo fondamentale per cui i progettisti di alcuni sistemi operativi (es. VMS e MS-DOS) introdussero le estensioni nei nomi dei file fu per poter distinguere i file contenenti solo dati da quelli eseguibili. Ad esempio nel DOS, se si digita il nome di un programma indicando solo il nome del file da lanciare (senza specificare l'estensione), il sistema operativo sopperisce cercando tra i file tutti quelli eseguibili con il nome specificato. Per quel che riguarda i file di dati, l'estensione era inizialmente solo un aiuto all'utente. Il sistema operativo si limitava a visualizzarla, dare la possibilità di cambiarla o usarla per impostare dei filtri di ricerca. Le estensioni nelle interfacce grafiche Con l'avvento degli odierni ambienti desktop dotati di interfaccia grafica, l'estensione è divenuta meno nota a gran parte degli utenti; infatti in diversi di di questi ambienti (tipicamente nell'ambito dei sistemi operativi Mac OS e Windows) le estensioni sono nascoste all'utente, che può dedurre il contenuto di un file dall'icona corrispondente. In questi ambienti l'estensione conserva però una grande importanza, perché è in base ad essa che il file manager sceglie automaticamente l'icona da attribuire al file e l'applicazione più adatta a manipolare quel file. Per fare un esempio, i più recenti sistemi operativi della Microsoft, sono provvisti di un elenco che stabilisce una corrispondenza tra le estensioni e le icona ed i programmi ad esse associati. Alcune estensioni molto usate sono preimpostate, per le altre il sistema operativo impara in base alle istruzioni date dall'utente o dalle nuove applicazioni installate. Per quel che riguarda le estensioni dei file eseguibili però non è cambiato molto dai tempi del DOS: solo i file con l'estensione che li qualifica come eseguibili (tipicamente ".exe") possono essere effettivamente eseguiti dal sistema operativo. Estensioni più utilizzate Tra le estensioni oggigiorno più comuni si annoverano: * .txt per file di testo semplice; * .doc per file generati da un programma di videoscrittura; * .htm o .html per pagine web statiche; * .mp3, .ogg o .wav per file contenenti tracce sonore; * .pdf per documenti di tipo PDF; * .png, .gif o .jpg, per file contenenti immagini; * .xls per file contenenti fogli di calcolo; * .zip o .rar per file compressi ... * .exe, .com, .bat e .cmd per programmi e script eseguibili in Windows * .dwg,.dxf per programmi di disegno CAD Limitazioni storiche Le prime versioni del filesystem FAT utilizzato nel DOS e in Windows avevano una limitazione al numero di caratteri utilizzabili per il nome del file (8) e per l'estensione (3) (il sistema è perciò anche chiamato 8.3). Ad esempio, il seguente nome di file: FILENAME.EXT avrebbe sfruttato tutti gli 11 caratteri disponibili. In tali sistemi, il comando dir, che permetteva di ottenere la lista dei file presenti in una cartella, dava un output di questo tipo: Volume in drive A: is LINUX BOOT Volume Serial Number is 2410-07EF Directory for A:\ LDLINUX | SYS | 5480 1999-04-19 23:24 VMLINUZ | | 530921 1999-04-19 23:24 BOOT | MSG | 559 1999-04-19 23:24 EXPERT | MSG | 668 1999-04-19 23:24 GENERAL | MSG | 986 1999-04-19 23:24 KICKIT | MSG | 979 1999-04-19 23:24 PARAM | MSG | 875 1999-04-19 23:24 RESCUE | MSG | 1020 1999-04-19 23:24 SYSLINUX | CFG | 420 1999-04-19 23:24 INITRD | IMG | 878502 1999-04-19 23:24 10 files 1,420,410 bytes 35,840 bytes free La prima colonna contiene i nomi dei file, la seconda le estensioni. Il progresso nelle estensioni Spesso, per scegliere l'estensione da dare ad una certa classe di file si utilizza l'abbreviazione del formato del file (ad esempio .GFX, da graphics, per file grafici, .TXT, da text per solo testo e .MUS per alcuni file musicali). In altri casi, l'estensione è l'abbreviazione o la sigla del programma solitamente utilizzato per utilizzare tali file. In alcuni casi addirittura l'estensione di un file permette di capire da quale versione di un tale programma il file è stato creato. Per esempio, le prime versioni di WordStar utilizzavano l'estensione .WS o .WSn dove n è il numero di versione del programma. Con il tempo, si sono verificati molti casi in cui una stessa estensione è utilizzata con significati diversi Un esempio è .rpm, utilizzata da RPM Package Manager e da RealNetworks RealPlayer (per file RealPlayer Media); un altro può essere .qif condivisa da Quicken Quicken Information Files e QuickTime Image Format (immagini). All'avvento dell'era di Internet, gli utenti Windows erano ancora limitati ad estensioni composte da 3 o meno caratteri, per cui fu possibile distinguere chi stava usando sistemi Windows per creare le sue pagine web da chi utilizzava computer Macintosh o Unix (che non usano il sistema delle estensioni e quindi non impongono vincoli specifici sul nome dei file), in quanto gli utenti Windows erano costretti a nominare le loro pagine con l'estensione .htm (invece che .html). La limitazione sulla lunghezza dell'estensione diventò un problema serio per i programmatori che utilizzavano il linguaggio Java, in quanto si richiedeva che il file con il codice sorgente avesse l'estensione .java mentre il file con il codice oggetto doveva avere l'estensione .class. Microsoft risolse questi problemi quando introdusse nei propri sistemi operativi, basati sul file system FAT, l'estensione VFAT, che permetteva di utilizzare nomi di file ed estensioni più lunghi, e composti da lettere maiuscole e minuscole. L'attuale file system utilizzato nativamente dai sistemi operativi Microsoft, NTFS (nato da una collaborazione tra Microsoft e IBM sul cosiddetto HPFS - High Performance File System, utilizzato in OS/2), non ha limitazioni sulla lunghezza dei nomi e delle estensioni dei file. Per questi motivi con il passare del tempo le estensioni composte da più di 3 caratteri hanno preso piede, anche se la stragrande maggioranza delle estensioni più note sono ancora a 3 caratteri. Problemi di sicurezza In relazione alle impostazioni della shell o del file manager l'estensione del file può non essere visualizzata. Utenti maliziosi che diffondono un virus o un worm possono utilizzare un nome di file come LOVE-LETTER-FOR-YOU.TXT.vbs che verrà visualizzato come LOVE-LETTER-FOR-YOU.TXT se l'utente ha la visualizzazione delle estensioni disabilitata (impostazione predefinita in Windows Explorer). Perciò ad un utente che ha le estensioni nascoste, può sembrare un innocuo file di testo piuttosto che un programma potenzialmente dannoso scritto in VBScript. Le ultime versioni di Windows (a partire da Windows XP Service Pack 2 e Windows Server 2003) includono un database personalizzabile di tipi di file che possono essere considerati dannosi in certe "zone" (inclusi, ma non solo, download dal WWW e allegati e-mail) che le applicazioni possono interrogare e un insieme di API per richiamare i programmi antivirus. Questi meccanismi rimpiazzano i meccanismi inconsistenti e difettosi che le singole applicazioni possiedono. Ci sono due approcci principali: l'uso di una lista nera e l'utilizzo di una tecnica di rilevamento euristica: i malware possono sfuggire al rilevamento semplicemente cambiando forma in un forma semantica equivalente, in modo da diventare abbastanza differente da sfuggire all'antivirus. Questa tecnica, chiamata "polimorfismo", è abbastanza facile e più efficace con linguaggi di scripting. In breve, la maggior parte dei software antivirus possono solo bloccare malware "conosciuti", diventando inutili contro malware modificati o non ancora conosciuti. Il MIME come alternativa alle estensioni Nel contesto di una rete, i file sono considerati come un flusso di bit e non hanno nomi o estensioni. Nell'insieme dei protocolli di Internet l'informazione a proposito di un certo "tipo" riferita a un determinato flusso di bit sono codificate nel MIME Content-type del flusso, rappresentata da una riga di testo in un blocco precedente lo stream, come: Content-type: text/plain Alcuni sistemi operativi e ambienti desktop come BeOS, KDE o GNOME hanno incominciato ad utilizzare i MIME Content-types per segnare i file con metadata appropriati sul tipo di contenuto del file, non avendo più bisogno dell'estensione del file. Per mappare le estensioni dei file in content-types si sfrutta tecniche euristiche, basate sul contenuto del file ma eventualmente anche sull'estensione. Fonte: Wikipedia l'enciclopedia libera. |