lunedì 28 luglio 2014

Unità di misura basate sul byte

Il byte è l'unità base per misurare la quantità di spazio, per esempio la dimensione di dischi e partizioni, lo spazio occupato dai file o la quantità di memoria RAM allocata da un'applicazione.
Quasi tutti i sitemi operativi misurano lo spazio usando la scala delle unità binarie, mentre nell'industria talvolta si preferisce il sistema decimale (come fanno i produttori di hard-disk magnetici).

Unità di misura binarie

Nella scala binaria ogni unità di misura è 1024 volte più piccola di quella successiva.

Il primo multiplo binario del byte è il KiB (kibibyte, o informalmente "kilobyte binario") che equivale a 1024 byte; 1024 KiB costituiscono un MiB (mebibyte, o "megabyte binario"), 1024 MiB costituiscono un GiB (gibibyte, o "gigabyte binario"), e così via.
Unità di misura binarie

Unità di misura decimali

Nella scala decimale ogni unità di misura è 1000 volte più piccola di quella successiva.

Il primo multiplo decimale del byte è il kB (kilobyte) che equivale a 1000 byte; 1000 kB costituiscono un MB (megabyte), 1000 MB costituiscono un GB (gigabyte), e così via.
Unità di misura decimali

Precisazioni sui simboli delle unità di misura della memoria e sullo standard IEC/ISO 80000

La maggior parte della confusione che gravita intorno alle unità di misura della memoria è dovuta all'uso errato dei simboli che le rappresentano. Purtroppo veniamo da molti anni di uso errato dei simboli delle unità di misura: la consuetudine e l'assenza (almeno all'inizio) di standard internazionali, ha causato pessime abitudini anche negli stessi informatici. In particolare, il fatto che il valore 1024 sia prossimo a 1000, ha portato ad un abuso dei prefissi decimali per indicare potenze di 1024. Un esempio è l'uso sistematicamente errato che si fa del simbolo "k":
  • k (minuscola): è il prefisso decimale kilo, ossia il moltiplicatore 1000;
  • Ki ("K" maiuscola seguita da "i" minuscola): è il prefisso binario kibi, ossia il moltiplicatore 1024;
  • K (maiuscola): non è un prefisso moltiplicativo; in Fisica è il simbolo del kelvin, l'unità di misura della temperatura termodinamica.
Per indicare 1024 byte si scrive spesso "kB", ma ciò è errato, bisognerebbe scrivere "KiB"; doppiamente errato è scrivere "kb" (la "b" minuscola rappresenta il bit, non il byte). Un altro errore comune è usare simboli e/o prefissi in minuscolo al posto di quelli in MAIUSCOLO (e viceversa). Per esempio 1 kb e 1 kB sono quantità differenti, infatti:
  • 1 kb = 1 kilobit = 1000 bit, perché la "b" minuscola è il simbolo del bit;
  • 1 kB = 1 kilobyte = 1000 byte, perché la "B" maiuscola è il simbolo del byte.
In caso di ambiguità è preferibile scrivere per esteso l'unità di misura base; per esempio conviene scrivere 1 kbit per indicare 1000 bit ed 1 kbyte per indicare 1000 byte.

Quando si vogliono utilizzare le unità binarie, i simboli da adottare sono stabiliti dallo standard IEC/ISO 80000. Purtroppo l'adozione di tale standard procede a rilento perfino nei Sistemi Operativi moderni: in Windows 7 (e versioni precedenti) per esempio, la dimensione di un file da 4096 byte viene erroneamente indicata con 4,00 KB, invece lo standard prevederebbe 4,00 KiB.
È un errore anche scrivere "KB" (con la "K" maiuscola da sola), sebbene sia pratica comune: il prefisso binario corretto è il "Ki". Inoltre, essendo la "K" maiuscola il simbolo del kelvin (l'unità di misura della temperatura), scrivere "KB" equivale a dire "kelvin per byte" oppure "kelvin per bel" (il bel è un'unità di misura adimensionale il cui simbolo è la lettera B), una cosa senza senso.
Alla data in cui viene pubblicato questo articolo, solo i sistemi operativi Apple a partire dalla versione Mac OS X 10.6 "Snow Leopard" utilizzano in modo coerente la corretta accoppiata tra simboli ed unità di misura (OS X usa le unità di misura decimali).
Ubuntu Linux avrebbe dovuto seguire le orme di Apple a partire dalla versione 11.10, tuttavia molte applicazioni non lo hanno fatto.
I sistemi Windows usano le unità binarie ma i simboli delle unità (KB, MB, GB) non sono conformi allo standard IEC/ISO 80000.
In definitiva, l'unico modo per essere certi della dimensione precisa di un file, è prendere nota del numero di byte ed eventualmente effettuare una conversione.