Sign up ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

I read on somewhere that Ubuntu will no longer use the familiar file size units we all know by now (kB, MB, GB, TB) and switch to a different IEC standard (KiB, MiB, GiB, TiB). If this is true, I would like to know what's the reasoning behind this change, and the impact (if any) this change has, especially with multiplatform applications or applications run with Wine.

share|improve this question
A byte is a byte. Bad example. – Nathan Osman Jul 30 '10 at 2:02
To my knowledge, using KiB, MiB...etc is already in place in Ubuntu. So "Ubuntu will no longer.." should be "Ubuntu is no longer.." – Weboide Jul 30 '10 at 20:48

2 Answers 2

up vote 55 down vote accepted

Short answer is yes, the prefixes change. But it doesn't really make a difference.


There has always been confusion because decimal-style units like KB, MB, GB were used with binary data - KB meant 1024 bytes, not 1000 bytes as might be expected. And of course many people throughout the world use the actual decimal prefixes in their daily lives under the metric system.

Network engineers and long-time computer users of course are trained to understand the difference, but the ongoing confusion meant applications were inconsistent in their usage; one application might use MB to mean 1,000,000 bytes (using the decimal prefix), while another might mean 1,048,576 bytes (using the binary interpretation).

This led to Ubuntu eventually adopting a new units policy.


The impact is really just a display issue. File sizes and network bandwidth will be displayed using the decimal prefixes, so a 5kB file will actually be 5000 bytes. This is actually in line with what many (most?) people expect.

Memory usage and some low-level utilities will display sizes using the binary prefixes (KiB, MiB, GiB, TiB). This may cause some initial confusion but is actually better than the status quo where we have one prefix meaning two different things.

Since Windows still uses the old, ad-hoc system a Wine application might display slightly different file sizes for the same file. However I at least often see different sizes displayed anyway due to rounding methods, so I'm not convinced it's a major issue.

See also:

share|improve this answer
Excellent answer. Very informative, thanks! – Cesar Jul 30 '10 at 3:13
Great answer... – User Aug 1 '10 at 0:52
Huh. Why not make the policy just use 1MB to mean 1024 in all cases? If people buy a "2GB" drive (which is actually a 2GiB drive), and then open it in Ubuntu, it will be reported as 2.2GB, or so. It was my understanding that ever using MB to mean 1,000 was always wrong, ditto for KB, GB, etc. – mlissner Aug 3 '10 at 20:39
A 200GB drive is action 200GB not 200GiB – txwikinger Aug 5 '10 at 4:12
@mlissner: actually, using MB to mean 1024×1024 bytes has always been wrong, even if it was in common use, and that's why new, binary-based prefixes were standardised 11(!) years ago. So Ubuntu is just implementing an 11 year old IEC standard and 2 year old ISO standard (now known as ISO/IEC 80000). – JanC Aug 20 '10 at 7:08


A few years ago there was very little confusion about this. Because the notation

  • 1 KB = 1024 bytes
  • 1 MB = 1024 KB

was taught, learned and used in all universities and almost all the industry (software and hardware) around the world, during many years.

The stupid idea of counting in base 1000 (not even base 10) is only another symptom of the stupidity of our times and modern life.

What makes things much much worse is the more stupid idea of trying to establish (and continue to do it) the old notation for the unpractical 1000-base units. THAT HAS CREATED ALL THE CONFUSION. If they had only adopted the convention that

  • 1 KiB = 1000 bytes
  • 1 MiB = 1000 bytes

then there would be much less confusion and the problem would be much smaller.

They should have tried to establish that

1KB = 1024 bytes
1MB = 1024 KB


1 Ikb or ikb or Kib = 1000 bytes
1 IMb or imb or Mib  = 10^6 bytes

There is absolutely no need to use base-1000 units. Probably the idea started in a stubborn mind that said "oh, no, if kilo is 1000 and mega is 1,000,000, we are going to use kilo and mega in base-1000 for information units (base 2!)". All that just because one day, but that was much longer time ago, someone had the unfortunate idea (not so bad, though) of calling kilobytes (kb) a bunch of 1024 bytes. If he had chosen k2b and m2b, and call them kitwo bytes and mitwo bytes (or kookie bytes, mookie bytes and gookie bytes), for example, all this retarded idea of using base-1000 for all the applications and a whole operating system, and imposing it as the normal way of talking about measures in HW and SW to the peolpe, wouldn't be happening, which makes things much worse.

share|improve this answer
Actually, we're making it more logical. See, for example we use km when we mean 1000 meters. Why should that be different? The reason for k=1024 is performance and simplicity. It's really fast to just shift those bits instead of doing real divisions. Today however, by getting bigger and bigger numbers the discrepancy between 1024^n and 1000^n. While that wasn't a problem because they were virtually the same, it's starting to be really confusing. – Georg Schölly Oct 25 '11 at 9:56
was taught, learned and used in all universities and almost all the industry (software and hardware) around the world, during many years. No it wasn't. This is a myth propagated by programmers to justify their laziness. "megabyte" meant "1,000,000 bytes" in the 1960s and "kilobyte" meant "1000 bytes". Microsoft is chiefly to blame for the nonsensical and impractical 1024-based units. – endolith Mar 11 '14 at 1:38

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.