Gibibyte, Mebibyte, ecc e calcoli spiccioli

Vi sarà capitato anche a voi di osservare su una scatola una certa dimensione di archiviazione per un hard disk (come in figura) ma di verificare sul proprio computer che in realtà i "GB" effettivi (in senso binario) sono meno.

Oppure vi sarà capitato di osservare le offerte di Alice 20 Mega (Fastweb è più specifica, almeno ad una prima ricerca, dichiarando Mbit/s) e domandarvi poi alla fine quanti "KB" effettivi al secondo si scaricano.
La confusione dell'utente risiede nell'utilizzo "commerciale" del sistema metrico decimale (con relative unità di misura come kilo, mega, giga, ecc) a fronte di quello binario, per il quale lo IEC ha stabilito dei prefissi differenti, come "kibi", "mebi", "gibi", ecc.
Quindi in sostanza avremo che:
  • 1 KB = 1000 Byte, mentre 1 KiB = 1024 Bytes;
  • 1 Mbit/s = 1 milione di bit = 122 KiB/s
Da questo si deriva che il Seagate da 160 GB corrisponde in realtà a 160*10^9/2^30 ~ 149 GiB, circa il 6.9% in meno quindi, mentre per quanto riguarda il transfer rate per le connessioni internet abbiamo (per una "20 Mega") (20*10^6)/(2^13) ~ 2441KiB/s (molto teorici e poco pratici, io con Fastweb sfrutto al massimo la metà, del resto tutti parlano di "fino a", dipendentemente dalla qualità della propria linea, dei mesi di riqualifica e via discorrendo).
Ovviamente 160 GB è più bello di 149 GB, così come "20 Mega" suona più figo di 2,4 MiB/s, così come 29.99 € dà l'impressione di esser "veramente" meno di 30 €.

6 comments:

Cacciatore di perle ha detto...

Ammetto: è la prima volta che sento parlare di Gibibyte.
Grazie Christian! sempre molto interessanti i tuoi post.
Anche in letteratura ho sempre letto 1KB=1024Byte.
Hai stimolato la mia curiosità, farò delle ricerche approfondite.

Tuttavia vorrei metterti la pulce all'orecchio (ma potrei anche sbagliarmi).

Si mi è capitato di comprare un hard-disk e constatare che la dimensione risulta minore di quella indicata nelle caratteristiche tecniche.

La dimensione "effettiva" in tal caso l'ho letta da sistema operativo.
Il sistema operativo dà come unità di misura, per i dispositivi di memorizzazione di massa, il GB (non il Gigibyte) proprio come fanno le industrie manufatturiere d'hardware con i loro prodotti.

Quindi la misura "effettiva", a rigor di logica, dovrebbe coincidere con il valore nominale di capienza dell'hard-disk, vista la coerenza delle due unità di misura ("GB") usata dalla manufatturiera d'hardware e dal sistema operativo.

La spiegazione sull'incongruenza che darei io è questa:
Il valore nominale dell'hard-disk (come specificato nell'involucro) è al "lordo" della formattazione.
Dopo il processo di formattazione dell'unità di memorizzazione di massa, si viene a creare la tabella di allocazione file (FAT).
Essa ha una certa dimensione che dipende dal file system usato ed è direttamente proporzionale alla dimensione dell'hard-disk.

Il sistema operativo (es: per Windows in risorse del computer) misura la quantità libera di spazio per l'unità!
Pertanto al netto della tabella di allocazione.

Dopotutto è lo stesso motivo per cui un floppy da 1,44MB dopo la formattazione aveva 1,4MB di spazio disponibile.
Qui viene fuori una diminuizione di circa il 2,7%.

Siamo sicuri che comprando un harddisk esterno si misura una diminuizione di 6,9%? mi sembrano tantini?
ti sono venuti per mezzo calcolatrice,
o da esperienza diretta?

Christian Castelli ha detto...

Ciao Fabio :-)
Quel che posso dire è basato sulle letture linkate nel post e dall'esperienza diretta sul mio laptop con ubuntu: ho un hard disk da 120 "GB" ma GParted rileva le seguenti partizioni:

/dev/sda1 -> estesa
-> /dev/sda5 ext3 102.2 GiB
-> /dev/sda6 swap 4,37 GiB
-> /dev/sda3 NTFS 5.18 GiB (HP_RECOVERY)

Abbiamo quindi:
* 102.2 +
4.37 +
5.18 =
--------
111.75 GiB spazio totale utilizzato e rilevato dalla live debian, che è proprio il 6.9% in meno di 120 GB.
In sostanza siamo abituati ad 1 KB = 1024 B, lo IEC ha voluto solo specificare la differenza tra 1000 B e 1024 Byte. Sicuramente la tabella di allocazione occuperà anch'essa un suo spazio in Ubuntu, non ti so dire se sia compreso nella partizione ext3, ad ogni modo penso rimanga valido circa il 7% in meno di quello che si vede nei negozi. Se hai notizie più precise, fammi sapere, così smetto di pensare male delle industrie manifatturiere :-D

Cacciatore di perle ha detto...

Menomale che sui malfunzionamenti della mailing list ci siamo chiariti,
altrimenti questi commenti ti avrebbero dato adito a tanto tanto odio ihihih.

Dunque dal dump che hai riportato sulle tue partizioni noto che Gparted ti misura la capacità usando come unità di misura il GiB (Gibibyte).

