Slashdot Mirror


When 1 GB Is Really 0.9313 Gigabytes

An anonymous reader writes "When it comes to RAM, as every geek knows, 1 GB does not mean 1 billion bytes.. it means 2**30 (1,073,741,824) bytes. However, several decades ago "they" decided that GB, MB, and KB would be interpreted differently when it comes to disk drives; 1 GB means exactly 1 billion bytes. Ed Bott points out that Microsoft's marketers and Windows kernel developers aren't on the same page when it comes to these units: the marketers use the more generous decimal interpretation, while Windows measures and reports capacity using the binary (2**30) measure. Careful customers who bother to check what they've got have been known to get peeved by the discrepancy."

21 of 618 comments (clear)

  1. so... this is old news by liamevo · · Score: 5, Insightful

    Article is a forum post from 2008 talking about things we knew before then.

    Why was this posted?

    1. Re:so... this is old news by mrbluze · · Score: 5, Insightful

      Article is a forum post from 2008 talking about things we knew before then.

      Why was this posted?

      Extra slow news day?

      --
      Do it yourself, because no one else will do it yourself. [beta blockade 10-17 Feb]
  2. Even worse! by Anonymous Coward · · Score: 5, Insightful

    To make it even worse, the first comment in that forum states:

    > this is common knowledge for most ppl here.

    timothy should get fired. He's not doing what he is supposed to be doing in a very grossly incompetent, outright insulting, way.

    1. Re:Even worse! by TheRaven64 · · Score: 5, Funny

      timothy should get fired

      You can't fire him. He's a 5-line perl script. All you can do is file bug reports.

      --
      I am TheRaven on Soylent News
  3. Terabytes by Janek+Kozicki · · Score: 5, Informative
    It gets worse when you start counting terabytes. I recently bought a 2TB HDD and grown my mdadm raid array using:

    mdadm --add /dev/md69 /dev/sde3
    mdadm --grow --bitmap=none /dev/md69
    mdadm --grow --raid-devices=5 --backup-file=/root/grow_md69.bak /dev/md69
    mdadm --grow --bitmap=internal --bitmap-chunk=65536 /dev/md69
    resize2fs /dev/md69

    And I was surprised that my filesystem grew only by 1800 GB ! Still a bit more space for rsnapshot cron backing up all my family's PCs twice per day. But still... I wanted 2TB more, not 1.8TB.

    --
    #
    #\ @ ? Colonize Mars
    #
    1. Re:Terabytes by neyla · · Score: 5, Insightful

      It does indeed get worse and worst with increasing size of the units.

      The difference between 1 KB in base-10 and base-2 is 2.4%

      The difference between 1MB in base10 and base2 is 4.9%

      The difference between 1GB in base10 and base2 is 7.4%

      The difference between 1TB in base10 and base2 is 10%

      The difference between 1PB in base10 and base2 is 13%

      The difference between 1EB in base10 and base2 is 15%

      2.4% difference isn't a huge deal, but 15% difference is much more noticeable.

  4. Re:Yeah yeah, this is old news.. by StoneyMahoney · · Score: 5, Insightful

    If the computer industry can't adapt to counting the way of the rest of the world does, that's our problem. We should be pointing at whoever originally decided that they should usurp the already established term Kilo to mean 1024 and slapping them upside the head. Anything less is pure arrogance on our part.

  5. GiB by Anonymous Coward · · Score: 5, Informative

    Finally adopt the official prefixes.
    If you are talking decimal, use GB. If you are talking binary, use GiB.

  6. Not this again. by serviscope_minor · · Score: 5, Insightful

    There is no big grand conspiracy of evil marketing people versus the grand world of computer people.

    1G = 10^9 in every area.

    1Gbit/s = 1e9 bits per second (noone complains)
    1GHz = 1e9 cycles per second (noone complains)
    1GT/s = 1e9 transfers per second (noone complaines)
    1GB = 1e9 bytes (oh the horror! the evil marketing oh woe woe woe)

    The only reason it that 1GB = 1GiB every caught on is because RAM really relies on a power of 2 address bus, so it's always very closely tied into powers of 2 and it's convenient to round that to its nearest decimal equivalent in order to talk about it succinctly.

    There was never any reason to do it for anything else, and hard disk manufacturers pretty much never used GiB when they meant GB.

    And even the venerable 3.5" floppy was an unholy mixture of KB and KiB multiplied together.

    --
    SJW n. One who posts facts.
  7. Someone's not paying attention by Anonymous Coward · · Score: 5, Funny

    What's all that confusion. XKCD had that sorted long time ago:
    https://xkcd.com/394/

    Please pay attention!

  8. Re:"they" can fuck off, the binary units are the o by dingen · · Score: 5, Informative

    Actually, when it comes to correctness: the International System of Units defines kilo-, mega- and giga- as powers of 10 instead, not powers of 2. I think it is much clearer for a user to define a megabyte as a million bytes. How memory is handled inside a computer is something developers care about, no user should be bothered with it. So all in all I agree with the marketing-people, albeit for different reasons.

    --
    Pretty good is actually pretty bad.
  9. Re:Yeah yeah, this is old news.. by Anonymous Coward · · Score: 5, Insightful

    Back when I first studied c.eng, it was drummed into us that base 2 units were ONLY to be used for references to perfectly binarily addressable devices. RAM as we have it today with word lengths that are also powers of two is one. CPU Registers another. Some displays at the time were as well, although no longer, and the origin there was RAM based.

    All else, such as file sizes, card, tape or disk storage, network bandwidth, logic frequency and the like were strictly Base 10.

    Then small systems crept in and base 2 assumptions began to spread. The 1980s brought hard drives marketed with base 2 units. In the 1990s people started to believe a 10MHz cpu was 1024*1024*10 Hz.

    Now this century it's not uncommon to find self-professed geeks calculating say, theoretical throughputs based on the idea their gig-ethernet is 1073741824 bits per second, or that their CPU/RAM speeds use similar numbers in GHz.

    it amuses and saddens me to see newbie geeks calling base 10 hard drive sizes "marketing units", when they simply haven't been taught correctly.

  10. Re:"they" can fuck off, the binary units are the o by Canazza · · Score: 5, Insightful

    and by the same standards, 2^10 is a KiB

    and yes, why is this geek news when anyone with either a passing interest, or who has ever done a wiki crawl, will know this?

    --
    It pays to be obvious, especially if you have a reputation for being subtle.
  11. Re:"they" can fuck off, the binary units are the o by Anonymous Coward · · Score: 5, Insightful

    A terminology they just up and made up later. I have never heard anyone actually use it.

    Ask yourself, when is the last time you heard someone refer to mebibytes and gibibytes. Everyone uses metric prefixes.

  12. Re:"they" can fuck off, the binary units are the o by gomiam · · Score: 5, Informative

    I don't know about hearing, but I have read GiB and MiB at the Linux kernel logs since quite a long time.

  13. Re:"they" can fuck off, the binary units are the o by peppepz · · Score: 5, Insightful

    Please remind me: How many bits is there in an SI byte? Is it 10, 100 or 1000.

    There is no "byte" in the SI. The question is therefore irrelevant. There's an IEC standard containing prefixes for 2^10, 2^100, 2^1000 etc, and those prefixes are kibi-, mibi-, gibi- and so on. The SI officially references them, even if they're not strictly part of it.

    If your byte contains 8 bits, you are either using the binary sizes, or you are mixing things to fool the customer.

    What's the relationship between the number of bits in a byte being 8 and 2 being the base for the multiples of the byte? Moreover, deciding that "a byte" is *the* unit of the smallest addressable memory cell of machines is a oversemplification, because there were in the past, and there might be in the future, machines having a word size which is not even a power of two. If anything, one might think that using powers of two to "size" memory comes from the fact that the widths of the ranges addressable by a bus made of binary wires are by nature powers of two - but that has nothing to do with the fact that the addressed items are bytes, 37-bit words or whatever.

    Hard disks are memory, and counting that memory in powers of two makes no sense for them, since they store bits in very strange patterns, therefore hard disk manufacturers never adopted it. Computer networks transfer memory, and counting that memory in powers of two makes no sense, especially since they often transfer bits and not bytes, hence network designers prefer using bits and their decimal multiples rather than their binary counterparts, and they've always done so.

    If you broaden your vision, you'll see that it's transistor-based memory to be "the exception". Therefore the onus should be on operators of that field to adopt the standard binary prefixes, as ugly as they may sound (and no I don't like them either), in order to avoid ambiguity with the terms used by the rest of the world.

  14. Re:"they" can fuck off, the binary units are the o by staalmannen · · Score: 5, Insightful

    and by the same standards, 2^10 is a KiB

    and yes, why is this geek news when anyone with either a passing interest, or who has ever done a wiki crawl, will know this?

    Indeed and since when did it matter what Microsoft does on ./ ? Stuff on ./ seems to get less and less "nerd" (figuring out how stuff works / hack together solutions) and more and more "geek" (the "tech hipster" buying the latest stuff, preferably before it is cool).

  15. Re:"they" can fuck off, the binary units are the o by dkleinsc · · Score: 5, Funny

    Maybe GP is running on a big-endian machine?

    --
    I am officially gone from /. Long live http://www.soylentnews.com/
  16. Re:"they" can fuck off, the binary units are the o by Eraesr · · Score: 5, Interesting

    The problem arises when the two are used interchangeably. I don't care if a HDD's packaging expresses the capacity in powers of 10, as long as it's clear there's a difference between KiB and KB.
    A much bigger problem is manufacturers having their devices marketed with 64GB of storage when only half of that amount is available for the user due to the other half being taken up by the OS and pre-installed apps.

  17. Re:"they" can fuck off, the binary units are the o by JDG1980 · · Score: 5, Funny

    and by the same standards, 2^10 is a KiB

    No one ever uses that terminology in the real world (well, maybe a handful of standards-crazy Linux developers, but that's about it). There was an attempt to shove it down everyone's throat on Wikipedia a couple years ago and it was decisively beaten back. No one wanted this baby-talk in their articles. The Commodore 64 didn't have 64 "kibibytes" of RAM (I feel silly even typing that), it had 64 KILOBYTES of RAM. That's how prefixes have always been used in the IT world and always will be. The International System of Units can go to hell.

  18. Re:"they" can fuck off, the binary units are the o by bws111 · · Score: 5, Insightful

    None of what you are talking about has anything to do with what I said. I am talking about the measurement of things, not the things themselves.

    Memory components are power-of-two boundaries in size. This is necessary because if they were other than a power-of-two in size, math would have to be performed on each memory access. For instance, if you had memory chips that were 1000 bytes in size, and you wanted to access byte 1024, you would have to perform a calculation to find that the byte is at location 24 in the second chip. With binary sizes however, all you need to do is use the address lines to directly access the correct location in the correct chip. Also note that the word-size of the data does not matter: you could return 1 bit, 8 bits, 10 bits, anything at all. What matters is that the number of 'things' (whatever size of the 'thing' itself is) is always a power of two.

    Network speeds are not dependant in the slightest on a power-of-two, regardless of the data being transported. There is absolutely no reason to say that a network that can transfer 1024 bits per second is in any way better or more natural than one that can transfer 1000 bps or one that can transfer 1100 bps. There is no reason to assume that a 'kilobit per second' is anything other than 1000 bps. And if you change the measurement to count bytes instead of bits, a network can transfer 137.5 Bps as easily as it can transfer 1100 bps, or 1.1Kbps.

    Hard disk sizes are like network speeds: there is no inherent power-of-two to their size. There is no reason why a disk could not be made to hold exactly 1000000 bytes (excluding the fact that you would have a partial sector). Therefore, trying to force some power-of-two based prefix on those sizes is just silly.