Snow Leopard Ditches Real Math For Fake


We’ve always felt that hard drive manufacturers were dirty crooks because of their use of fake math to make drives sound bigger than they actually are. Here’s a quick refresher for those who need it: Because digital information consists of 1’s and 0’s (two possible settings), digital architecture revolves around powers of 2. Long ago, when nomenclature was setup for measuring data the term kilobyte was adopted to represent 2 to the 10th power bytes (base 2, aka real math). The problem here is that 2^10= 1024 and when laymen hear the root “kilo” they think 1000 which is 24 byes less (base 10, aka fake math). So, if you have a 500,000,000 byte drive, base 10 math would call that a 500GB drive, but base 2 math would call that 476.8GB.

We understand why hard drive manufacturers use the base 10 system; larger sounding drives sell better. Now we find out that OSX 10.6 Snow Leopard is using base 10 math to calculate storage space. While base 2 math is the standard storage measurement for operating systems it may at first be difficult to understand why Apple would change to a base 10 system. But think about it once more, doesn’t Apple have a lot to gain if all the storage-containing-hardware they sell sounds bigger than it actually is?

[via Gizmodo]

Update: Force Snow Leopard to calculate storage in base 2 [via Gizmodo]

173 thoughts on “Snow Leopard Ditches Real Math For Fake

  1. By calculating the drive size this way it will help remove the confusion end users have with drive sizing. Albeit the better idea would be for drive manufactures to count the correct way.

    1. Retrospectively correct as people get on board history revisionism !
      It was ALWAYS 1024Bytes = 1kb way before it was 1000bytes = 1kb and NO I won’t be using the ridiculous kibi mebi tebi bullshit either. There was nothing wrong with the FACT that computers are base 2 not base 10 !
      Next you idiots will be telling me that 1GB of RAM is 1,000MB – lol !

  2. This is a total bogus argument. The “k” prefix means 1000 according to the International System (SI). If in the past computer scientists used it as shortcut to approxymate 2^10 is just a historical issue, and should only keep on living within the boundaries of such community, the normal computer user is not supposed to belong to.

    Using “k” was also fine because the approximation error was limited (2.4%), but increases with larger units (4.8% with “M”, 7.3% with “G”, 10% with “T”) that were seen as astronomical in the past.

    2^10 is not even a base 2 notation, 1000000000b is, so even that argument is not logical.

    On top of that, multi-level FLASH stores 4 states per cell, should we use “base 4” for measuring its capacity?

  3. Yeah, 1kb IS 1000 bytes. 1kib is 1024 bytes. Apple is actually correcting a mistake. Operating Systems have been using the units kb, mb, and gb incorrectly for years. They should have actually been using kib, mib, and gib.

    But instead of changes the units, Apple kept the same units and just put the correct values.

    For consistency, they probably should’ve just changed the units so the numbers would be the same, but Apple isn’t doing anything wrong.

  4. Sorry, bull.

    To quote: “when laymen hear the root “kilo” they think 1000”

    That’s because that’s CORRECT. The Metric prefixes are base-10 prefixes. Period. Computer Science used these prefixes because they were close enough, when we first started using them. Error didn’t accumulate that fast when you were talking about 80 meg hard drives. However, the gigabyte/terabyte/petabyte age is here, and those discrepencies are HUGE. Metric prefixes just don’t work to approximate these higher powers of 2.

    However, saying that 1 kilobyte = 1024 bytes is, in point of fact, incorrect. The metric prefix “mega” means 1000. The correct term is kibibyte – KiB. 1 KiB = 1024 bytes. The fault here is not on Apple – they’re simply calculating a kilobyte as it SHOULD be calculated. The fault lies with the computer science folks for using metric prefixes incorrectly for so long.

    As for the argument that the meaning of the prefixes has changed and we should keep the status quo – what if ever field did that? What if you had to remember that 1 kilogram was really 1001 grams or 1 micromole was really .000000101? Start using metric prefixes incorrectly and you set a dangerous precedent. Why should a computer be special? Why should 1 kilobyte be 1024 bytes, but one kilo-anything-else be 1000?

    So good for Apple – call things what they ARE. Use standards (and that’s exactly what they are) correctly. Use KB for 1000 bytes, and KiB for 1024. (you can control-click to get file info if you REALLY want to, just like a Windows box that tells “space on disk”)

    Now, are they doing this to sell “larger capacity hard drives?” Nope. Go to ANY website that sells hard drives and look at the calculation for GB. Go ahead, I’ll wait. See where it says “1 GB = 1000000 bytes”? Hard drive manufacturers have been doing this for a LONG time now. This is SOP in hard-drive land. All this update in Snow Leopard means is that when you buy a 500 gig drive, it’ll show up in Finder as 500 gigs (OK, a little less because of formatting, but you get the picture). This in no way affects ONLY Apple HDDs – ANY hard drive will be counted in base 10. How is that a competitive advantage to their hardware sales? The only think that will happen is the “actual formatted capacity may vary” footnote will refer to the fact that the disk formatting takes some space, not the fact that disks are sold in base 10 sizes then treated in the computer as base 2.

    Also, what’s up with this “Real Math” crap? What is that, other than FUD? Yes, computers operate in base 2. So? That doesn’t mean all other bases are incorrect. I guess, since base 2 is the REAL math, I’ll have to go tell all the mathematicians in the world that their work is irrelevant.

    To sum up:
    “the term kilobyte was adopted to represent 2 to the 10th power bytes”
    This was a bad move, ignored what “kilo” meant, and should never have been done.

    “doesn’t Apple have a lot to gain if all the storage-containing-hardware they sell sounds bigger than it actually is?”
    HDD manufacturers already do this, as stated earlier in the summary. This point is irrelavent.

    “(base 2, aka real math) … (base 10, aka fake math)”

    This article is FUD, plain and simple.

  5. I think Apple is doing this to make their customers feel better. If you buy a 500GB drive and it shows up as 476GB, you feel a bit cheated if you don’t know much about computers, like most mac owners. Apple didn’t want their customers feeling cheated, so they lied to them.

    I don’t care what you guys say – yes, kilo means 1000, but as with all language things, someone called 1024 bytes a kilobyte and damnit if thats how they defined it, thats what it is. Yes, it conflicts with the metric system, but then fine, no one said it was an official metric unit (as far as I know) so the metric system has nothing to do with it.

  6. Just thought I’d wade in and say kb is not a thousand bytes, its actually a thousand bits. Sadly we are reduced to using the KiB for our real measurement and let the hard drive manufacturers have the kB for a thousand bytes.
    kb = 1000 bits
    kB = 1000 bytes = 8000 bits
    Kib = 1024 bits
    KiB = 1024 bytes = 8192 bits
    And so on multiplying by 1024 for the Mebi, Gibi, etc and a 1000 for the mega, giga, etc.

  7. It seems like Apple (or any other OS maker) could make both math geeks and marketing hucksters happy by simply offering the user the option to use the system they prefer, or even show both side by side whenever memory is displayed… or would this just make things more confusing?

    Come to think of it, this sounds like exactly the kind of pref that apple would bury, and make only accessible via command line. If they haven’t already done this, they should since the command line seems to be an effective deterrent against users who shouldn’t be mucking around with such things anyway.

  8. Fake math is trying to use the term Kilo to represent 1024. Real math is using 1000 for kilo as that is how it is defined. Just because the computer uses base 2 does not change that.

    And lets face the facts, when the numbers get so large, we all round them anyway, then look at the left 1,2 or 3 numbers and add the word megs, or Gigs, or Terabytes, or Petabytes, etc. etc. Do you really think people are going to divide it all up using base 2 to come up with some obscure number?

    Kilo means 1000. It always has.

  9. Both arguments have merit, but either way the units really to be disambiguated. OP has a point though, if not for lobbying by drive manufacturers and resellers who benefit from the confusion, we’d probably have just changed the binary unit to KiB and been done with it.

  10. @john:

    Windows has “Size on Disk”
    OS X has a “Get Info” dropdown option
    Linuxes have this as well, but I can’t remember it off the top of my head and I’m not sitting at a Linux box

  11. Who cares how an OS reports drive size? a 500GB drive is still only going to hold 476GB of real data, so regardless of how you report it to a user, the storage size is still the actual size. No Macs do not magically add 24GB to a drive, so either each file will now have a larger computed size (and people will think Macs are bad at storing files to disk by comparison to other OSes showing true bit size) or their 500GB drive will still be full with 476GB of real data meaning the drive is still only capable of holding 476GB of actual data regardless. I don’t care how it’s calculated, just try to come up with an industry wide standard that everyone uses. Don’t play numbers games to sell stuff.

  12. The US measurement system really is in need of change. Thankfully we’re making progress, most commercial product measurements are now given in both imperial and metric. I can’t wait to see the day when imperial is obsolete. It seems like every year more and more metric measurements are being favored (450 ml/15.2 fl oz vs 16 fl oz/473 ml). Like many others I spend the majority of my time working in the metric system and hate having to deal with imperial.

    This is the first I’ve heard of operating systems switching to base 10 for displaying file size. It makes things easier for most end users and does not change the back-end. The only problem I see is in numbers being mislabeled, but as long as kB and KiB are used properly thing should work out fine. There will be some confusion at first but people will adjust

  13. @cpx

    right you are. Still, I think some of apple’s power users (not me, I pretty much ignore the size of files until my hd is full, and then go delete some old star trek episodes, starting with Voyager) would appreciate the ability to choose which numerical system to use as primary ie. to display at the bottom of finder windows

  14. “if you have a 500,000,000 byte drive, base 10 math would call that a 500GB drive”

    Uhh…am I missing something? I thought that ~1000 bytes was 1 kb, ~1000 kb was 1 mb, and ~1000 mb was 1 gb. Meaning that a 500,000,000,000 byte drive would be a 500GB drive. Right?

  15. @john

    Valid point – file sizes during things like FTP transfers and such would be confusing – how big was the file? It looks smaller… did it upload? that kind of thing.

    Although I don’t thing applications will be affected much – all the FTP apps I use calculate filesize by looking at the # of bits in a file and doing base 2 math. I don’t think this behavior has changed (can’t say yet, my copy of Snow Leopard doesn’t ship till tomorrow). To applications and such, x bits is x bits.

    The only real problem I can see is if there’s very little HDD space left and you want to download a 2 gig file, and it turns out it’s MORE than 2 gigs (assuming the server works filesizes in base 2) and won’t fit. Seems like a rare thing to me, though, and I’d gladly make that tradeoff to kill the 1 KB = 1024 B issue.

  16. Yeah this claim is ridiculous. If you buy a drive marked “500GB” and plug it in to your computer, why shouldn’t your computer report it as “500GB”?

    By now the HD specifications are well-established, why not remove the confusion at the OS level, instead of always having to have that stupid footnote on every retail hard drive sold…

  17. I can’t fault Apple as long as it stays consistent. According to SI, the prefix kilo denotes 10^3 so if they use that definition, they’re not in the wrong. However, I would have much preferred KiB, MiB, etc. since the actual number of bits on the drive is calculated and defined in base 2 so the resulting figure is more accurate to the numerical value it is purported to represent. It also cuts down on binary confusion when used alongside things like bitrate, which are base 10 by default.

    What I mean to say is that, though their definition isn’t wrong (as in actually being a kilobyte), it is slightly ill-fitting since that term in itself is the result of poor historical precedence.

  18. kinda like the metric debate huh. it it just me or does everybody measure things in imperial decimals before going to the store to find those damned fraction rated parts? ie I measured a gasket in my bathroom to be exactly .040 inches and went to the store to find the closest fraction unit.

  19. Since all of the argumentative folks that maintain kilo means 1000 have all assumed that a byte means an octet, I am forced to conclude that they are new — and while vehemently enforcing a standard on an assumed quantity (though generally agreed upon, but assumed never the less) that they are also wrong.

    Can the metric system even be applied to quantized units?

  20. Ok, I’m going to set aside the 1000 vs 1024 argument for a moment and ask: Why the hell are people bringing up “size on disk”? It has nothing to do with this. The size on disk value is the amount of physical bits it takes up on the drive, given the filesystem and the way the file is stored.
    For example, the file may be extremely fragmented, and since each fragment needs to be located when reading it, there is extra data for the OS to find the next fragment — this would give the file a larger “size on disk” than the actual contents of the file. Think of a “linked list” if you’re familiar. Similarly, extremely small files (less than the allocation unit size of the filesystem) will show up as the allocation unit size, since that is the smallest chunk of data the fs can allocate.

  21. But hard drives are not the only devices that are measured in bytes. What about RAM? They are all by design power of 2. So you want to see “1.something GB” of RAM when you install it?

  22. @dans: lol, tnx a lot for the xkcd. Good one.

    Since we have two committed and opposing sides, I propose a vote.

    a: A kb = a kilobyte = 1024 bytes.
    b: A kb = 1000 bytes.

    As someone educated in computer science, I vote a. A kb is 1024 bytes. This convention trumps the (admittedly standard and well-reasoned) arguement that a kiloanything is a thousand of ’em.

  23. Oh and yea imperial system is SOOOO confusing for the rest of the world….15.4” big is that?… 03/04/2009? Is the guy from USA..maybe it is March not April…

    It is so stupid how we can not agree on some very simple things in the beginning before they become BIG!!…standards save money, time and headache..lot of it.

    1. This is the reason they need to just get rid of KB of any kind. 1000 or 1024. It’s ambiguous and harmful to the pursuit of technological and scientific progress. It’s almost as bad as if they decided on KdB for 1000 [decimal] octets(8-bit bytes), and KbB for 1024 [binary] octets. Totally wouldn’t confuse students when dB is used for decibels, or repeating the b and B part which is just bound to lead to typos. XD

      You’d think they’d learn their lesson with the Mars probe that crashed. Calling it “correct” to use K as 1000 simply because the SI magically has some kind of monopoly on the letter K is pedantic at best, self-serving egotistical at worst.

  24. Regardless of how big the OS says the drive is, it will still only hold a set amount. So unless software manufacturers start calculating their own filesizes in base ten, and the OS itself starts calculating all sizes (not just HDD size) in base 10, this causes more confusion than anything else. Because all of a sudden, your 6 gig program won’t install when you’ve only got 472 gigs filled on a “500” gig drive. What happens if the OS responds to an available space query in base 10, but the program interprets it as base 2?

    1. Wikipedia as a reference… You realize that’s circular reasoning, right? They even state so on their site – use the references at the end of the article, not the article itself.

  25. The real problem is that nobody can agree on ONE standard unit for this mess… so we have a 1000 bytes to a kB in storage selling/reporting in some OSes, but what is a kB when the software writers tell you it will take this much space to install a program? Yeah, this is going to be messy in so many ways.

  26. “it it just me or does everybody measure things in imperial decimals before going to the store to find those damned fraction rated parts? ie I measured a gasket in my bathroom to be exactly .040 inches and went to the store to find the closest fraction unit.”

    Huh. How the hell do you measure to .040 inches? What ruler do you use that has such decimals? Is it a laser ruler or something?

    The one and only benefit I will say to using fractions is that even if your ruler is improvised, fractions are easy. It’s a lot easier for me to see a half or a quarter than 0.3. I can fold an 8 1/2″ sheet of paper in half and say ‘that’s 4 and a quarter inches’…fold that in half and it’s 2 and an eigth. fold that in half and it’s 1 and a sixteenth. Or 1.0625″. Or 2.69875 cm.

    Oh, and getting back on topic – a kilobyte is 1024 bytes. Otherwise you end up with things like 62.5 quad precision values per kilobyte. The computer stores things in groups based on powers of 2, so when discussing that storage you have to use powers of 2.

  27. No-one has mentioned the real problem with kibibyte et al. They sound *really* stupid. They will never catch on with anyone but pedants because no-one wants to say or hear them. It just makes people cringe.

    I hereby propose that we create new binary prefixes that don’t sound so stupid. Hackaday, you should clearly run a contest.

    Here’s my entry:

    1024: k2B, pronounced kilo2-byte
    1024^2: M2B, pronounced mega2-byte

  28. It hurts to see that not even on a site that is made for geeks people know about SI perfixes.
    k = kilo = 10^3 just because it was done wrong in the past means that it is wrong to correct the mistakes know. The IEEE/ISO standard for KiB is quite old already. Nevertheless, peoople are still stupid – I have seen papers written by computer scientists that confuse the two…

  29. Thaaat’s why snow leopard users seem to think it’s freed up space. It’s just reduced the value of a gigabyte.

    “Oh! When I installed snow leopard it freed up 15GB of space! That’s amazing, windows doesn’t do that!”

    I apple’s their marketing division. When they stop criticizing the competition in their ads and start promoting themselves (truthfully) then maybe I won’t view the company as a room full of douchebags

  30. At least, users will stop speaking about “formatted disk size”, which is absolute nonsense. Formatting a 500gb drive never took away 24gb, that’s ridiculous : at most a few 100’s mb for directory structure and all that stuff.

    Displaying the “real” disk size will help debunking the formatted capacity myth.

  31. @john
    The default install of Snow Leopard is about 7 actual GB smaller then a Leopard install. However, due to the magical shrinking gigabyte™ it appears to the user that it has freed much more space on their disk.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.