HDD size and accuracy question

Solarus

Newcomer
Something that always bothered me about HDD size abbreviations (GB, GiB etc.)

The SI prefix "giga-" abbreviated "G" means 10 to the ninth power. A gigameter is a billion meters. A gigasecond is a billion seconds. A gigabyte is a billion bytes. Period.

Computer scientists are the ones are misusing the established terminology, and there's an obvious reason for it but it's still the cause of a lot of confusion. Most computer memory is addressed in ranges that are nice, neat multiples of two. A 10-bit address range lets you access 1024 different addresses. It was convenient to call it a kilobyte because it was close to the SI prefix kilo- meaning 10 to the third power. They were only 2.4% different, so it was good enough.

Unfortunately approximating a megabyte as 2 to the 20th is more inaccurate still: it's 4.85% larger than a million bytes. 2 to the 30th is an even shoddier approximation of a gigabyte at 7.37% larger. At terabyte scales we're very nearly 10% larger! The situation is bad enough that there are actually formalized SI prefixes for the binary approximations. Your hard drive really is 40GB, but it's also 37GiB (pronounced "gibibytes" where the "bi" stands for binary.) When are computer OSes gonna start using the right measure of units?
 
but the new SI prefixes came after decades of entrenched computer use.

I'm not that annoyed by raw physical size of hard drives quoted in decimal units, we've known about the issue for a while and decimal units are accepted where only physical reasons determines the amount of data (especially bandwith, where frequency is involved, you don't want to do silly conversions)

I wouldn't want to buy 2.147 GB sticks of ram though. And all files are typically stored in 4096 byte file system clusters, most often on 512 byte hard drive sectors. So a 16KiB file takes 4 clusters, a 21 MiB file takes 5.25Ki clusters etc., KiB play nice with ram regarding adressing, allocation etc.

I don't want the OS to use decimal units. If I'm creating a DVD video for instance I want to put 1GiB files on it as the usage is (there are filesystem limitations) and not 1.073741824 GB files.

We could actually use another unit alltogether. The historical unit for memory size is not the KiB and not even the KB, but simply the "K". The BIOS reports size in K, the "top" command in gnu-linux reports sizes in K, and so does a "du -h", with "M" and "G" units.
It may not satisfy you as those letter are the SI prefixes, but it's pretty clear they aren't SI units because there's no suffix at all :)
 
Last edited by a moderator:
Had, by some fluke ,10^3 been less than 2^10, (or if we'd had 9 fingers on our hands) I'm pretty certain this issue of sizes would not have come up....:rolleyes:
 
When are computer OSes gonna start using the right measure of units?

When Americans switch to metric. ;)

Personally I've never taken the word "gibibytes" in my mouth. Not sure if I ever will. The whole issue seems overly pedantic to me. Trying to change the meaning of an established notion seems like it would cause more confusion than the original meaning ever did. It's like trying to revert the word "gay" to its original meaning.
 
So just because HD manufacturers started to use the term incorrectly we must now switch to that incorrect usage? :p

Computer based storage of files as well as memory etc. has always been in binary. So instead of forcing HD manufacturers to use the correct terminology we must now invalidate the terminology used for memory, file sizes, etc?

Seems completely backwards to me, but meh...

Regards,
SB
 
But there are plenty of things in computer which is decimal. For example, when one says a CPU runs at 1 GHz, it definitely means 10^9 Hz rather than 2^30 Hz. The same goes for network bandwidth (i.e. 1Gbps = 10^9 bps). This could sometimes bring some disparity, for example, one may expect that a "8 Mbps" bandwidth is able to transfer 1MB data per second, but since Mbps is decimal and MB is binary, 1MB data actually take 1.048576 second to transfer on a 8Mbps bandwidth line.
 
It saddens me to see that people can't separate a kilobyte (1024 bytes) from a kilo of bytes. (1000 kilogram of bytes)
 
Back
Top