Io mi riferivo a Windows che fornisce le misure in GB.

L'involucro dell'hard-disk esterno che hai postato riporta la dimensione in GB.

E' una questione di unità di misura usata nello specificare le caratteristiche,
e nella misurazione tramite il proprio pc.

Windows fornisce la misura in GB proprio come l'involucro nella foto che hai riportato, quindi la dimensione dovrebbe essere coincidente con quanto dichiarato dalla "casa".
Un eventuale divario lo imputerei appunto alla tabella di allocazione.
Inoltre,teniamo in mente (per le considerazioni che illustrerò dopo) che windows usa i (KB,MB,GB) per specificare la dimensione dei file.

Ubuntu (con Gparted) invece fornisce la dimensione dell'hard-disk in Gibibyte.
Immaginiamo che Ubuntu (mediante GParted)usi il KiB, il MiB e il Gib per la dimensione dei file (facciamo quest'assunzione, GParted non credo che misuri file dentro le partizioni).

A questo punto, caliamoci nello scenario di riempire tutto l'harddisk in questione per mezzo Windows.
Immaginiamo di usare un file mp3 di dimensione X e replicarlo Y volte (ovviamente con le dovute rinominazioni delle repliche).

Adesso ripetiamo lo stesso processo usando Ubuntu e misurando le dimensioni dei file con GParted.
Il file mp3 avrà dimensione Z stavolta; con Z minore di X perchè Z è espresso in MiB mentre X in MB (ndr: 1MiB=1,024MB quindi al pari delle conversioni Euro/Dollaro in cui una stessa quantità di denaro avrà un valore in euro più piccolo del valore in dollari, qui una stessa quantità di memoria avrà un valore più piccolo di MiB rispetto al valore in MB).

Il file Z comunque dovrà essere ricopiato Y volte (come per windows) per riempire l'hard-disk,
perchè nel passaggio da Windows a Ubuntu con letture fatte da GParted (cioè cambiando unità di misura) vale sempre il teorema di conservazione della materia per cui nulla si crea e nulla si distrugge ;-)... ossia la capienza dell'harddisk, in termini di repliche dello file, non varia.

Risultato a cui arrivo è:
Se misuri una diminuizione del 6,9% rispetto alle caratteristiche specificate dalla manufatturiera, è solo un "falso" vizio insito nel cambio di unità di misura.
La quantità di file che entra nell'hard-disk è sempre la stessa che tu usi il GiB o il GB.

La manufatturiera potrebbe in modo equivalente specificare la dimensione in GB o GiB.
Ovviamente in GiB verrà un numero più piccolo.
Non credo che le industrie usino il GB per giocare psicologicamente sul valore più alto in GB rispetto al GiB.
Credo che usino il GB perchè a parte GParted, la maggioranza degli applicativi e dei sistemi operativi (mi sento di dire) usa il GB.
Quindi per un fattore di coerenza di unità di misura.

Mi è oscuro il motivo per cui GParted usi il GiB come unità di misura.

Insomma io le scagionerei le manufatturiere ;-),
d'altronde non è un argomento che ha mai toccato neanche Grillo,
quindi o non c'è niente che puzzi di bruciato,
o è un affare per cui si potrebbe perdere la vita a parlarne ihih!

Christian Castelli ha detto...

@Fabio: "Se misuri una diminuizione del 6,9% rispetto alle caratteristiche specificate dalla manufatturiera, è solo un "falso" vizio insito nel cambio di unità di misura.
La quantità di file che entra nell'hard-disk è sempre la stessa che tu usi il GiB o il GB."

Infatti io non ero convinto che i negozi dichiarassero il falso: è solo un diverso modo di rappresentare la (stessa) quantità di spazio :-)
Io comunque riterrei più corretta la riportazione in GiB, non in GB visto che abbiamo a che fare con bytes e non con pomodori, ma è solo l'opinione di un umile "informatico".
P.S.: quasi quasi glielo propongo a Grillo come argomento, qualche guerra di religione in più non credo gli faccia male :-D

Cacciatore di perle ha detto...

"Da questo si deriva che il Seagate da 160 GB corrisponde in realtà a 160*10^9/2^30 ~ 149 GiB, circa il 6.9% in meno"
Non ho ancora capito se pensavi che dichiassero più spazio di quello effettivo,
o se volevi porre all'attenzione il fatto che usassero un'unità di misura che produca valori più alti (a parità di spazio)rispetto ad altre unità.

Voglio gettare benzina sul fuoco:-)
ho creato un file di testo con un carattere,
ho letto le proprietà del file indicate da windows:

dimensioni: 1byte
dimensioni sul disco: 4KB(4096bytes)

Mi sembra superfluo scrivere che le dimensioni di un file da 1byte su disco occupano cmq un cluster da 4KB.

La cosa interessante è che windows (all'ultima versione) come tutti i testi che ho sempre letto fanno la seguente conversione:

1KB=1024bytes

Perchè?
Come mai?
Insomma.. chi ha aderito allo standard IEC?

Tanta confusione :-).

Christian Castelli ha detto...

@Fabio: "volevi porre all'attenzione il fatto che usassero un'unità di misura che produca valori più alti (a parità di spazio)rispetto ad altre unità." Esatto proprio questo, devo aver comunicato male il messaggio ;)

Byte Strike Blog - Designed by Posicionamiento Web | Bloggerized by GosuBlogger