I grew up with computers using powers of two to measure data
1024 bytes was called a kilobyte. Here kilo meant 1024 or 210
The rest of science and technology followed the Système International (SI) set of units and prefixes. Under SI prefixes, kilo means a thousand or 103
You can pretty easily tell which sense is meant from the context. A kilometre means a thousand metres a kilobyte means 1024 bytes.
In the 80’s and my computer had 32 kB RAM. I’d be saving my progress in Elite onto a 200kB floppy drive. The kB here are 1024 bytes rather than 1000 but the difference is easily ignored.
In the 90’s I was partying like it’s 1999 so obviously I wanted to listen to the artist formerly known as Prince. I’d moved from the world of kB to the world of MB. 1MB = 1024 kB. My computer had 8 MB RAM and Napster was downloading MP3s onto a 425.3 MB hard disk.
At least it’s what Western Digital chose to call 425.3 MB. It had 425,349,120 bytes in total. Here Western Digital are using a decimal definition where kilo means thousand and mega means a million. All well and good but Windows 95 uses the old fashioned binary units and so tells me that the drive has 406 MB. This is a more noticeable difference and I had to start explaining to customers why it appears that the drive I’ve sold them appears smaller than advertised.
Interesting that the 8MB ram was uncontrovertibly binary. Crucial hadn’t marketed these RAM Sticks as a matched pair of 4.2 MB SIMMs. Perhaps because powers of two were more relevant to RAM or maybe the magnitude of numbers involved meant that people would naturally round the numbers back to the binary values anyway.
This other definition of megabyte is not just convenient for the marketing of spinning rust. There are those who think that if kilo or mega mean one thing in one context then they shouldn’t be allowed to mean something similar but different in another context. If it’s different from the meaning they learned first then it’s wrong.
It’s 1998. The International Electrotechnical Commission (IEC) invent binary prefixes. The idea is that if your prefix refers to a power of two then you use a slightly different prefix and leave the original SI prefixes to science and technology. All these prefixes end bi for binary. So kilobyte becomes kibibyte, megabyte becomes mebibyte and gigabyte becomes gibibyte.
At this stage the tradition in IT circles, dictates that we must reference xkcd #927

