PROGRAMMIAMO
File - Contenuto dei file
Contenuto di un file ed elaborazione

Nella precedente lezione abbiamo visto come l'estensione serva per associare un tipo di file con un programma predefinito usato per aprirlo. Per esempio l'estensione .jpg ci permette di aprire automaticamente i file contenenti immagini con un programma per la visualizzazione di immagini. Tuttavia il programma non ci mostra il reale contenuto del file ma la sua elaborazione da parte del programma stesso.

Un'analogia forse ci aiuterà a capire un po' meglio questa importante distinzione. Consideriamo un musicista che esegua un pezzo al pianoforte leggendolo su una partitura. Ciò che noi ascoltiamo non è la partitura (scritta con la notazione musicale) ma l'interpretazione che ne dà il musicista. Allo stesso modo, quando noi guardiamo una foto sul nostro computer noi non vediamo realmente il contenuto del file, ma il risultato della sua elaborazione da parte del programma di visualizzazione.

Esecuzione di una partitura musicale

I file sono un flusso di dati binari

In realtà dal punto di vista del contenuto "reale" tutti i file sono uguali: infatti contengono tutti una sequenza di valori binari (0 e 1) e questo indipendentemente dal loro tipo (cioè sia che si tratti di documenti, di immagini, suoni eccetera). Il sistema operativo nasconde il reale contenuto binario dei file perché, quando apriamo un file, viene eseguito un programma che si occupa di interpretarne il contenuto.

Per visualizzare il reale contenuto dei file occorre usare un editor binario (o editor esadecimale). Si tratta di un tipo di programma in grado di aprire qualsiasi file e di visualizzarne il reale contenuto binario: ce ne sono molti disponibili gratuitamente in rete, anche in versione portable.

La figura seguente mostra per esempio il contenuto iniziale di un file immagine .jpg visualizzato aprendolo con HxD, un editor binario gratuito per Windows:

File immagine in binario

Osserviamo subito che, nonostante il nome, gli editor binari non visualizzano realmente i valori binari, ma piuttosto quelli esadecimali. Si tratta semplicemente di una ragione di comodità: i numeri binari sarebbero troppo lunghi da scrivere e da leggere. Inoltre, per facilitare la lettura, i valori esadecimali vengono suddivisi in righe, di lunghezza arbitraria (e solitamente modificabile dalle impostazioni del programma). Nella figura precedente per esempio ogni riga contiene 16 valori esadecimali, ciascuno dei quali rappresenta esattamente 1 Byte, cioè 8 bit del contenuto del file.

In pratica il nostro file contiene una sequenza lineare di valori che in esadecimale può essere così rappresentata:

FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 00 60 00 60 00 00 FF E1 10 E8 45 78 69 66 00 00 4D 4D ...

e in binario sarebbe:

11111111 11011000 11111111 11100000 00000000 00010000 01001010 01000110 01001001 01000110 0000 0000 00000001 00000001 00000001 00000000 01100000 ...

anzi, visto che non esiste nessuna separazione fra i diversi byte, il contenuto reale del nostro file è il seguente:

1111111111011000111111111110000000000000000100000100101001000110 0100100101000110000000000000000100000001000000010000000001100000 ...

Riuscite adesso a capire meglio perché gli editor binari mostrino il contenuto in esadecimale?

Dunque, quando dobbiamo immaginare a un file, dobbiamo pensare a una stringa lunghissima di bit (a volte milioni se non miliardi di bit). Come faccia il computer a estrarre da questa sequenza di bit un'immagine piuttosto che una musica o un testo da leggere è un mistero, che affronteremo più avanti.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it