Slashdot Mirror


Apple Kicks HDD Marketing Debate Into High Gear

quacking duck writes "With the release of Mac OS X 10.6 Snow Leopard, Apple has updated a support document describing how their new operating system reports capacities of hard drives and other media. It has sided with hard drive makers, who for years have advertised capacities as '1 GB = 1,000,000,000 bytes' instead of the traditional computer science definition, and in so doing has kicked the debate between marketing and computer science into high gear. Binary prefixes for binary units (e.g. GiB for 'gibibyte') have been promoted by the International Electrotechnical Commission and endorsed by IEEE and other standards organizations, but to date there's been limited acceptance (though manufacturers have wholeheartedly accepted the 'new' definitions for GB and TB). Is Apple's move the first major step in forcing computer science to adopt the more awkward binary prefixes, breaking decades of accepted (if technically inaccurate) usage of SI prefixes?"

13 of 711 comments (clear)

  1. Re:Its been done for years already by schmidt349 · · Score: 5, Insightful

    What's more, Apple's been sued a couple of times over the definition of a gigabyte by angry idiots who didn't understand that 10^9 != 2^30. Possibly they're doing this in part to minimize their future liability.

  2. Tilting at windmills by Melkhior · · Score: 5, Informative

    The SI prefixes have been around for nearly 5 decades, and have a specific meaning used by everybody. Every scientist uses them in one way or another, and for every last one of of them, they have the same meaning.

    Why can't we, the C.S. people, accept that?

    Giga is 10^9. It has been 10^9 since it was created. It was never, ever meant to be anything but 10^9.

    If you want to talk about 1024^3, then it's Gibi. Gibi is 2^30 since it was created. It was never, ever meant to be anything but 2^30.

    Get over it.

    (and yes, I try to always use GiB whenever it's appropriate).

  3. 1 MB = 1,000,000 bytes by moon3 · · Score: 5, Informative

    http://en.wikipedia.org/wiki/IEEE_1541

    These IEEE recomendations seam like common sense to me.

    1 KB = 1,000 bytes
    1 MB = 1,000,000 bytes
    1 GB = 1,000,000,000 bytes


    And for you droids and androids out there:

    1 KiB = 1,024 bytes
    1 MiB = 1,048,576 bytes
    1 GiB = 1,073,741,824 bytes

  4. The ripoff scales non-linearly with size by Ant+P. · · Score: 5, Informative

    For 1KB the difference is 24 bytes.
    For 1MB, 2**20 - 10**6 = 48576, 48KB difference or 4.6% less than the larger of the two.
    For 1GB, 2**30 - 10**9 = 73741824 (73MB), 6.9%.

    For a 1TB hard disk you're being short-changed by 9%: 94 gigabytes!

  5. SI units vs. binary units by Omnifarious · · Score: 5, Insightful

    I'm happy Apple is doing this. The use of SI unit names for base 2 values was convenient and gave relatively small errors for low numbers. But up above a gigabyte, and certainly in the terabyte range it's just plain wrong. And certainly nobody who's not a CS person is going to think "Oh, yeah, I divide the base 10 exponent by 3 and multiply by 10 to get the base 2 exponent because this is a piece of computer equipment!".

    The binary SI prefixes aren't that hard to use when they really make sense. Computer science should get with the rest of the world in how things are measured and quanitifed and stop doing so with its own special language understood by those well versed in the field unless that language uses words and terms clearly different from the standard ones.

  6. that "standard"? by Mathinker · · Score: 5, Informative

    The "standard"? All of the standards associations recommend using G/M/K as prefixes with the base-10 meanings, and using the unambiguous Gi/Mi/Ki (gibi/mebi/kibi) for base-2 measurements. One standards organization was willing to allow the deprecated use of G/M/K as base-2 for measuring semiconductor memory (i.e., RAM) only.

    Do you also recommend that we will suddenly measure disk drive capacity in a different unit if/when we all move to using quantum computers or computers based on some other new currently unfamiliar technology?

    Oh, and BTW, at least one of the technologies which has a small chance of replacing current RAM technologies, phase-change memory, could theoretically store 3 or 5 states per unit cell instead of 2 or 4, given the right material undergoing the phase change. One of the reasons not to do it is because it would be a pain to convert to and from base-2 to interface with the computer, so in the long run it is possible (but not necessarily likely, because there is a large initial development cost) that some computing devices will be designed to work in base-3 or base-5 if only to better utilize the abilities of PCM.

  7. Re:Its been done for years already by mftb · · Score: 5, Informative

    Because as far as disk space occupation goes, that file may as well be 16KB.

  8. Re:Its been done for years already by mokus000 · · Score: 5, Informative

    A bigger issue, for me, is why the stupid Finder reports file sizes based on blocks! This makes no sense. I can plug in a flash drive, and the Finder will report that a 12KB file, copied to the desktop, is now a 16KB file. This isn't rocket science, FIX IT already, Apple!!

    Well, given an 8k or 16k block size, a 12k file *DOES* consume 16k of usable disk space. Plus 600-700 bytes for the inode and directory entry. Plus more if there's any magic Apple-y metadata associated with the file.

    For what reason do you expect any filesystem browser to report the exact number of bytes in a file? I'm almost always more interested in knowing how much disk space is used by the file - 16k in your example. In a filesystem like JFS that dynamically allocates inodes, I might even expect it to report the space used by the inode. FWIW, 'du' will report 16k in your example as well. Is 'du' wrong too?

    Also, what should it report for directories? Taking a directory of the source of GHC 6.10.4 on my computer as an example (lots and lots of smallish source code files):

    $ find . -type f -exec cat {} \; | wc -c
      29776950
    $ du -sk .
    35036 .

    Those numbers don't match (taking into account the conversion between bytes in the first case and kb in the second), but I can't see a reason ever to care about the first one. It's not even a very good indicator of what size an uncompressed tar file would be.

    Finally, I just went and took a look at a small file on the desktop of my mac. "Get Info" tells me:

    Size: 8 KB on disk (782 bytes)

    So it *does* report the number of bytes in the file, as well as the disk usage, clearly labeled. Now I really don't exactly know what you're whining about.

    --
    Additive identity, multiplicative cancellation, distributive multiplication over addition: pick any two (unless 1 = 0)
  9. Re:Its been done for years already by Anonymous Coward · · Score: 5, Insightful

    then all the English speaking countries should switch to metric according to your logic.

    Yes. Yes they should all switch to metric.

  10. Re:Its been done for years already by norton_I · · Score: 5, Informative

    So we've had a defined standard that was, arguably, not the easiest to understand. THEN harddrive manufacturers started their fraud. And THEN people started complaining. So what, and please think about this, would be the right decision here?

    This is revisionist at best and really just wrong. Despite all "wisdom" to the contrary, there has never been a universal acceptance of 1 MB = 2^20 bytes on computers. For instance, all of IBMs mainframe hard drives from the 60s and 70s were sold using base-10 prefixes. Early desktop hard drives from the 80s used both. I think the ST506 used base-2, but some other models used base-10. All networking and communications standards (ethernet, modems, PCI, SATA...) use base 10 prefixes for MB/s and Mbit/s. 3.5" floppy disks used NASA-style units where 1 MB = 10^3*2^10. Even while RAM is still almost always measured in base-2 units (due to manufacturing issues making it much easier to produce in power-of-2 sizes -- something which is not true for hard drives) the speed of the memory bus on your CPU is still measured in base-10 units.

    It is a *good* idea to have K and M mean the same thing everywhere. A system where a 1 GB/s link transfers 0.93 GB every second is stupid. This is especially important as computers are being used in more and more environments. Should a 1 megapixel camera mean 2^20 pixels? What about CDs with a 44.1 KHz sampling rate?

  11. Re:Its been done for years already by mfnickster · · Score: 5, Insightful

    > 1024 is NOT arbitrary.
    > ...
    > Because computers work in powers of 2.

    What he means is, it's an arbitrary choice of *grouping* - there's nothing in the base 2 or base 10 systems that puts 1024 on a digit boundary.

    1024 is 2^10 - to be self-consistent, they should have chosen 2^8 or 2^16 for grouping, since 8 = 2^3 and 16 = 2^4, but they chose 2^10 because it happened to be "close to 1000"

    They took the "kilo" prefix out of convenience and wedged it into a system not suited for it.

    --
    "Slow down, Cowboy! It has been 3 years, 7 months and 26 days since you last successfully posted a comment."
  12. OSX does this too... by PC+and+Sony+Fanboy · · Score: 5, Funny

    If you right click a file in Windows and go to Properties you see:


    Size: 2.47 KB (2,539 bytes)
    Size on disk: 4.00 KB (4,096 bytes)


    I thought Mac OS X was supposed to be easy?

    Mac OS X does this as well.

    The problem is that mac users don't know how to use a computer ... ergo, they are mac users.

  13. Re:Its been done for years already by Kjella · · Score: 5, Insightful

    Because computers work in powers of 2.

    Except when they don't, like floppies, CDs, DVDs, BluRays, HDDs, dial-ups speeds, networks or any of the many other places where they don't. Eventually you run into issues where there's a GigE (1,000,000,000) network adapter running a 3GHz (3,000,000) processor which is processed in 512 MB (512*1024*1024) RAM before being stored over a 3 Gbit (3,000,000,000) SATAII connection to a 1TB (1,000,000,000,000) hard disk. Every time you run into other sciences like "we need to process 1000 samples/second at 16 bits, that's 16 kbits right?" you run into trouble.

    On the other hand, I can go into the details and say that in order to fit the CPU L1 cache it's 64 kB (64*1024) and textures can be maximum 2048*2048 pixels and there are exactly 512 stream processors to work with, you can handle 2^32 bits in an integer and so on and so forth. We're never going to get to where we can ditch base 2 sizes either, they're vital on almost every level once you get into the details.

    Everytime you say "this is not a problem, because computers don't interact with the rest of the world and/or it's always trivial to tell" you are seriously deluding yourself. All the people saying "you should all use kB = 1000 and forget the rest" or "you should all use kB = 1024 and forget the rest" are both deluding themselves. We need both and we need clearly defined units for both. That's why I now say use kB = 1000 where it's correct. "Losing" the battle over kB is the only way we'll have kB and KiB, because clearly it's impossible to change the meaning of kilo = 1000 in everything else.

    --
    Live today, because you never know what tomorrow brings