In the naughties and I was managing a bunch of Windows 2003 servers. We’d moved from the world of MB to GB. 1 GB = 1024 MB. I’d not yet heard of a gibibyte but I can still tell what GB means based on context. If it’s DDR memory it’s binary: GB means 230 bytes. If you’re buying hard disks it’s decimal: GB means 109 bytes. But if you’re looking at your hard disk through the lens of your windows operating system then it’s back to binary: GB means 230 bytes. Pretty much only the people selling hard drives use the aberrant definition but at least they do so consistently and the operating system still calls them out for being unusual about it.
Personally I didn’t like it. Firstly I don’t like ambiguity. Secondly I was being told that the source of the ambiguity came from the marketing department rather than the engineering team. At this time my view of the advertising and marketing world was heavily influenced by the Bill Hicks. Finally when I first learned what kilo and mega meant I was taught that they meant one thing in front of bytes and something else in front of meters or grammes. I learned about kilogrammes, kilometres and kilobytes at the same age. This different definition of kilobyte and megabyte was different from what I had first learned and therefore it was wrong.
In the teens. The servers I managed were largely virtual. I didn’t buy many disks, I mainly rented space on a storage area network in the cloud. When I span up a server instance in Azure it had a 127 GB virtual disk. But I was not dealing with disk manufacturers and there was now a blurring of the lines. Microsoft were not using the hard drive manufacturer’s decimal definition of GB, this was the good old fashioned binary definition. Good for them, I’d got more than I might have expected and their operating system agreed with their cloud platform on the size of the disk. That’s good but it’s getting a touch confusing. Will AWS be the same?
By this time I’ve heard of a Gibibyte and I’m glad there’s some effort at clarification however it would have been so much clearer if it was the aberrant definition that had the aberrant name. If pretty much everyone in IT could carry on calling 109 bytes a Gigabyte and only those selling decimal “Gigabytes” had to use a different word that highlighted they were using a different standard, maybe we’d have a better chance at forcing adoption. Let’s say we’d dived down the other leg of the trousers of time and when you’re talking about data with decimal prefixes then you were the one that was expected to make a change. Maybe all these prefixes end de for decimal, kilobyte becomes kidebyte, megabyte becomes medebyte and gigabyte becomes gidebyte.
Imagine that.
In that case a storage manufacturer advertising a 500 GB hard disk could be challenged: Are those full gigabytes or just gidebytes? Maybe this could even be enforced by Advertising Standards. Since there’s less people who need to change their habits and their activities are regulated then my guess is that there would be greater adoption.
But that’s not the way we went. It’s a fantasy and it wouldn’t be all sunshine and rainbows in that reality anyway. The term Gigabytes could still be ambiguous. And those that hold the SI definition of those prefixes to be sacred would still be offended that they were being used blasphemously.
Here in the roaring twenties if we want to be precise about using the binary prefixes then we can use GiB, but GB is still regularly used for in both binary and decimal senses.
It’s not just RAM and HDDs and SDDs now. I also buy “GB” from Cloud storage providers. Dropbox offer me 5 free GB or is that GiB? What about my mobile data plan? Is a 10 GB per month data plan on one telco actually offering 7% less data than an a different telco advertising the same and how would I find out?
There are those who would challenge others for using GB in the sacreligious binary sense. Maybe one day they’ll win that argument but that’s certainly not the case here in 2023. The term GiB is gaining traction though. Today, if you spin up an instance in Azure or AWS the disk size is unambiguously labelled in GiB. Yet there’s still a way to go. Windows 11 still uses a binary GB when it’s showing you how much free space you have on your disk and if I want to convert a large number of bytes to GiB then I can divide by 1GB in PowerShell but not 1GiB

The files I’m moving around are much larger now. I used to think 3 MB for an MP3 was a big file back when I carried a toolkit of 10 floppy disks in my pocket. Now I’m shunting around ISO and VHD files, the difference between the two usages of GB are starting to matter a lot more:-
- I don’t care about the difference between a KiB and kB: 210 is just under 2½ % larger than 103 but it’s close enough not to matter.
- The difference between a MiB and MB is more noticeable: 220 is nearly 5% bigger than 106.
- The difference between a GiB and GB is definitely significant: 230 is over 7% bigger than 109
- Now that Terabytes are a regular part of my discourse there’s no getting around it. Someone using the term TB could mean 240 or 1012 and there’s just shy of 10% difference between the two.
The divergence is literally exponential.
With gibi/gigabytes and larger it’s more essential than ever to use the precise term. I have a nostalgic affection for the older term. There a strong anchoring bias that means that I want kilobyte to mean 210 bytes and not 103 bytes. That’s what I was taught in my day after all. However I was also taught a lot of physics where these prefixes refer to powers of 10. And if I’m truthful, easy conversion between powers of ten is more important in my experience of computing these days than powers of two. I can see a strong argument for using powers of ten for back of the envelope calculation. That said, I’m rarely without a thinking machine or three to hand and if I need to convert miles per hour to furlongs per fortnight it’s just about as easy as any other calculation.
So if you want to use GB in either sense then I won’t correct you either way. I consider both usages to be valid. But that being the case I might be uncertain what you actually mean. Which is why I try to use GiB and TiB instead.
It’s not that I prefer working with binary over decimal, I don’t.
It’s definitely not that I want to nitpick over who’s using GB correctly, I’ve found that I don’t make myself popular by correcting people. “Actually” is considered an unfriendly word.
It’s not that I embrace change, I get enough of that. I’d have been happier if we’d all just kept to the same standard as computing has always done, even if this used the prefixes differently from other domains.
It’s to avoid ambiguity, and the version of me down the other leg of the trousers of time is probably specifying gidebytes and tedebytes for the just same reason.