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.
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.
IT IS SOOOO... SIMPLE!!!
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 and 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.
It is indeed confusing what happened regarding the changes of designation of sizes back in 1998 and would have been much simpler if they had simply added a new set in powers of 10 as a new designation but sadly they did not do so because the reasoning at the time was centered around correcting the etymology of the word used "Kilo" so all the original sizes based on powers of 2 (1024) were all given new names and new designations and then the new power of 10 numbers assumed the pre-1998 original label names.
So let the confusion begin:
Prior to 1998, a Kilobyte meant 1024 bytes and was designated as K or KB.
After 1998, the original pre-1998 Kilobyte was renamed to Kibibyte and given the new designation K or KiB and a brand new post 1998 Kilobyte was created which is 1000 bytes and has the shorthand designation KB so that today we have the following:
1 KB = 1000 Bytes (KB cannot be shortened to K) 1 KiB = 1000 Bytes (KiB may be shortened to K)
The designations were all amended so that KB is the official shorthand that refers to the current Kilobyte (1000) while K and KiB officially are the official shorthand designations for Kibibyte (1024).
It gets especially confusing because most of us who were around the early days long before 1998 grew up used to calling Kilobytes as 1024 bytes and writing either KB or K as the shorthand designation but today that is wrong and all of us doing this are actually referring to "Kibibytes" when we say "Kilobytes" and often using the wrong designation per officially inacted world standards set forth by the IEC back in 1998 which is confusing a bit but would not be so bad except that there is now even 18 years later many people who still do not realize that K and KB are NOT the same and are totally different.
So there really is actually a difference between "K" (1024) and "KB" (1000)!
This incidentally is also the very reason why hard drives always seem to have much less space than they advertised but the hard drive manufacturers are the ones who are correct and are using the present day proper standards when they write "Terabyte" on the packaging when the person buying the drive is actually however thinking in terms of Tebibytes and expecting space as such.
Incidentally, the difference between a 2 TB (Terabyte) and a 2 T or 2 TiB drive (Tebibyte) is a very sizable huge 199,023,255,552 bytes smaller than what a 2 T or 2 TiB drive would be and is the difference smaller of the magnitude of a little over 185 G or GiB (Gibibytes) which is what most people ironically actually think of most often when they say "Gigabyte" albeit mistakenly.
This is one of the weird side lessor known FYI's in the computer world that is a good footnote to know and explains a few of the odd discrepancies that many people today are often completely unaware.
Many people are thinking of and saying the name "Kilobyte" (1000) when they actually are thinking of the unit "Kibibyte" (1024) and it gets more confusing as people write the shorthand interchangably but this is incorrect, the modern Kilobyte should be marked "KB" and should not be "K" or "KiB" anywhere in any documentation or program which as just explained would actually refers to Kibibyte (1024).
The shorthand designations K (1024) and KB (1000) are no longer the same thing and in the case of Kibibyte, either K or KiB may be used but not KB.
This is your brain, this is your brain on Kibibytes -- fried yet?