// LEARN LINUX TV • ARTICLE

GB vs GiB: The Shocking Truth About Storage Sizes

GB vs GiB and TB vs TiB—what’s the difference? Learn why storage sizes often appear incorrect, how SI and IEC prefixes work, and which units accurately describe your SSD, hard drive, and computer storage.

YouTube player

The current naming scheme, and its issues

First, let’s talk about the naming conventions that most of us have been using for most of our careers. Specifically terms like Kilobyte, Megabyte, Gigabyte, Terabyte, and so on.

As you might already know, with the naming convention that just about everyone uses, 1,024 kilobytes equals one megabyte, 1,024 megabytes is one gigabyte, and so on. The reason why we’ve measured data this way is because computers count in powers of 2.

One of the problems with this scheme is the prefixes. For example, the “kilo” in kilobyte, “mega” in megabyte, and so on. These prefixes are based on the metric system. The problem with this is that with the metric system, kilo means 1,000, not 1024. Mega means million. You get the idea.

So with the way we normally measure data, the industry kind of just looked the other way and accepted the metric-based prefixes, however incorrect they may be. And for the longest time, there was virtually no issue with this. 1,024 is close enough to 1,000, so decades ago engineers accepted 1,024 as being close enough to 1,000 to warrant the use of metric prefixes. However, as time went on, and storage sizes grew to become massive, that slight difference multiplies exponentially and what was once a small and minuscule difference, became a bigger difference. For example, at the megabyte level, the difference between the two definitions is already 48,576 bytes. At the gigabyte level, the gap is about 70 MB, and by the terabyte level, you’re missing ~70 GB.

Traditionally, the industry measured in binary but mislabeled those values with SI prefixes like kilo, mega, and giga. This is often loosely referred to as ‘the SI naming scheme,’ even though it’s technically a misuse of SI. Again, this naming convention is what most of you are already accustomed to. But the current prefixes are misleading. Let’s discuss a little more about what some of the issues are when it comes to the current scheme.

SI is Problematic

In this section, I’d like to talk about some of the issues surrounding SI prefixes. I’ve already mentioned one of the issues, the fact that metric system prefixes don’t accurately fit the data that’s being measured, so I’ll skip talking about that in this section.

Instead, one of the issues I’d like to bring up is consumer confusion. Imagine purchasing a 1TB external hard disk, and when you connect it to your computer, you discover that you only have a smaller amount available, perhaps around 930GB useable (often displayed as GB in your OS). This has actually resulted in class action lawsuits, because consumers were under the impression they weren’t getting all the storage that was advertised on the box. I mean, where did the other 70GB go?!

The thing is, when someone that’s familiar with the metric system hears the prefix tera, then they immediately think they should be getting 1,000GB. But as much as we may want to think that the hard drive vendors are cheating us out of space, it’s actually the naming convention and the confusion surrounding it that’s to blame. People aren’t missing space, it’s just that the terms are wrong.

The reason this is the case is because, again, what started out as only a 24 byte difference per kilobyte grew considerably over time, especially while a terabyte is becoming the new gigabyte.

This can also cause confusion when it comes to saving files, where you miscalculate how much space you need for a file solely because the unit of measurement is wrong.

The IEC Convention

So, what do we do about this naming inconsistency? Well, the answer, apparently, is to develop and adopt another standard. And I know what you’re thinking, what is it with IT people and coming up with multiple standards?

However, this one really is necessary. To try and alleviate this issue, the IEC naming convention was introduced in 1998. This new scheme adopts new prefixes. So instead of a megabyte, we have a mebibyte. Instead of a gigabyte, we have the gibibyte.

With the new style, the SI prefixes we’re accustomed to, such as mega, giga, and tera, now match their metric-system definition. So under SI naming, a megabyte is 1,000kb, a gigabyte is 1,000mb, just like it should be with the metric system.

The base 2 counting that we used to use is now the IEC naming convention. So a mebibyte is 1,024 kibibytes, a gibibyte is 1,024 mebibytes, and so on.

What I’m going to do now is overlay a table onto the screen, that’ll show you both naming conventions and how they break down.

Challenges with IEC prefixes

The IEC naming convention more than solves this issue, but it’s not without challenges of its own.

The biggest issue with IEC is getting it adopted. The standard came out around 26 years ago, and it’s still not the default on everything. Part of the reason it’s so hard to get people to use the new convention comes down to human nature. Change is hard. When you’re used to one thing, it’s hard to adopt a different thing. Especially when the SI prefixes are what most people commit to memory. Add the fact that the new prefixes don’t necessarily roll off the tongue, and you can probably see why it’s taking so long.

Also, there’s a bit of standard fatigue in the industry. We have many competing standards, so many in fact that I think at a certain point we kind of tune this out completely – especially if you’re of the mindset that if it isn’t broke, we shouldn’t be attempting to fix it.

However, what we have here is a newer standard that actually is necessary. Earlier in the video, I mentioned consumer confusion that even led to class action lawsuits. So we can’t say that a solution isn’t necessary – but however necessary it is, when it comes to humans change is hard.

Using the new standard

As much as change can be a challenge, I recommend adopting this new naming convention going forward. I’m going to do the same thing on my end – but to be honest, I fully expect that it’ll take me a while to get used to the new names, and I’ll probably still use terms like gigabyte in future videos until the IEC prefixes become second nature.

But how do you actually go about adopting the new convention?

Well, depending on your operating system, it might already default to IEC. If you see sizes listed a KiB, MiB, GiB (and so on) – you’re using the new convention. If your operating system or distribution doesn’t already use the new names, usually all you have to do is go into the settings of your preferred file manager and tell it to use the IEC convention. Usually, it’s that simple. On my end, I’ve already updated my automation system to configure all of my Linux systems to use IEC, but at the end of the day, it might still take a while to get used to it.

However, considering that the new naming convention helps us more accurately measure the data we’re storing, it’s definitely worth the learning curve.