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."
Article is a forum post from 2008 talking about things we knew before then.
Why was this posted?
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.
Yeah yeah, this is old news.. but nevertheless, this is one of the only things in the IT industry that really peeves me off.
Its not just Windows, but Linux and every other OS uses the base 2 notation for KB, MB, GB, TB, etc.
Why can't we just oust hard drive manufacturers for what they're really doing (ripping us off) and force them to just base 2 notation :/
You can tell how powerful someone is by the magnitude of the crime they can commit and be able to get away with.
mdadm --add /dev/md69 /dev/sde3 /dev/md69 /dev/md69 /dev/md69 /dev/md69
mdadm --grow --bitmap=none
mdadm --grow --raid-devices=5 --backup-file=/root/grow_md69.bak
mdadm --grow --bitmap=internal --bitmap-chunk=65536
resize2fs
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
#
If there's a query about which units are being used, the question "Is that 'real' GB or do you mean 'marketing' GB?" is the way I usually phrase it.
"If you think the problem is bad now, just wait until we've solved it." --- Arthur Kasspe
Finally adopt the official prefixes.
If you are talking decimal, use GB. If you are talking binary, use GiB.
Recently I decided there were now so many of these ludicrous stories, it was a waste of time to post regularly. As of this very second, I'm beginning to wonder if it's even worth the bother to parse the daily Slashdot headlines.
It's the 'they' who bastardised existing base 10 terms like mega, kilo, giga etc that should be slapped. They're base ten when it comes to data rates, mass, energy, power, distance, pixels, frequency... Oh except when it comes to bytes. Hell, even megabits are used as a base 10 measurement. Bytes though? One particular word length... That's special because of something something rounding.
If only Ihad a time machine to go have harsh words with the first people to adopt kilo as 1024
Base-2 prefixes belong with RAM, a naturally binary-only addressible device. All else makes sense as base 10
True, the discrepancy is old news but as capacity increases the difference is becoming more noticeable.
It would be so much better if "they" were persuaded to return to using the correct measurement.
It's all quite well defined actually. GB = 10^9, GiB = 2^30, and so on.
You should stop fleecing website owners
...is this still common practice? Call me naive, but I would hope that, by now, a large (or at least significant) portion of the "average consumer" body would be comprised of the generation that grew up learning about computers, and could therefore generate enough negative feedback at the markets to initiate a change away from this particular status quo. Then again, I look at CES and hope slowly fades...
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.
Did you read TFA? Apparently not, as it's a horribly bad article.
It does not know what it is talking about as it wildly mixing the discrepancy from the binary/decimal conversion with a company advertising "64 GB tablets" but the user only has 50 (or whatever) due to the OS taking space. The linked articles from TFA make that very clear.
This entire post and the linked articles are just a mess of uninformed, confused mess and it should never have made it on slashdot. I wish we had a moderation system where you can click "This article belongs on slashdot" and "This article does not belong on slashdot" so the editors could learn what the userbase wants. And could get fired if their failure-quota gets too high.
I like to go back in time a find the lazy bastard who refused to say 1.024K bytes when they made that first 1K chip.
What's all that confusion. XKCD had that sorted long time ago:
https://xkcd.com/394/
Please pay attention!
Long ago, when manufacturers started making 1024 bit RAM chips, people found it easier to refer to them in common speech as "kilobit" chips. Every engineer knows that RAM chips come in powers of 2 and therefore what they really meant was 1.024 kilobit RAM. Later, some kiddies who didn't know any better started thinking that "kilo" actually meant 1024 but only for RAM chips, and then others thought that it meant 1024 for anything related to computers. Wrong. Kilo means 1000. Always has. If you want to talk in multiple powers of 2, the correct name for the prefix is kibi or mebi etc.
This National Standards Institute document explains the difference.
http://physics.nist.gov/cuu/Units/binary.html
Also Wikipedia: http://en.wikipedia.org/wiki/Mebibyte
In summary, 1GB (Gigabyte)=1000000000 bytes, 1GiB(Gibibyte)=1 073741824 bytes.
Slashdot is not an education site, and this is still news, because nothing has changed. You simply don't hear about it that often, because your right, most people know about this marketing[decimal] vs real[binary] measured value, and the whole lies/justifications around it. This is simply a new spin on things...[I quite like the way the heading has chosen to show marketed:real] Microsoft [perhaps unfairly; everyone else does it] because they represent the real values within the OS, and lie about the real values on the packaging...something that is magnified [and fairly] that their OS occupies so damn much of these limited storage on their[not your] portable devices...including its own surface brand...and "No", external storage does not replace internal storage, like having USB slots does not replace internal storage on a Desktop PC; its a feature [a good one].
In context of this article today I am moving an OS from 100GB failing drive onto a 40GB Good one, and did not remove enough data [because I guesstimated wrongly] before cloning it, so after removing more data [I used bleachbit] I'm now re-cloning it; its set to finish tomorrow!?
Why has no one learned?
"Kilo" is latin and literally means a thousand. But for some reason, people seem to think that "a thousand" shouldn't mean "a thousand" when suffixed by "Bytes" (though if it's bits, it's totally cool).
There's a completely legitimate and useful alternative set of numeral words for us, that actually mean the number we're looking for. Yes, I'm talking about the silly "Kibi, Mibi, Gibi, Tibi" terms. Yes, they are silly. But, they're contextually correct and do not cause the sort of ambiguousness that "Kilo" does if applied before "Bytes" og "Grams" does the way it does now.
I'd say the news value here is that despite the fact that the IT World as a whole had a problem, it came up with a good solution, but no one (or very few) use it.
Why?
The fault lies 100% at the feet of the, typically, totally technically incompetent marketers.
Hard drives used, in the long ago good old days, to be measured in base 2 sizes. Back in the days of 20 Meg and 40 Meg and 80 Meg, they were measured using base 2 and so buying an 80 Meg HD, you got 80 "computer" Megs. This was also back in the days of 10+ different HD makers (lots of competition).
Then at some point an idiot marketer was looking for any edge to make his/her companies product look different than the competition. And they discovered that if instead of dividing the count of bytes by 1024*1024 they instead divided by 1000*1000, the result was a larger number. I.e., a 200 Meg hard drive could now be advertised as 209 Meg. Since 209 was larger than 200, they felt this gave them a "one-up" on the other guys. And once the first idiot marketer did this, the rest of the idiot marketers soon followed suit, because they could not have their own products looking "smaller" on the shelf, and the result is that now HD's are the only computer component that is advertised in base 10 sizes.
The idiot marketers are also why when you go to buy a hard disk that is only about 15 cubic inches for the disk itself you find the box to be about 5 cubic feet on the store shelf. Not all of that 5 cubic feet is for "padding". 99% of it is to make the box look larger on the shelf.
Article is a blog post from February 9th 2013. You are looking at a follow up link commented on previous debate about this continuing issue.
Complaining it's old news is like moaning that your newspaper has a report about drunk driving. Old news, but the story is it still happens and still affects people.
In this case the story is also that this situation is ridiculous and confusing. It should be sorted.
Because fuck you that's why!
Who's going to stop us from being misleading? You? Yeah right.
You're just a consumer with zero power beyond running your mouth and generating useless text nobody will read.
Not buy our product? Good luck with that. You'd have to live in a cave to avoid being fucked over by us.
Everyone screws you this way. It's the industry standard fucking.
Now shut up and go buy something. Peon.
You mean like http://slashdot.org/recent
rewriting history since 2109
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.
that's some breaking news...
Typical troll article: "When it comes to RAM, as every geek knows". Yeah right.
If the media itself doesn't care about 10^9 vs. 2^30 presentation then SI units should be used.
SI units here mean GB, if application specific is needed it is GiB, from IEC.
Should not be that hard.
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.
My thoughts exactly. This is an article appropriate for The Today Show or something where you are informing the illiterate masses, not something worthy of posting on Slashdot.
BTW, this reminds me - a couple of weeks ago on the Today show, they were talking about new cool comptuer terms. One they were talking about was "animated GIFs". I felt like I jumped into a time machine and went back 20 years into the past.
Yes, we already know this.
In fact, we knew it:
several decades ago
I'm not sure why this was posted. Did someone come here from Reddit again?
The difference is nicely illustrated by this graphic http://commons.wikimedia.org/wiki/File:Binaryvdecimal.svg
Back in about 1994 I was at a Microsoft conference and they were giving away free copies of Windows NT to anyone who could answer how much NT could address (the address bus was 32 bits at the time). I answered correctly with the answer 2^32 bytes and got my free copy of NT (still in a box somewhere in storage). So at least at that conference I was at MS recognised that the correct quantity was 2^32. So, something seems to be wrong with this article.
to the 20th century, mr. tfa author (and the morons at cbs-owned zdnet)
there's NOTHING NEW HERE... we've known about the differences between decimal and binary storage units for ages. standards bodies even finally separated the two some 12-15 years ago, so we have units like gibibytes (binary) and gigabyte (decimal)..
the ONLY THING MICROSOFT IS DOING WRONG, is not using the correct abbreviations (e.g. gibibyte is GiB not GB) for their binary units as reported by windows. but at least they do report total sizes down to the byte in a drive's properties panel along side the simplified unit sizes.
DRIVE MANUFACTURERS STARTED THIS MESS... so BLAME THEM for any and all confusion.. THE IRONIC THING is that while they use decimal units for megabytes, gigabytes and terabytes, they're all still based on the byte, which is NOT a decimal-based unit -- it's binary, based on powers-of-two, just like the megabytes and gigabytes of old that they were so desperate to get rid of in the name of marketing. if they used 10 bits to the byte instead of 8, a so-called 500 gig hard drive (4 trillion bits, aka 465.7 gibibytes) would "only" be 400 gigs.
Yah, and the Pope announced he's quitting. THAT's news for nerds.
rewriting history since 2109
billion is a wrong english word, because normally a billion is 10^12, only in english its used wrong. so please do not use this number word.
Or how about "Newssite finds: You need to plug the power cord in to switch your computer on!"
I got a laptop. Sounds like bogus news to me.
My thoughts exactly. This is an article appropriate for The Today Show or something where you are informing the illiterate masses, not something worthy of posting on Slashdot.
BTW, this reminds me - a couple of weeks ago on the Today show, they were talking about new cool comptuer terms. One they were talking about was "animated GIFs". I felt like I jumped into a time machine and went back 20 years into the past.
Slashdot is full of illiterate masses now
Please remind me: How many bits is there in an SI byte? Is it 10, 100 or 1000.
If your byte contains 8 bits, you are either using the binary sizes, or you are mixing things to fool the customer.
Sadly, true. As demonstrated by how every other discussion turns into the equivalent of the Disqus forums underneath any CBS or other news article that is linked to by drudgereport.com. If I wanted to hear a bunch of brain-numb mouth-breathers go on and on about "durp durp O'Bozo durp durp ha ha" and "libtards and republicrats dur durr durr", I'd just be clicking on CBS articles and reading the unemployed racist trailer trash commenting at the bottom; not coming to Slsahdot.
1995 called it wants the "Microsoft uses deceptive practices" post back Timothy. Please post something interesting like how to fix pen pressure sensitivity drivers so they actually work with PhotoShop on Windows 8 tablets with pens. Not to mention the other tablets with Windows 8 that do not measure up to the job as yet.
RAM: if they make a bigger module, they usually just double the number of chips on the module -> 2^x. Another reason here is, that you have a nice address, which ends with all zeros (or fills the complete addressfield), when your maximum address is a power of two. ... all of them do not fit in a nice 2^x scheme anyway. Thats the reason, they are produced in GB and not in GiB units.
Harddrives: they are produced independend from such considerations, you have like 100 GB, 500GB, 3 TB
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.
So what that back in the day the computer scientists hijacked kilo/mega/giga because 2^10/2^20/2^30 was close enough to 10^3/10^6/10^9?
Sure, there's a standard now, the unpopular KiB/MiB/GiB, but no-one uses it.
Regardless, the number that should be reported when describing capacity should be the base 2 number when talking about RAM - as RAM is by its nature a base 2 capacity mechanism. The capacity can be described exactly this way.
But for hard drives, where the storage is in effect linear across multiple cylinders, heads, etc, is base 2 what should be used - ignoring historical usage? Well, block sizes are in powers of two... but we don't have a power of two number of blocks. We therefore don't have a capacity number that can be described totally accurately using the base 2 numbering system.
And SSDs? Due to bad blocks, and reserved storage area, we are turning something that was a base 2 capacity memory system into something with less capacity.
And what about the files themselves? They're not powers of two in size, and indeed they waste capacity at the end of the file because the basic unit of storage in a drive is the formatted block size (512 bytes, 4KB, etc). Maybe block based systems should be advertised as offering "2 Billion Formatted Blocks* (* 512 byte blocks)"! In addition that file is likely compressed in some way that you can't consider that it will use the same space in memory when loaded.
A strong argument is that because computer RAM is xGB, meaning x * 2^9 bytes, then we should use the same unit for other things in a computer that are expressed in GB, because in the end it is clearer to the user who can compare the two things, e.g., "the computer has 500 times more HD than RAM".
A pity for your position that the hard disks are considered mass MEMORY.
Using power of ten for binary combination is more braindead than ignoring the international system of units. By a mile, LOL.
Seriously? This was accepted as practice TWO FUCKING DECADES AGO.
I don't know about hearing, but I have read GiB and MiB at the Linux kernel logs since quite a long time.
This is what pisses me off about using, say, Ubuntu and Windows 7 on the same computer. Several years ago Ubuntu (and hence derivatives like Linux Mint) changed their units policy such that 1 KB = 1000 bytes, not 1024 bytes as Windows still does. Hence files sizes will appear differently between the two systems, which is terrifying if you're manipulating data between such operating systems.
It's not the news in itself - it's the discussion which comes from it. I'm firmly in the camp that we should swallow our collective (ahem) 'pride', and realize that it's actually a good thing to standardize and be consistent with the rest of the scientific world in saying that yes, 1kB = 1000 bytes.
Failing the switch to a base number 16 system (which I think is an admirable goal for humanity, or maybe base 12), that's how it should stay.
Why OpalCalc is the best Windows calc
I call tentatively BS on this explanation:
https://en.wikipedia.org/wiki/Timeline_of_binary_prefixes
While far from definitive, this would seem to suggest that the first reference equivocating 1k with 1024 with an article in 1964 by Gene Amdahl, followed by a similar assumption of equivalence in a 1965 article by MV Wilkes. I think it's safe to say these references pre-date those hard drives you mention.
This would suggest that computer science did originally adopt the standard definitions of kilo etc. but then started to deviate from them in the mid-60's for the sake of ease.
It's not that common, but since I've been using Linux since I was a kid, KiB MiB and GiB are my base mental units of data. It makes no difference whether or not they're somehow "better" or "worse". It's just what I'm used to, and the base-2 convention seems to make more sense in the world of computing than base-10 numbers. Computers only work with base 2 numbers directly in any case.
Hectice, baby, Mercator says hello to you
You were lucky, we were told that 655360 was enough!
My ism, it's full of beliefs.
The decimal prefixes are well defined, kilogram, kilometer, etc. are all 1000 of base units.
It's better to have a little innocent "i", ie. KiB instead of having people start wondering what kilo[unit] means...
After all the metric system serves us well, we shouldn't let Americans fuck it up...
I'd pretty much agree to the "we should use base 2, computers are base 2"
However, the article makes a bit of an overstatement. This is not a kernel dweeb vs. marketing dweeb issue. This is a software developer vs. hardware developer issue.
Sofware developer: Base 2 is easier to work with. We use base 2 (or more precisely, the base (2^10) derivative).
Hardware developer: If we use base 10 (or more precisely, the base (10^3) derivative) our drives appear larger.
The point of the system is that it is easy to calculate/work with. While base 10 is easier for humans, base 2 can have some efficiency shortcuts (add the option of using shifts instead of multiplies/divides). Since the vast majority of the time, we see the data at an twice abstracted level (simplified, abbreviated, through CLI or GUI applications), and the exceptions are almost always still slightly abstracted (through code, use of hex/octal/etc. rather than the native bits and bytes), what is easier for the humans (who rarely deal with it direct) is less important than what is more efficient for the computer.
Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
Or you're NASA?
Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
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.
Mac OS loses 4GB in formatting a filesystem? Wow.
Religion is what happens when nature strikes and groupthink goes wrong.
It sounds like you are all getting old and ornery (lol). Welcome to the neckbeard world, better sharpen those razors!
Of course, on computing 1 K is not 10^3 but 2^10. Computers wouldn't work any other way - there would be gaps in the memory space that would crash every program when ran.
But if you read the actual article, it is not about the decimal versus binary definition. It is about the high rate of memory that becomes unavailable on a memory device when formatted by Windows NT. It is a completely different matter.-Ignacio Agulló.
I think it's safe to say that most people who have been in the scene from the beginning think the "correct" SI definition of kilo can also fuck off when it comes to computers. As can kebi, mebi and friends. It had been accepted from the beginning that "kilo" meant something just a little different when it came to describing bytes. I accepted that. Everyone accepted that. There was no problem. Even in academic circles, there were no issues.
The problem came with the storage industry and their pious "oh, but that's not what SI says the units mean". If you think that conforming to strict SI is the reason they made their change, then I'd suggest you not accept kool-aid from strangers. Ever. It was marketing greed, nothing more
However, while I think kebi, mebi and friends can fall down a deep dark hole, I actually don't mind using their unit symbols. At least in that way there is no misunderstanding in writing what is meant, and the trickle down effect from intellectual papers where it's vital that it's specified what value is means to more lay writings can occur without changing the unit symbols. But I do not now, nor will I ever, read 500MiB as "five hundred mebibytes".
It's all in what articles get approved... Somehow the site's become a magnet for pseudo-controversy. Even articles that aren't "controversial" (to most of us) somehow take on an air of Jerry Springer-esque nonsense.
It's not like it used to be. (obligatory, get off my lawn... etc. etc.)
It's the Stay-Puft Marshmallow Man.
>" However, several decades ago "they" decided that GB, MB, and KB would be interpreted differently"
Several??? Sorry, but this marketing crap didn't happen 40 to 80 years ago.
Bits and bytes are base 2 units and it common knowledge that each prefix is base 1024 instead of base 1000. The storage units bit and byte were invented by engineers/programmers that needed to work with base 2. Quite frankly bits and byte shouldn't be allowed units in the SI system. Then need need new storage units if they absolutely need base 1000 prefixes.
A byte doesn't have to contain a multiple of 10 bits, it's just a base-unit, like a meter, a gram or a watt. The number of bits inside a byte is also something only developers care about, for a user the smallest unit he ever has to deal with is a byte.
Pretty good is actually pretty bad.
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).
You're exactly right. It's crazy that so many people these days think a byte has to be defined as 8 bits, nor does it matter how many bits make up a byte in this discussion at all.
Pretty good is actually pretty bad.
This is computer scientists making fools of themselves in front of real scientists by misapplying SI. SI is only meant to apply to systems of continuous scale measure (ignoring quanta of course) – not discrete systems with an inherent natural number base (e.g. binary digital). Byte is not an SI base or derived unit either
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.
I don't know who originally decided to mis-use "kilo" to mean 1024, but the mistake was made in the late 1950s or early 1960s. I first heard that the PDP-1 was a "4K" machine in 1963, and the terminology was already well-established. It might have been done by several people independently.
The difference between 1000 and 1024 is only 2.4%, and the Ki prefix didn't exist yet, so perhaps the misuse is forgivable. However, there is a slippery slope: once you are comfortable with Kilo as 1024, it is easier to successively misuse Mega as 1048576 (4.9%), Giga as 1073741024 (7.4%), Tera as 1099511627776 (10%) and Peta as 1125899906842620 (12.6%).
The obvious solution is for all operating systems, even Microsoft Windows, to display hard drive sizes in decimal, and RAM sizes in binary. When displaying RAM sizes they should use the binary prefixes.
Base-2 prefixes belong with RAM, a naturally binary-only addressible device. All else makes sense as base 10
Oh well, so why hard-drive sectors are 512, 1024, 2048 or 4196 bytes and not 500, 1000, 2000, 4000?
The above post should be modded up by the way.
It's 2^10, 2^20, and 2^30; not exponents of 10, 100, and 1000.
How can I take anything else that you wrote seriously if you got this wrong?
Why should anyone care?
"640K ought to be enough for anybody..."
also...
"The internet is just a passing fad" and "We will never make a 32 bit operating system..."
http://www.beanleafpress.com
It has nothing to do with science, it has to do with people understanding kilo-, mega- and giga- to be powers of 10. Computers should work in ways people understand, not the other way around. The fact memory is internally stored in base 2 is of no relevance at all to a user of the computer, only developers should have to care about that.
Pretty good is actually pretty bad.
The basic issue is Marketing Speak. Those people don't understand how to use the Geek Speak values of 1024, 1048576, and 1073741824. They are going to use 1000, 1000000, and 1000000000. Just understand that and live with it. I do. As long as the sectors come across as sizes 512 and 4096 (instead of 500 and 4000), the device can work. I remember working with mainframes and having sector sizes of 800 on some drives.
I don't use this KiB, MiB, and GiB crap in my software. The standards group that made that doesn't have oversight on software. It was intended for hardware and marketing, which hardly ever uses it. I have code for doing number conversion with metric-LIKE suffixes, but that specifically needs a single letter, so that's just gonna be the way it is. Use it where the binary-ish values apply and don't use it where you need powers of ten.
It's all about knowing which way to interpret the numbers. For disk drives I know they are talking about k=1000, M=1000000, and G=1000000000.
now we need to go OSS in diesel cars
What is this garbage?
Somehow the site's become a magnet for pseudo-controversy. Even articles that aren't "controversial" (to most of us) somehow take on an air of Jerry Springer-esque nonsense.
Yeah, well you would say that, you Obamatard. Everyone knows you don't want to admit that Slashdot was better under the Republicans and that back then a Gigabyte really *was* worth a Gigabyte... in fact, I'm sure it was at least 1.2 gig.
Also, I'm pregnant and the child's yours.
I used to do applecare support. Sadly, one call involved a man whose iMac wouldnt power on. He didn't even have it plugged in.
Reason: The store told him it had wireless.
Nothing new. At the storage company I used to work at we called the 1,000,000 MB number a "marketing megabyte".
Memory is allocated in increments of at least 4096 bytes and a maximum of 1,073,741,824 bytes. Please explain to me how a 1GB page cannot fit into 1GB of memory and why we would allow for the abomination of 244,140.625 4KB pages in 1GB of memory. How does the computer even handle fractional pages, is that even defined?
Screw the decimal system for computers. Using decimal for computer is as annoying as trying to figure out how many degrees Ferinheight one pound of water will increase if you apply one joule of energy.
Yes, it does matter. I don't buy a harddrive in quantities of Gigabits or Terabits. Perhaps it's just how they market it again, but I choose to deal in bytes.
Any GUI designer should not be displaying in quantities rooted in base 2. Users don't think that way. It may be easier for an engineer to do the math and be out of the office at 5pm on the dot, but the user's experience should always be in base 10.
You have bytes with 2^10 bits? So my 16-GByte-server is a 128-MByte server at your side?
I saw this one pop up in my RSS feed and thought maybe /. was broken. Then I went through the comments and realized it wasn't a repost of something old, nor was it really anything new. It was something in between.
/. devolved into what it is today, as I've been reading for years now. It's always had a bit of an anti-MS twist to it, and while I didn't always agree with the article bias, I could see how it could be used as constructive criticism for not just MS, but for other companies as well. When you're the 800-lb gorilla, people notice you. When you're the 800-lb gorilla and you tie your shoes together and fall, other people tend to not tie their shoes together.
I don't know when
This post doesn't really fall into a constructive criticism category, though. It's pure, unadulterated, trolling. I mean the source is a joke. It has to be. The "author" of that blog clearly understands computers. Ed's written over 30 books on software use. He's just griping about something everyone already understands. A slow news day. It happens.
By why, oh why, do the editors here feel the need to pick it up and make it front-page news along with news of Ozone holes, Corn shortages and Social Engineering your way into the Super Bowl? Those are nerdy news stories. This... is not. If you wanted to fill up the front page with stories like this, you should be including the following gems:
- Windows 8 installation DVDs; easily scratched by nails?
- Magnets prove harmful to MS Office installations
- Microsoft Surface Pro sells better than expected; maybe it isn't so bad? (just kidding)
I don't expect this post to actually get anything done, but I'm making it just the same. Something has to change around here. While I know I'm just a drop in the bucket (just like I am with AT&T, Verizon, Comcast and T-Mobile...who I loathe), I'm out. My Excellent Karma, ad-viewing eyes, and borderline nostalgic insightfulness are out. I don't intend on letting the door hit me on the way out, either.
So this site is now called ./? What happed to /.?
Where a Billion is said to be one thousand million (1,000,000,000 or 10^8) when it is regarded to be a million million ( 1,000,000,000,000 or 10^12) everywhere else.
This follows no logic, other than an apparent laziness in writing less zeros. WikiPedia says it's all about French short and long scales, but don't take too much of it as reliable, since it says the UK has been using 10^8 since 1974, which is rubbish, since this has only been used in the last decade, and mainly by the media.
The hard drive sizes are just a sneaky way of claiming larger capacity than is sold.
"Here have a dozen sausages"
"But there's only 10"
"Ah, well see - it's a decimal dozen - so you really do get a dozen"
"But, I've paid for a dozen and I'm getting ten!"
"Details.."
Bullshit, stop clinging to a delusion spawned from a known bug.
"they" defined "kilo", "mega" and "giga" to mean 10^3, 10^6 and 10^9 long before binary computers even existed. The only reason 2^10, 20 and 30 have ever been used is because a coder working on an ancient system decided that 1 clock cycle for a right shift 10 was better than a few hundred odd clock cycles for a divide by 1000 in software, especially when trying to display the sizes of a good number of files on a system clocked at only a few kilohertz (that's 1000 Hz, not 1024 Hz). They were right at the time to introduce a known bug in order to make the system usable. It's totally wrong now to just compute these values incorrectly, when division can be done in hardware, and we have multi GHz (that's 1,000,000,000Hz) machines.
The typical arguments for using binary units is simply "computers are binary, we should use binary units", which is bullshit for two reasons:
1) Not all computers are or have ever been, or necessarily will be binary.
2) The job of the operating system is to abstract the behaviour of the machine into behaviours users expect. Humans are good (mostly through practice, but still) at thinking in base 10, this makes it the job of the OS to work in the human's base 10 terms.
Except carriers and various networking brands advertise in megabits/second. A megabit still doesn't mean a whole lot to me at a glance, I have to do quick estimate in my head to get meaning from it. Whenever I can I change scales in bits to bytes.
I was going to say, the physical world doesn't really care which base unit we used to count with, but computers are very particular about using base 2. When a computer is using integer math to calculate memory addresses in base two and you have a base 10 amount of memory, bad stuff will happen.
Yeah no doubt you grew up with feet, inches and pounds and have never heard of the metric system.
He's talking about prefixes, numb nut. 2^10 is Kibi (1024). What he first stated and got wrong had nothing to do with bits or bytes.
Yet another obligatory swipe at Microsoft. Lets just run a daily article simply saying "Microsoft is a very, very, very bad organization".
Marketeers are at fault on both sides
1GB = 1,000,000,000 Bytes of Hard Disk - but software normally uses GiB so displays as 0.931 (But shows in GB)
1GiB = 1,073,741,824 Bytes of Memory - Software displays as 1.0 (GB)
The classic case is the 1.44MB 3.5" HD floppy disk ...
They were Technically 2MB capacity, were 1440 KiB (1474560 Bytes) formatted which is 1.40625 MiB (which is 1.47456MB) but was marketed as 1.44MB (1000 * 1024)!
Puteulanus fenestra mortis
Easy, because it's bashing Windows and this is Slashdot.
+1 IDisagreeSoHeMustBeATrollOrAnAstroturferOrAShill
Just to clarify, if you want bits instead of bytes, add three to the exponent.
Yes and no. It's a fundamentally architectural thing. Of course you can abstract from the physical implementation of memory addressing, but then you run in lots of strange quirks. If you have n wires to address memory, you can enumerate 2^n memory addresses and not 10^(floor(n*ld 2)). It makes no sense to cut off the remaining memory just to fit exactly into the 10^x-sizes, it just makes things more complicated, because everywhere you have to check for the validity of a binary representation of a memory address compared to their decimal representation and the available memory. It adds complexity without providing any advantages except adhering to a number representation whose only root in reality has to do with the fact, that some successful close relatives to Acanthostega (which had "bytes" of digits, e.g. eight digits per hand) evolved to have only two times five digits per hand.
I was going to say, the physical world doesn't really care which base unit we used to count with, but computers are very particular about using base 2. When a computer is using integer math to calculate memory addresses in base two and you have a base 10 amount of memory, bad stuff will happen.
And what on earth does that have to do with displaying the correct amount of memory to the user? Is there something that will crash my computer if it displays "4.29 billion bytes of RAM"?
You are obviously not a computer engineer. You try to do memory allocations in increments of base 10. Anyone who understands computers know that it isn't just "annoying", it is something that doesn't work correctly. Forcing base 10 onto a computer that works in base 2 is a logical fallacy.
/derp
I know, lets use the floating point unit to address memory!
Maybe GP is running on a big-endian machine?
I am officially gone from
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.
... and in other news Pope is catholic. Even if he's quitting in a month's time
and now this... WTF is going on?
"A 'person' is smart. 'People' are dumb, panicky animals and you know that."
Of course I can see the benefit of using powers of 2 for certain things. Heck I would even like us all to switch to base 16 (or 12 failing that) for the general number system. But consistency is more important when it comes to things like this, and kilo has always otherwise meant 1000.
And have you never heard of mibibytes and mebibytes? They serve that purpose now, so computer engineers aren't left out in the lurch.
Why OpalCalc is the best Windows calc
slashdot you are officially dead to me.
I was going to say, the physical world doesn't really care which base unit we used to count with, but computers are very particular about using base 2. When a computer is using integer math to calculate memory addresses in base two and you have a base 10 amount of memory, bad stuff will happen.
And what on earth does that have to do with displaying the correct amount of memory to the user? Is there something that will crash my computer if it displays "4.29 billion bytes of RAM"?
Yes, it'll overflow the destination string buffer for sprintf, trashing the stack, crashing your computer and possibly causing itchy feet.
How memory is handled inside a computer is something developers care about, no user should be bothered with it.
And yet, users occasionally want to know how much memory they have...
Bytes aren't the only thing you want in powers of two. A 8 Meg FFT is an FFT over 8*2^20 elements.
The number 2 has many magical properties and it is appropriate to use the numbering system that is ideal for the task at hand. Take for example the fact that there are a shit ton of coordinate systems for dealing with locations on the planet. There is lat/lon/alt, there is local vertical, there is ECEF (a nice Cartesian system that gives you XYZ and makes math easy)... Each system has the appropriate time and place for being used.
Trying to force everyone to use the same system for all applications doesn't work. It causes even more problems.
This mess started when someone decided that 1KB would be 1024 bytes, and became worse when someone decided tha 1.44MB was 1440KB or 1474560 bytes. Starting there, what should a GB be?
Maybe Timothy is snowed in and unable to call for help except by posting articles like this. We really need to get a rescue party together.
Many decades ago we decided that 1024 bits was close enough to 1000 that we could, as an approximation, call it 1 kilobit. This was convenient because memory was made in multiples of 1024. The other approximations followed from that, but they were always approximations. Eventually the ISO approved the labels kibi, mibi, etc for the obvious powers of two. Use them. Everywhere else in the world kilo means 1000. Only in computing is it misdefined as 1024.
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
Common knowledge ? The two are different measurements. So, I suspect you don't know as you didn't point out GiB, MiB or KiB.
The binary defenders.
They are the MiB;
The ones you can't remember.
I agree with you and just recently I used a power of two to calculate a quicker modulus in C#.
But that's why we have mibibytes and mebibytes. kilo should mean 1000 no matter what you're talking about. Alternatively, you could always just say 2^x rather than replace with an arbitrary word anyway.
Why OpalCalc is the best Windows calc
k, M, G, etc. are defined SI shorthands for 10, 10^6, 10^9. They have been defined that way long (as in computer age) before computers had (that many) bits. However, when the information age broke out, computer technicians also required the shorten numbers. They decided to synchronize their system with 2^10, 2^20 etc. because it is close to the SI figures (at least for kilo and mega). That was good enough. And it was so much easier to shift values by 10 bits. However, it was in violation of the real SI meaning. To solve that issue, a new terminology was proposed where k, M,G,T meant 10, 10^6, 10^9, 10^12 and ki, Mi, Gi, Pi are 2^10, 2^20, 2^30, 2^40. The idea was to fix software in short time, people should use these *i prefixes until they are able to count and divide their number according th SI units.
Whoever uses G but means Gi should fix their software.
Whoops!
One mibibyte = 1/1024 of a byte? I hadn't heard of that unit before, and for good reason :)
(I am happy with the use of kibibytes and mebibytes, though. It's nice to have unambiguous names for useful units.
(1)DOCOMEFROM!2~.2'~#1WHILE:1<-"'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"
Yet another obligatory swipe at Microsoft. Lets just run a daily article simply saying "Microsoft is a very, very, very bad organization".
Just one daily? Why the cut backs?
Welcome to the world of HDDs, where pretty much EVERY HDD out there is marketed as having rounded storage space (e.g. 1 TB) when that actually is 931.3xx GiB.
This was news 10 years ago, when people started to see difference (why is my 40 GB HDD smaller than advertised?)
...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
What does the units you use in memory allocation have to do with how you define kilobyte? The computer doesn't care if you call 1024 bytes a kilobyte or a foomboozlebyte so what possible difference can it make? Nor does the computer care if what you call a kilobyte is 1000 bytes or 1024 bytes or 27 bytes.
Do you do malloc(1000) to get 1024 bytes allocated on your weird computer or something??? f not then how does 1 kilobyte == 1000 bytes stop you from allocating memory by powers of 2, surely your logic has to be doing that calculation already and really doesn't care what you call 2^10 bytes.
Hard disks live inside computers yet using binary units is inappropriate for them for the same reasons. For memory as seen by the CPU, people can use kibibytes and friends, nobody wants to take them away. Just let them be called with a more specific name so people won't get tricked^Wconfused when they're buying a hard drive.
It makes no sense to cut off the remaining memory just to fit exactly into the 10^x-sizes
Nobody is suggesting the implementation should change. It's fine to use base 2 for storing and transferring data, just change the number that is eventually shown to a user. I think when you buy a 1 TB hard drive consisting of a trillion bytes, your file manager should say "1 TB remaining" instead of ~931 GB. And when you download a file that is a million bytes long, your browser should say its 1 MB. That's the way it is understood by most people now anyway, so what's wrong with changing user interfaces accordingly?
Pretty good is actually pretty bad.
The really annoying part comes when a vendor distributes an iso that is 4.7 gigabytes, but the damn blank media only comes in 4700000000 bit size, so you have to either buy dual layer media to burn the image or spend a few days explaining the difference to the vendor and hope their software people wise up.
I know nobody that ever cared about the "discrepancies" about storage amounts or terminology. What the discrepancy usually amounts to is not being able to have one more movie or whole music album to fit on a given storage capacity, but most people never fill their storage and will simply buy a new drive or upgrade their device when they do.
The kind of people upset by "false" drive and memory capacity labeling are those kinds of pretentious ass hats that have nothing more important in life to worry about so take up a vapid cause for the sake of giving meaning to their useless existence. They need to leave the basement and get out in the sun more.
I haven't thought of anything clever to put here, but then again most of you haven't either.
"Hey! I can power my laptop with the power cord unplugged!"
Extra slow news day? Roughly 1/3 of the US was just buried under snow, and there will be a lot of lost productivity on Monday. I don't see anything about that.
It's a hardware issue. Memory controllers can't cope with non power of 2 sized RAM modules. Unless that changes 1GB RAM will always be 2^30 bytes.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
.
Try using 'Rankin', works the same (in this case) and is easier to spell.
slashdot or American consumers in general?
n/t
This is why the new standard is MB/GB/etc for simple powers of 10 and MiB/GiB for powers of 2...
But why does that matter? If I want to allocate 372 bytes and there's only 371 available I have a problem whatever base I express it in.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
You are correct, the flaw here is actually using a base10 prefix to describe a base8 or base2 systems.
You missed the point of the article. It's not to point out this fun CS fact; It's to take a swipe at Microsoft as somehow being underhanded, despite the fact that this discrepancy was created by storage manufacturers long ago looking to pad their drive sizes back when storage was a premium.
correct ones to use.
That is completely incorrect. Outside of a few misguided file manager utilities from Microsoft and other vendors, binary units are not commonly used in computers to specify anything other than random access solid state memory. They have not been used to specify the size of optical disks, floppy disks, network bandwidth, I/O bandwidth, or for the past few decades (if ever), mass storage sizes.
Why is it used for solid state memory? Because size increments are almost always done by doubling the size of the bit array. But no other part of a computer expands in that fashion.
Why is it not used for anything else? Because dealing with pseudo-binary based arithmetic is just about as convenient as it would be to use god damned ROMAN NUMERALS.
I have to keep a calculator handy on my desk just to convert between KiB, MiB and GiB because of misguided GNU utilities. (Or even worse, reported by those utilities in mystery-sized "disk blocks".) These units should be outlawed.
I hope this is sarcasm. Because if it is not... Just Wow.
Users don't think that way.
All the important users do.
just specify all sizes as e^x
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.
YEAH! Why should the user even see the size of any files or drives or RAM at all? That's for the the devs man!
All those big numbers just confuse the user, even if you explain what they mean you'll be met with "so how much space do I have left now?"
Shortly followed by "I though I had *insert CPU clock speed* space on my computer!"
This same article could have been written 5, 10, or probably 20 years ago. Marketdroids came up with the idea of inflating HDD size by exploiting the ambiguity between base-2 and base-10 a long time back.
And once you factor in the network layer overhead, you're very close to dividing by 10 (in decimal) to go from bits/second to bytes/second.
I would hope that conversion is a type of arithmetic you find trivial.
OK, lets invent some common-sense usage that isn't too incompatible with the real usage:
"K" (note capital K as distinct from 'k', the SI prefix for 1000) is a unit meaning 2^10 bytes. It is not a prefix, it is not an abbreviation, it is pronounced "kay". "Kilobytes" is plain wrong (because kilo- means 1000), "KB or KBytes" is a redundancy. This is not too distant from how it gets used in the real world, and the difference between a kiolbyte and a K is pretty small.
"Mega/M", "Giga/G", "Tera/T" are well-established, formally-defined SI prefixes meaning 10^6, 10^9, 10^12 respectively. Having the same prefix mean different things when attached to different units is ridiculous, so a "megabyte" or "MB" can only sensibly refer to 10^6 bytes. While "1MB = 1024K" might have been acceptable back in the day when 1MB was an absolute shedload of memory and a Terabyte was science fiction, the discrepancy between 'decimal' and 'binary' interpretations increases in both absolute and proportional terms when you start talking about modern memory capacities.
The SI MiB/GiB notation completely misses the point, because its still based on a sequence of numbers that roughly correspond to 10^(3N) based on our convention of writing decimal> numbers in groups of 3 digits - yet if 'roughly corresponds' is good enough then you might as well stick to MB/GB/TB. When working with binary numbers, we tend to write them in groups of 4 (i.e. hex digits) or 8 (bytes/characters). So one possibility would be a set of prefixes based on 2^(4N), i.e.:
1 byte = 16 bytes, 256bytes, 4096 bytes, 16384 bytes, 65536 bytes...
That might mean too many prefixes, so lets bring in Moores law and go exponential , with 2^(2^N)
2^0 = 1 byte = 1 byte (duh!) = 1B
2^2 = 4 bytes = 1 word = 1Wd
2^4 = 16 bytes = 1 gulp = 1Gu
2^8 = 256 bytes = 1 page = 1Pa
2^16 = 65536 bytes = 1 cpm = 1Cp (max RAM of a 16 bit address bus)
2^32 = 4294967296 = 1 amiga = 1Am (max RAM of a 32 bit address bus)
2^64 = 1 shedload = 1Sl (max RAM of a 64-bit address bus)
2^128 = 1 internet = 1In (IPv6, of course)
...and, of course, nobody will ever need more memory than that.
(Must do some work now so can't double-check math or invent better unit names - also, true pedants please s/byte/octet/ in the above).
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
Or how about "Newssite finds: You need to plug the power cord in to switch your computer on!"
That one's from frequent contributor Bennett Haselton.
You need to plug the power cord in to switch your computer on!
But it's wireless! I shouldn't have to!
well how big is a memory-page? 4 kilobytes or 4.0096 kilobytes, alot of structs we use are multiple of 1024, we need to redefine those also in that case. Redefining kilobytes to 1000 bytes would mean that instead of telling another programmer that he need to use a 4 kilobytes struct, that one of 4.0096 kilobytes are needed, this would screw up communications between programmers.
Redefining kilobytes to be 1000 bytes is a form av "leaky abstraction(maybe false abstraction is better)" that would come back and bite us in the ass. I forsee a new class of bugs, the "KB/KB missmatch" class of bugs.
Except Microsoft is the only one mistakenly displaying GiBs as GBs. It may not be "news", but it is not obvious. MS should have fixed this long ago. Now you got Edd the clown trying to tell everyone this makes the MS numbers true and Apple is lying by using SI units properly (and in the same way the hard drive manufacturer does).
Since a fairly well followed tech journalist just lied to the world and said the way MS misuses standard units is the correct way, maybe it is news..
No one said you have do allocations in base 10, only that people should stop misusing units. Kilo does not mean 1024. Ever. If you say it does, you are wrong. Linux and OSx stopped the abuse long ago.it is time for windows to catch up.
Ugh! WHY is this on /. in 2013?? This is ancient news, and probably the oldest and still one of the most reliable ways to troll a geek forum in existence.
This argument, did not, as the summary implies, begin with either Microsoft or a marketing department. This is an old argument originating between CS and EE folks and dates back to the beginning of the modern computer era. Put one or more of each in a room, bring the topic up, then sit back and enjoy. I did this several years ago with some long time friends of mine and it went on for over an hour.
I browse on +1 so AC's need not respond, I won't see it.
Stop calling the Indians fat.
Why is it so hard to only have politicians for a few years, then have them go away?
Slashdot is full of illiterate masses now
I, too, miss the good old days, when Slashdot was full of liberal arts majors discussing classic literature. Where did all these 20-something male techies come from, anyway?
Have you read my blog lately?
Why not? The RAM doesn't care what name you give it.
Except we are talking about a system that processes in base 2 so what some standard says means jack and squat. You build me a computer that processes in base 10 instead of binary? Then I'll be happy to support base 10 being the standard when it comes to computers. But since the days of those giant tube monsters that helped win WWII the machines have been binary, on/off, yes/no, however you want to call it, and its stupid to try to stick base 10 rules on a base 2 system.
Besides fellow geeks let us not forget this horseshit was started by marketing specifically the hard drive manufacturers during the race to 1GB. I remember before it became a "race" that it was listed in base 2 but once the HDD companies realized they could charge a premium if they got past certain metrics then anything they could do to make those metrics happen were just fine.
So please don't buy into marketing bullshit okay? Base 10 works great for standards in the living world because we are base 10 creature and have been since we started counting on our fingers and toes soon after climbing down from the trees. But what we are talking about here isn't a human, its a computer, and computers are binary. Trying to stick base 10 rules on a base 2 world just makes no sense and the whole point of it was deception to allow marketing to say they reached a metric they hadn't and we lose more each year to this.
ACs don't waste your time replying, your posts are never seen by me.
lol, I bet you measure your cock in centimeters, too. So you don't feel bad about your 6cm trouser snake.
It's not really hardware vs software, it is memory vs other stuff.
Memory makes sense to measure in powers of two, because then you can split up the addressing as 'x bits for row select, x bits for column select, x bits for chip select, x bits for DIMM select', etc. Every component of that address (except the very highest level, eg number of DIMMs) is going to be a power of two in size. When the minimum size you could purchase was 1024 bytes, it made sense to be use a well-known prefix that was close to that size. It no longer makes sense.
Disks, network speeds, etc have no such 'binary' component. There is absolutely no reason that those things should be counted in binary.
when it comes to correctness: the International System of Units defines kilo-, mega- and giga- as powers of 10 instead, not powers of 2
Irrelevant in this context, since there is no SI unit of data. The prefixes were certainly borrowed from SI, but so what, SI took them from Latin and Greek. They have no claim to "correctness" in computer science.
This is shit. The author is shit. Anyone who looks at this article is shit.
I'm a network engineer with 30 years of experiance.
Kilo means 1,000
Mega means 1,000,000
Giga means 1,000,000,000
etc. etc.
Now, we all know that 1K of ram was 1024 bytes right? Well, that is true and false at the same time, but it depends on the context. It's all about addressing, or rather it's about the fact that the computers use a base 2 system instead of base 10. In those days (the days of kilobytes) it was easier to identify the fact that 1024 was 1K, instead of the strict definition of 1000.
As numbers increased, it became too complicated for people to do it in their head, and they tend to look at the first few digits and round it. It's human nature to round it to the nearest even big number and totally truncate the rest of it.
As a result, we all have started using the strict definition of the terms, and that is exactly what you should be doing. Just because the computer needs some more bits and bytes, and actually calculates to a different value, does not make that correct. Anything above 64K gets unreasonable.
If a file is 37,667,664 bytes in size, are you really going to say it's 37.6 Megs, or are you going to do the math to come up a number that will satisfy the computer's view of the world? Who is the master and who is the slave?
Personally, unless I am programming something, or engineering something that requires high degree of accuracy, then I use the strict definition as I posted at the top, because the computer is MY tool, not the other way around.
BTW, this reminds me - a couple of weeks ago on the Today show, they were talking about new cool comptuer terms. One they were talking about was "animated GIFs". I felt like I jumped into a time machine and went back 20 years into the past.
Those of us who aren't idiots and lived through the golden age of the Internets, when web browsers didn't exist and never a 'me too' was seen, might do that.
But for the world in general, I can see their point: Animated gifs have been making a huge, inexplicable comeback.
I just hope they're not calling them "animed jiffs". .JIF is an entirely separate extension, god rot you all.
1/1055 of a degree F, rounding to the nearest integer.
Anyway, decimal is natural for many computer peripherals, including hard drive space, since it's not reliant on powers of 2. As stated elsewhere, hard drive storage is linear and not bound to expand in a binary sequence, though I don't know if this is the case for SSDs or not.
tl;dr: My family stopped asking me computer questions years ago...
Said GIFs are a continuation of lolcats and memes, where short video sequences are taken out of context and looped.
You will find whole Tumblr galleries of these things that people post for quick laughs.
Ask yourself, when is the last time you heard someone refer to mebibytes and gibibytes. Everyone uses metric prefixes.
Our company's documentation standard specifies the usage of KiB for 1024 and kB for 1000. It is strictly enforced, for precision.
So your claim that "everyone uses metric prefixes" is false.
Please, somebody get rid of that "4 - insightful" moderation. Making a false generalization is most definitely not insightful.
OTOH, disk drives were hardly ever true powers of 2. The sectors are (and they damned well better stay that way). The total number of sectors or bytes never needed to be powers of 1024. I'm fine with that. What I am NOT fine with is some hardware trade organization thinking programmers will bow to them. Not happening.
now we need to go OSS in diesel cars
In other news, your 30Megabit internet connection only allows you to download at 3.75Megabytes a second.
What GP is suggesting is that RAM and RAM only should be referred to in sizes of MiB, GiB, etc. as it makes no sense to apply KiB to network transfer rates or hard disk storage space (although it does work for SSDs).
I had a sig once. It was lost in the great storm of '09.
Windows XP reports that my 1 TB drive has a capacity of 1,000,200,990,720 bytes or 931 GB. The box for the drive says 1 terabyte.
It was irritating twenty years ago, but it wasn't by any means an invention of Microsoft. This is how it works now, welcome to the nineties.
"they" decided no such thing with respect to drive size. Engineers and scientists have used SI prefixes that way for measuring the communication and storing of data for a long time just as they have used them for everything else too.
In the 40s/50s/when-ever "we" decided that 2^10 was more convenient than 10^3 as a basis for memory measurement, deviating from the already accepted standard. Drive manufacturers have always gone with the other engineers and scientists and used the generally accepted standard rather than our forked one.
It still makes sense to measure RAM using 2^10 prefixes because of the way it is built which makes this produce nice round numbers, but people need to get off their high horse about drive manufacturers as they are doing nothing wrong: it also makes perfect sense for them to follow the standard that related fields have followed since long before the general public had heard of "mega" this and "giga" that at all.
And when my computer boots, it will say it has 4.294967296 GB of RAM. Honestly, it makes more sense to me to use GiB, as stupid as it sounds, for the rare occasions where it makes more sense (like memory addressing)
I had a sig once. It was lost in the great storm of '09.
Use tha word pedibites and someone might think you're a kinky pedophile.
Yep. Slashdot means everything is the fault of Windows (or rather, Wind0z3).
And if they can also find a way to blame Bill Gates, even though he's no longer running Microsoft, then they get bonus points.
Isn't it the other way around? The illiterate masses think that 1 GB is 0.9313 Gigabytes, while 1 GB really is 10^9 bytes and 1 GiB is 2^30 bytes, so the conclusion is that 1 GiB is the capacity you (and lots of software) are mistakenly refering to as 1 GB.
Does Microsoft actually advertise that it has 64GB of storage space? Or do they advertise that it has a 64GB SSD? Whether it's misleading or not is another question, but I don't believe it's false advertising.
I had a sig once. It was lost in the great storm of '09.
Giga * means 1 billion whether it is bits or bytes stored in ram, on disk or sent over a network is wholly irrelevant.
There is an easy answer for anyone still confused about this in the year 2013..insert a lowercase "i" after G. (e.g. GiB) and tada all of your ambiguities + 11" subway lawsuits melt away.
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).
you know i read your post and initially agreed with it. but then i read the rest of this thread with a few hundred comments bickering about bits, bytes, SI units, kibi, gigi, and shamalamadingdong, and here we are: the slashdot of yore has returned in this thread!
When you read GiB in your head, do you say "gigabyte" or "gibibyte?"
"If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
Insisting on using binary exponents to describe hard drive and memory sizes is almost as stupid as insisting on indexing arrays starting with zero, because that's what makes sense when you're coding in assembly. Being a super dork is not the same as being smart.
"the sake of ease" is relative. I would submit that it's a lot easier for a computer jock to understand and adjust (if necessary, which is hardly ever) for the use of decimal arithmetic definitions that it is for ordinary folks to understand and adjust for binary exponents.
Two points:
1. The kilo-, mega-, giga- etc. prefixes are actually metric standards that were adopted and "perverted". I think it is easier for technical people to make the distiction (when it counts), than convince the rest of the world to make an exception and suffer the convenient confusion sowed by marketingdroids.
2. In writing I make the distiction, but I continue to pronounce both GB and GiB as "gigabytes": Techies know to ask ("metric or powers of two?" when it matters) and my mom doesn't really know the difference, but won't feel cheated by marketing tricks.
Yes, it's spelled GiB/gibibytes, but I pronounce it "gigabytes".
/Raymond Luxury Yacht.
--Udo.
So since it makes no sense to talk about bytes on a hard drive, maybe hard drive manufacturers should be advertising their disk sizes in bits instead of bytes. Or perhaps they really ought to be advertising it in sectors (Up to 200M sectors!), which is the real atomic unit of space on a drive.
"If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
Actually 12, though not necessarily base 12, was very common in past civilizations because you can count to 12 on one hand. How? Count the number of segments in your fingers, using your thumb to keep track. 3 segments per finger with 4 fingers equals 12. Pinky finger, segment nearest your palm, is 1 and the tip of your index finger is 12. (At least that is the way I have always seen it done.) You can also count to 120 in base 10 with it by using your other hand to keep track of the tens place.
This method of counting has been used at least since the Egyptians 4,000+ years ago. Once I learned that method I never count on individual fingers anymore. 12 was also used because it is easily divisible without going into fractions, 10 gets messy REALLY quick.
1 MB = 1 marketing byte
KiB and MiB are terms that marketing types came up with to help justify their redefinition of KB, (2**10), and MB, (2**20).
Redefining KB, MB, and the like was done by those same marketing types because it made their products sounds bigger and more impressive, and yes, I was in some of those meetings way back when this was decided.
Any technical presentations in which the presenter expresses disk size, or memory size, in terms of powers of ten, I usually assume that the rest of the presentation is also just marketing speak and needs to be taken with a grain of salt.
When/if the Mibi/Gibi usage picks up, it won't be long when users will understand "Mibibytes" as "maybebytes" - who knows if they are there or not!
Right, which is why disk sectors are 500 or more recently 4000 bytes...
Besides fellow geeks let us not forget this horseshit was started by marketing specifically the hard drive manufacturers during the race to 1GB. I remember before it became a "race" that it was listed in base 2 but once the HDD companies realized they could charge a premium if they got past certain metrics then anything they could do to make those metrics happen were just fine.
It actually started with floppy disks, as the 3-1/2" high-density "1.44MB" clearly shows.
These disks had 1,474,560 bytes (512 bytes per sector X 18 sectors per track X 80 tracks per side X 2 sides). Using the SI terms, these would be 1.47MB disks. Again, using SI terms, these would be 1.41MiB. So, how were they marketed as"1.44MB"...by being 1440 KiB.
Yes, that's right, the fudging started there, and it was caused by using a mix of 2^10 and 10^3 terms. Now we have pure 10^3 terms for hard drives, which inflate gigabytes by 7% and terabytes by 10%.
I have two problems with KiB and its brethren:
1. "Kibibyte", "mebibyte", et al sound stupid. This is a fairly minor issue, and is subject to opinion.
2. "KiB" is much more annoying to type than "KB". I would have preferred some sort of alternate notation, e.g. "sKB" for SI kilobyte and "bKB" for binary kilobyte.
The main frustration I have with the two competing standards is with Apple. Apple adopted base10 measurements a while back. This has the advantage of having marketing measurements and OS measurements matching up (though I'm actually unsure of what "4.00GB" means in terms of system memory in Activity Monitor--is that base10 or base2?). It also has the annoying disadvantage of having the OS X measurements and the measurements of every other app and OS out there not matching up.
If you can't convince them, convict them.
Anyone who doesn't already know these things probably isn't reading Slashdot.
So a hard disk sector is 1000 bytes?
Oh, it's either 512 or 4096. Whoops.
And how many 4K sectors does a 250GB drive have?
$LARGENUM-and-a-quarter.
Yeah, right.
There is no "byte" in the SI. The question is therefore irrelevant. There's an IEC standard containing prefixes for 2^10, 2^20, 2^30 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.
FTFY
Trust me, I'm an engineer.
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.
Absolutely wrong. The use of kB to mean 1,024 bytes started around 1960, and only for memory. Bandwidth has always been, and is still, measured in powers of 10, not 2. Disk space was measured in powers of 10 until Microsoft came along and muddled the issue. Disk manufacturers still use powers of 10, like they always have. Software is a mixed bag, with some developers using powers of 10 and others using powers of 2.
Since someone mentioned Wikipedia: http://en.wikipedia.org/wiki/Timeline_of_binary_prefixes
In any case, a disk labeled 2 TB will never have exactly 2 TB or 2 TiB of storage space. The number on the label is just an approximation; the exact number is “as much as we can cram in and still have a reasonable amount left over for reallocation”.
This is an article appropriate for The Today Show or something where you are informing the illiterate masses, not something worthy of posting on Slashdot.
The reason this is appropriate is that Microsoft Surface is being beaten up in reviews, and one reason is the difference between the 2^10 and 10^3.
No other tablet OS takes up so much space that the difference is significant, so a 32GB Android tablet that has 28GB free doesn't really shock people. It doesn't matter that Android doesn't take up "4GB", and that the difference in numbers is mostly because of the 2^10/10^3 difference. With Surface, though, the extra 7% lost due to marketing makes things even worse for MS.
Personally I enjoy these nostalgic flame wars once in a while. Makes a change from the usual Android/Apple and renewable/nuclear ones.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
I think about "binary gigabytes". I certainly dislike the sound of Gibibytes.
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.
No one gives a flying fuck that the SI says. They are not an authority on the matter. If you want an authority, look to the (relatively short) history of CS. Base 2 wins.
There are plenty of reasons to use base 2 for computers, and there is exactly zero confusion when you realize that the units we are talking about aren't K, M, G, etc., but KB, MB, GB etc. There is absolutely no ambiguity because the B (or b) is right fucking there telling you you're talking about binary fucking digits. You want to talk about how your old modem wasn't measured in base 2? That's because it was megabaud, not megabit. You want to bring up some storage manufacturer from the 70s who used 1024 for KB and then said 1000 KB = 1 MB? They're the assholes who pioneered the deception.
There are exactly 2 reasons for someone to support using 1000 for binary data instead of 1024:
1) They fucked it up once in the past and are embarrassed about it, and would rather blame someone else.
2) They sell storage devices and want the numbers to seem bigger.
The proposed "solution" of KiB, MiB, etc. is fucking worse than people just not knowing the difference between 1000 and 1024. Now, whenever you see GB, you have exactly no way of knowing whether it's 1024 or 1000. When was it written? Was GiB in use at the time? Was the author aware of it? Was the author enough of a tool to use it?
This whole fucking debacle is just a repeat of "non-flammable". Inflammable is a word. It means shit can catch fire and burn your shit down. Non-inflammable is a word. It means the opposite. But some pickled little shit decided to add confusion by creating "flammable" and "non-flammable", and those fucking words don't even make sense. Inflammare vs. flammare. Fucking useless shits fucking up the language because they don't know shit about it.
Kilo does not mean 1024. Ever. If you say it does, you are wrong. Linux and OSx stopped the abuse long ago.it is time for windows to catch up.
Linux uses 2^10 when dealing with memory, and I'm pretty sure OSx also does.
That's the whole point...memory will always be sold/installed in powers of 2, and thus needs to be reported in powers of two. Disk space originally was sold in powers of 2, and it wasn't until disk manufacturers started fudging to make their disks look larger that it started being sold/advertised in powers of 10.
If you report the two differently, you end up with some issues, like why the "suspend" file for a machine with 4GB of RAM is 4.29GB on disk.
What's the sector size of a data CD? hard disk? floppy?
2000, 4000 and 500 bytes?
Err, no.
Memory is allocated in increments of at least 4096 bytes and a maximum of 1,073,741,824 bytes.
Assuming you are talking about MMU page sizes and not memory allocation: that may be true of the computer architectures with which you are familiar, but it is not universally true. The Sparc64 architecture, for instance, supports page sizes of 8 kiB, 64 kiB, 4 MiB, 256 MiB and 2 GiB. Older systems such as early Motoroal MMUs or early MIPS implementations had smaller page sizes (1 or 2 kiB).
No, this is a non-issue. They advertise that it's a 64GB SSD. And it's neither misleading or false advertising because they put the little not right there explaining that the OS and pre installed apps take up a bunch of space. Much of which can be recovered btw. The 64GB surface pro I checked out at best buy had nearly 50GB free. It's just funny that so many otherwise technically minded people think this is an issue.
No, MS does it the best way. They show it in GB so regular people will know how much space is there. Most people don't know what a GiB is and adding more terms just makes it more confusing. Then *right* next to it they tell you *exactly* how many bytes that is so there can't be any confusion. Apple does do it the wrong way because they give the incorrect marketing value from start to finish.
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.
JEDEC units work in the power of 2.
http://en.wikipedia.org/wiki/JEDEC_memory_standards
Before switching to the new 'gibibyte' units, Linux has for a long time interpreted 'MB' and 'GB' the usual way, so the interpretation depended on the specifc command: 1 MB in commands like 'free' and 'df' would be 2^20, and in commands like 'fdisk' it meant 10^3. Just remember that a 1 TB disk is 10^12 bytes and a 2 TB tape stores 10^12 bytes (uncompressed). Another important unit to remember is the KUSEC, which equals 1024 * 0.000001 seconds (used in WiFi standards).
When your computer boots, you'll just see the manufacture's logo. This isn't the 90s anymore.
Pretty good is actually pretty bad.
Is my hard drive full? Can I delete a bunch of old downloaded crap and make space?
No? Buy another hard drive to add to or replace it.
I just know that a three terabyte drive is big enough that I'll never, ever fill it up!
Three Squirrels
Actually 1KiB=2^10B, 1MiB=2^20B. 1GiB=2^30B.
To put it another way 1KiB=(2^10)^1B. 1MiB=(2^10)^2B. 1GiB=(2^10)^3B 1TeB=(2^10)^4B and so on...
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.
I've never heard anybody actually use it, but I do like it's existing. Kilo, Mega & Giga apply to metric units i.e. powers of 10, and not powers of 2^10. So it's good that they've introduced alternative terms that specifically describe those.
Back to Basics
The purpose of the standardization of measurement units was to eliminate specific qualifiers. When you measure mass in grams the value is independent whether the subject of the measurement is a particular kind of fruit, a piece of wood or a kind of metal. To make simpler the communication we frequently use scale factors like mili-grams for medicines, kilo-meters for highway distances. These factors are uniquely defined. For example the Greek word “kilo” means “thousand”, not thousand-and-one, not thousand-and-two only one thousand. This is quit simple as long as we handle them consistently. Problems may arise with questionable practices.
One of the problems surfaced after a hasty move in the refinements of US measurements from 1/16”, 1/32”, 1/64” to 1/1000”. With consistent usage of the binary scale the refinement should have proceeded on the 1/128”. 1/258”, 1/512”, and 1/1024”. That would have eliminated a lot of problems in the metal industry.
Recently, some computer people try to deal rather loosely with the binary and metric scales by using the metric names and associating them with binary numbers. This is like renaming Bob to Steve because he looks so much Steve-like. Gentlemen, please use binary names for binary scale factors! For instance, use duo-ad-deca for 2^10. If you do not like it, please fabricate better names, but don't use anything similar to the names of the accepted decimal factors. It is also arguable that what purpose which scale serves better. You never can use the whole capacity of a hard drive anyway. Bytes are not always eight bit size units either. ECC uses nine-bit bytes. (Should one than use trinary, or nonal numbers for them?!) For higher degree of redundancy one needs additional bits according to information theory. Should the buyer of a hard drive concern all the detail so much. Most of the cases, not at all.
There are some real reasons to blame sales practices, but using appropriate decimal factors is not one of them.
It's a healthy state of mind to take anything which is presented as the truth with a grain of salt. But the fact something is thought by the marketing department doesn't automatically mean it is nonsense, even though it may be a popular thing to say amongst engineers.
Pretty good is actually pretty bad.
But with disks transitioning from HDD to SSDs, they too will have the same binary component, since an SDD would be a certain number of NAND chips on a card. Now, if that number happens to be a power of 2, such as 8 or 16, then it will be a power of 2. Otherwise, if it is something like 10 chips, then it won't.
That's calorically gifted Native Americans, you insensitive clod!
I don't have a problem w/ KiB, MiB or TiB, but Kibibyte, Mebibyte and Gibibyte do sound stupid. Maybe call it Kilibyte, Megibyte, Gigibyte - have the word end in ibyte instead of byte
"Disks, network speeds, etc have no such 'binary' component. There is absolutely no reason that those things should be counted in binary."
How on earth would they not have a binary component? Network speeds are shown in bits (a binary unit) for the same reason memory is shown in bytes. The amount of individual meaningful units of information that can be stored in a binary value is 2^x where x is bits. But bits still don't make sense. The reason they don't make sense is that we represent binary in hexadecimal. You can represent 2 values with a bit. But you need two to represent the result of operations performed with them. 2*2 is 4. That is the minimum amount of storage you need to represent the results. We don't generally think in binary directly anymore. We think in hex. Well the same thing is true of hex that is true of binary. If you want to think in single hex digits you need two to store the largest result. A single hex digit is 4 bits so to store two we need 8. This is why the first computers to gain popular use had 8 bit registers in the CPU. Everything digital is working in binary, and it is still viewed as hex. That isn't going to change, even with quantum computing. Logical operations to handle more than 1 byte of data are just repetition and combinations of those that do the 8 bit operations. Logical operations up to 8 bits are easily tested by truth tables and systematically reduced to the mathematically guaranteed most efficient implementation with a given set of logic gates without the need for a computer.
So even though the size of the CPU register grows, it grows in units of 4^x bits which if you've followed along is automatically accomplished by growing by 2^x from 8 and since 8 is really 2^4 you could also look at that as 2^x. 8, 16, 32, 64, 128, 256, 512, 1024. We put significance on 2^10 (KB), 2^20 (MB), 2^30 (GB) because they correspond to orders of magnitude that seem meaningful to humans.
But network link speeds don't exist to be meaningful numbers to human, memory doesn't exist to be a meaningful number to humans, and neither does disk space. These exist to transfer computationally meaningful payloads and to store computationally meaningful data. This data is processed by and output by a Computers processor and that processor can only work with chunks of data that are size of its registers and those registers are going to be some multiple of 8 in size. Your physical storage medium or your physical network link implementation might allow for a few odd bits at the end but you are never going to be able to use them. Your filesystem is going to work with units of bytes or larger and your packets are going to be composed of bytes or larger.
Disk space was measured in powers of 10 until Microsoft came along and muddled the issue
I'm a long way from convinced by this. I'm pretty sure my pre-MS double-density 5 1/4" floppies contained 368,640 bytes, not 360,000, yet were generally called "360K". This article suggests the practice dates back to DEC 8-inch drives (although apparently IBM used powers of ten for their 8-inch drives).
What's the sector size of a data CD? hard disk? floppy?
2000, 4000 and 500 bytes?
Err, no.
What's that got to do with anything? "Sectors" are an internal file system detail, hidden from the end user. When was the last time you had to worry about the difference between a file size and the next sector boundary? If you think you're clever enough to handle that, did you remember take the associated file system metadata into account? How many sectors does the metadata use for a given file? Did Windows Explorer report that? These boundaries are often 4096 bytes. What measurement system uses 4096 as a base? What's the suffix for that? Quick, how many sectors are in a GiB?
Sectors are useless, and binary units, which don't even tell you how many sectors you're using, don't change that.
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.
What really gets to me is the minority of hard disk manufacturers who use a rather bizarre scheme where 1KB = 1024 bytes, but 1MB = 1000KB, 1GB=1000MB and so on. You can see the origins of this scheme in the common reference of floppy disk capacity as being 1.44MB (it isn't --- it's 1440KiB, which is neither 1.44MB nor 1.44MiB).
Ask yourself, when is the last time you heard someone refer to mebibytes and gibibytes. Everyone uses metric prefixes.
That would be here, the last time this tired topic came up. I'd say roughly annually, for as long as I've been on Slashdot. I've never heard the term anywhere else.
The Quirkz Handbook of Self-Improvement for People Who Are Already Pretty Okay
I've seen at least one hard disk manufacturer -- I think it was WD, but I'm not sure -- using these hybrid units, too, i.e. selling disks with 1GB == 1,024,000,000 bytes.
It's well beyond just CBS articles. Are there comment posting bots that spew this retarded political commentary? It's the last idea I can cling to that the world I live in isn't really filled with these morons.
(And by the way, the assumption of a specific length for sectors is a bad idea anyway, which is now causing endless pain during the switch from 512 to 4096 bytes.)
The problem came from an area that they often do: Programmer laziness. Programmers of early computers called the 1024 byte blocks computers used "kilo" since it was "pretty close" to 1000. Since space and power were limited, it was considered unnecessary overhead to actually convert it to base 10 for display.
Then as things went on it stuck, and the error kept getting bigger with increasing size.
Frankly I think OSes need to get with it and just start using base 10 prefixes for drive space. I mean we already do for network speed, CPU speed, pixels on the screen, etc, etc. Just start displaying drives using base 10 units. Memory I suppose we can keep base 2, since it is aligned on those boundaries, but then let's use the base-2 prefix. We easily have the power to do the conversion these days, let's do it.
The SI prefixes are clear and simple and used consistently everywhere, even in most computer things, except here. Let's fix this issue and call it good.
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.
Easy, because it's bashing Windows and this is Slashdot.
don't be silly. there's no bash in windows. it's called command prompt and it's nowhere near as useful.
...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.
For many years there has already been the nibble, which is 1/2 of a byte.
Those who think this article is interesting, and those who think it's too obvious to warrant discussion.
There is nothing magical about 512 or 4096 byte sector sizes. Those are strictly a convention used by certain operating systems. The same disks that have 512 byte sectors when used on Linux can have 520 byte sectors when used on OS/400. Mainframe ECKD disks don't have sectors at all, they have tracks and records, and a record can be any size at all.
And even if the 512 byte sectors meant something important, all that would mean is that disk sizes would be multiples of 512, not powers of two. So a '1 meg' disk would actually be 1000488 bytes, which is far closer than the 1048576 bytes you get when saying 'meg' is defined as a power of two. A '1 terabyte' disk would be exactly 1000000000000 terabytes vs the 1099511627776 bytes you get using power-of-two.
I have been buying always half the sensible size to limit the amount of holiday pictures I would take and never look at again. You mean I could just have stayed with sensible size and also gotten less?
Je me souviens.
Is there any good reason why there hasn't been an OS that can look up a user setting to show GB or GiB for all programs? That way we wouldn't have to argue which measurement is correct, the user can decide what's best for them.
Jiggabyte is much better.
Gibibyte / Kibibyte, yeah. I agree.
The reason nobody uses those terms is because those terms are fucking retarded. You can tell they were coined by some real tech-only minded folks.. the terms DO make sense, they ARE consistent, it's NOT a huge change from the current terms..
But my god, they just sound so bad to the ear. It sounds like the gibberish a young kid would babble out. There's no consideration for the sound the word makes, for the way it hits the ear.
... still waiting for this free-as-in-beer free beer I keep hearing about.
You're missing the fact that a byte is 2 to the power of 8 bits. Everything is measured in bits. Why are you advocating mixing powers of 2 and 10 in the same value?
Every single person I know either understands base-2, or *DOESN'T FUCKING CARE*.
There's an exceedingly small number of people who catch that their 16GB of memory actually displays what is it, 14.something GiB, and who actually *GET MAD*. That requires noticing that discrepency but not having the knowledge of why such a discrepency exists. That's so few fucking people.
KibObyte, GibObyte, MebObyte.
Those words sound.. decent.
Kibi, Gibi, Mebi? Those words sound fucking awful. Gibberish, sort of thing that comes out of the mouths of toddlers.
That's why nobody likes those fucking units unless they only use them in writing. Anyone saying those words out loud feels dumb for having said them.
... still waiting for this free-as-in-beer free beer I keep hearing about.
The terms have been well understood to be powers of 2 when speaking of computers for decades. When marketing switched to base 10 to inflate their claims, it caused (and still causes) a great deal of confusion. Their motive was exactly the same as the 14 oz "one pound brick" of coffee.
While I can sympathize with a desire to remove ambiguity, unless or until the general community makes the changeover, the prefixes are to be understood as binary in the digital world, marketing weasels not withstanding.
Nobody wants to sound like Mushmouth from Fat Albert.
What you're missing is that a multiple is not the same thing as a power. 24 is a multiple of 8, it is not a power of two. 1000000 bytes is 8000000 bits. 1000000 bits is 125000 bytes. None of that has anything to do with a power of two. What point are you trying to make?
I'm sorry, in these enlightened times, the preferred term is "Native American of size".
OK, I re-read your post, and it still doesn't make sense. A byte is certainly not '2 to the power of 8' bits, it is 8 bits. The biggest VALUE that can be represented in a byte is 2^8 -1, but who cares about that? Surely you are not suggesting that we measure memory size, network speeed, disk size, etc by the biggest VALUE that can be represented, are you? Because if you are, then a 100Gbps network should, according to you, have a 'speed' of 2^1000000000ps. That makes absolutely no sense at all.
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.
Great. Do you mind explaining what the point of metric units are if not consistent use of powers of 10?
If the density of an object is 1.2 kg/kL, then it is 1.2 g/L.
If the memory storage density of a holographic cube is 1.2Tb/kL, then the density is NOT 1.2 Gb/L if you're using power-of-two based units. It is if you're using SI units.
The only reason that programmers don't run into these issues is that most of them don't actually mix bits with any other unit. The whole point of the metric system is to allow the easy mixing of units so that you can work with things like Farads that are (kg^1)(m^2)(s^4)(A^2) and not things like what would result if anybody bothered to come up with a similar English unit.
About the only time powers of two really make sense to work with is when you're dealing with pointers/arrays/etc and other implementation details. Even when you're talking about the applications of software it makes far more sense to use SI-based units, and certainly when you're talking about the physical implementation of computer hardware they make sense as well.
I say "gib".
"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."
Silly me, and for years I thought 2^10 bytes is a kilobyte, and 2^20 is a megabytes and so on...
But I guess one mibibyte of memory is really more than a yottabyte of memory.
And a gigabyte is enough to store, well, the universe?
But what if the user want to take only a nibble instead of a whole byte?
Can he get a box to take other nibble back home?
No one gives a flying fuck that the SI says. They are not an authority on the matter.
You're suggesting that the SI aren't an authority on the matter of unit definitions? Every industry on the planet that isn't still stuck in the dark ages uses SI units.
I assure you that if you are building any kind of memory storage device you're going to be very concerned with SI units.
This would suggest that computer science did originally adopt the standard definitions of kilo etc. but then started to deviate from them in the mid-60's for the sake of ease.
All kilo = 1000 references before the mid-60s were in reference to bits.
Bytes is a new unit, as was kilobyte; attempts to redefine kilobyte is causing more damage than the redundancy of the "kilo" of "kilobyte" with the SI unit.
Software developer: Base 2 is easier to work with. We use base 2 (or more precisely, the base (2^10) derivative).
Hardware marketer: If we use base 10 (or more precisely, the base (10^3) derivative) our drives appear larger.
FTFY.
Actually 12, though not necessarily base 12, was very common in past civilizations because you can count to 12 on one hand. How? Count the number of segments in your fingers, using your thumb to keep track. 3 segments per finger with 4 fingers equals 12. Pinky finger, segment nearest your palm, is 1 and the tip of your index finger is 12. (At least that is the way I have always seen it done.) You can also count to 120 in base 10 with it by using your other hand to keep track of the tens place.
Shouldn't you be able to hit 144 using both hands?
For fun, if you learn to count in binary with your fingers, you could reach 1024 ....
So, the marketers' argument is that quantifiers are somehow holy symbols that cannot abide context-dependent meanings? Mathematicians don't insist on a single meaning regardless of context. Nor do physicists.
We use base 10 when counting most things, base 60 for seconds, and base 2 for bytes.
Are SI devotees struggling with some urge to force base 10 on us when counting seconds? We don't have pedants running around telling people to wait 0.6cs. With seconds they could argue seconds are an SI unit and 60's arbitrary — but bytes aren't, and 2 isn't.
When the exact count matters, it's binary. Base-10 quantifiers in this field are no better than sloppy approximations we tolerate to avoid forcing marketers to admit to themselves what they are.
As always, all IMO. Insert "I think" everywhere grammatically possible.
1.8F.
2^1000000000 is more than the number of atoms in the universe.
> ... as trying to figure out how many degrees Ferinheight one pound of water will increase if you apply one joule of energy.
Um, a foot-pound force of energy, please!
So, multiply a foot-pound force by a pound of water, and the temperature increase in Fahrenheit is: one foot!
Or is it 9 ft^2 lb / 5 + 32? Or sqrt(lb) / fortnight?
Anyway, it's really dead easy.
Yes, which is why I said it makes no sense at all. Well, you were the one who seemed to be advocating counting by the value represented, not me. Or was there a point to your 'a byte is 2 to the power of 8' statement that I missed?
True, but some of that space is set hidden for wear leveling. The user space is still rounded to GBs.
I live in the USA, and we don't use the international system of units.
Also, RAM (technically, "core memory") was invented here. (Here's a handy wikipedia link about the inventor. Enigma was cracked by Turing's team at Bletchley Park, but Enigma was "pwned" by Desch's team at NCR Dayton.)
So when RAM is measured, it's measured in powers of 2, and it uses the prefixes Kilo-, Mega-, Giga-, and so on.
Get bent, Frenchie.
I think you would have a hard time finding a physicist who does not agree on the meaning of the SI prefixes. Sure there are a lot of redundant units for historic and practical reasons, like Å (Ångström) which is 0.1nm. However is you for some bizarre reason were to MÅ as your unit everyone would still easily understand that you are referring to 1 million ångström or 0.1mm. There may be 60 s to a minute, but definitely 1000 s to a kilo second and a 1000 minutes to a kilo minute.
Microwaves is probably the most "confusing" word in this regard that I can come to think of (kilobytes excluded). Microwave are electromagnetic waves with wavelengths of 1mm - 1m [wikipedia] and not down to 1 micrometer as one would expect from the name. The name simply comes from them being small compared to radio waves. I believe the reason is that microwaves were named before micro- became a SI prefix [citation needed]
Bandwidth was never measured in powers of 10. It was measured in 10-bit bytes, which is a distinct concept. The reason is that basic analog (as in "on the wire") signalling requires a start bit and a stop bit as a sort of primitive checksum. That means that each standard 8-bit byte (which was by no means standard in the early days of computing, and is why this concept is distinct from your assertion) requires a 10-bit signal on the wire.
Disk space was also never measured in powers of 10. Traditionally, storage was punched cards (80 bytes per card) or tape (8 tracks with a 9th track for checksumming, representing a checked bytestream along the length of the tape). These were all measured in bytes. Floppies kept the tradition, but being a disk, had tracks, which had sectors, which had a fixed number of bytes. (Tracks are rings. Sectors are segments of those rings. Sectors are the normalization of tracks into groups of bytes.) And when hard disks came along, these too had tracks, sectors, and bytes. Hard disks were not measured in powers of 10 until the late 1990's, when marketers got involved. Leave it to that scum to fuck everything up AND brainwash people into accepting their bullshit willingly. Seriously, fuck marketing.
The original reason most drives don't show their full capacity (going back to the invention of general-use disk-based media) is that a general-use medium requires a known formatting structure. You can reasonably lose as much as 10% of your total capacity to formatting. There's a reason FAT and FAT32 are crap. As disk space grows, the file allocation table from which they derive their name bloats to as much as 35% of the total disk capacity. So when you format a "1TB" (that's actually 976G[i]B, the "i" is optional unless you're a marketing slave) disk, you lose around 50M[i]B (again, optional except for stoolies), no matter what you actually bought. IIRC, with NTFS, you will have a 939 G[i]B (optional, dipshit) disk. The loss is 37G[i]B (hurr-durr), which is about 3.8%.
tl;dr: I openly mock marketers and those that would bow with their mouth upon marketers' genitals. I actively oppose your continued existence and I hope you die sooner rather than later.
If your byte contains 8 bits, you are either using the binary sizes, or you are mixing things to fool the customer.
My bytes contain exactly 2 nibbles.
I read it as "gigglibyte"
I think it's partly about what we are used to. Even "giga" sounded funny to me at first.
It looks like you've confused yourself.
It's like the word "gay" or "hacker." You rely on context to know what the words really mean. In the case of written text, "GiB" provides that context. I know that "gigabyte" has more than one meaning. It's just not a precise word and I don't rely on it being so. In the case where I read "GiB" i think "gigabyte" if I don't really need that level of precision.
Example: How big is the download? x kilobytes = instant, x megabytes = a few minutes, x gigabytes = get some coffee. It doesn't matter if it says GiB, GB, or gigabyte. I'm still gonna get a cup of coffee because either definition still means I have time to do so.
I want this account deleted.
Almost every word or symbol in any language ever has multiple related context dependent meanings, physics and math not (and far from it) excluded.
You're arguing that there's something special about these particular symbols, that they must never ever have any context-specific meaning.
Yet 4Kmol K at 4K is almost instantly comprehensible: it's a small truckload of of either ridiculously cold or ridiculously cheap potassium. And you're insisting we mustn't use binary K to count binary bytes but must instead use decimal K to count binary bytes because context haaard.
As always, all IMO. Insert "I think" everywhere grammatically possible.
You are not explaining yourself correctly; from what I am reading I would respond as follow:
HUH?
Power of two (meaning binary system) was created because of electrical properties and has nothing to do with the property of the chip's ability to calculate on a single chip or two chips.
How the fuck does that get insightful? There is no such thing as 500 byte or 4,000 byte sectors you idiots.
I don't think computer science had anything at all to do with it. The deviation from standard scientific definitions was a naive engineering decision.
It the same number people its just computers work in binary (groups of 2)
and people work in decimal [ten fingers] (groups of 10).
Its the same dick size whether you count it in inches or centimeters .
The forum post is an example of people's previous discussion of the issue, which by the way (and this must be the millionth example of how computer geeks live in an echo chamber, where the iPod is lame and regular people's inability to deal with config files and scripts is surprising, I mean, everyone writes at least a couple of Perl scripts in their lives, ammirite or ammirite?), is NOT common knowledge for "normal" people, you know, non-nerds, and that is a problem for everyone including nerds.
I'm no expert on the way /. works or should work, nor do I know if timothy is competent or not, and frankly right now I do not care. But before you proclaim (anonymously, how classy of you) that someone should get fired, you Anonymous Coward little prick, perhaps you should go back to school and LEARN TO READ. Then kindly DIAF.
"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."
Everything I am saying has to do with what you said. Specifically as to why you are wrong that Storage and Network should be rated in something other than power of 2 units. I can only assume you've never worked with assembly/machine code especially for smaller chips.
"With binary sizes however, all you need to do is use the address lines to directly access the correct location in the correct chip."
Not true. Directly addressing individual bits requires a huge address space. You only get 2^a where a is address bits locations. That's why we don't directly address individual bits. With a 16bit address you can directly address 65536 storage locations so if you work at the byte level you can directly address 64KB but you wouldn't because that isn't enough. You would directly address 65536 locations and then use a second 16 bit address as an offset to individual 64KB locations for a total of 4GB (that's real GB). Why 16bit vs 12bit or 15bit? Because that is the size of a register on your CPU and you don't want to have to double the number of instructions needed for each data access. With a true 32bit CPU you could directly address 4GB (power of 2 bytes). That's the other reason we don't directly address individual bits. It would be silly to address individual bits when the CPU loads and saves data in 8bit, 16bit, 32bit, or even 64bit chunks.
"Network speeds are not dependant in the slightest on a power-of-two, regardless of the data being transported."
1024bps, 1000bps, and 1100bps are all bits per second. In other words they all based on power-of-two. Nothing used in any digital system isn't bound by powers of two because they are all talking binary.
"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"
Again, a byte is a power of 2 unit. A bit is a power of two unit.
But that is all beside the point. Networks are for transferring data. Hard drives are for storing data. And data is generated by software running on computers working that work with data in chunks dictated by the size of an integer on their system. That size is going to be a power of two unit divisible by a byte.
Network links are for transferring DATA. And hard drives are for storing DATA. Data is generated in power of two byte chunks by CPU's acting on memory and tracking memory in power of two units. It doesn't matter if my data is the number 1 and requires only 1 bit. I have to store it in an integer unit of ram. When I write it out I'm writing integer bits not the minimum number of bits needed for my data. That is why my files are sized in MB where that is 2^20 bits. As a consumer I expect to be able to store 1024 1MB data files on a 1GB drive but what I really get is 953 and that isn't counting filesystem overhead. By the time I format that drive it will have a capacity that is 10% less than advertised. How about a 1TB drive how many GB of data is that? 931GB of data files on that drive.
A 64KB packet of data is 524288 bits. Why am I using that odd size? Because it is the number of bytes I can address with a 16 bit integer. It might seem odd to you and I but it is a nice even increment for a computer. So now I need to know how many of those my 1mbit network link can handle at once. First I have to convert to bits so 524288 then divide it up... only 1.907! If I had 8 such links I could transfer 8 at a time. A byte is 8 bits so a 1MByte link should be about the same right? Let's see a 1MB link is 1024KByte which is 16 simultaneous packets! Odd how it works out evenly!
His point was that bits and bytes base 2 units not base 10 units. Therefore it is illogical to count them in base 10. It doesn't make much sense to refer to the number of digits of one base in a completely different base.
Sorry, but Microsoft was right. DATA is created in powers of 2 units because memory is manipulated in powers of 2. It isn't arbitrary that packet sizes are even powers of 2 or that filesystem chunks are power of 2 units.
It is ridiculous for something that handles binary data not to be in power of two units that divide evenly into CPU register friendly increments. None of that means it makes sense to hijack metric units but disks and network devices should be measured that way.
"Great. Do you mind explaining what the point of metric units are if not consistent use of powers of 10?"
The si units exist for easy conversion, they are base 10 units.
Bits by definition are not base 10 units. You convert them in base 2 not base 10. 2^8 is a byte (because 8bit cpu's were once all the rage). 2^10 bits is a kilobyte, 2^20 bits is a megabyte, 2^30 bits is a gigabyte, etc. It is a way to express an order of magnitude more capacity. 1000000 bits does not actually represent an order of magnitude capacity increase relative to 1000 bits. An order of magnitude worth of bits expressed as a decimal count would be 1024 not 1000. That difference adds up to quite a bit as the numbers scale.
This actually makes more sense as long as they keep it to whole units of 1024 bytes and never divide capacity smaller than that. You don't generate data in 2^x values you actually generate it in y^x values where y is the size of an int on your system/8. 1024 bytes would cover us up to 4096 bit CPU's without having to worry about it about the value not being evenly divisible. Given that we've gone from 8 bits to 64 bits in like 20years or so it seems like a pretty good buffer for the foreseeable future.
Then it's just a matter of displaying in those units for filesize in the operating system.
Actually I wish they would create a new SI unit of data that is 1024 bytes and call it the "data" or something so it doesn't clash with bytes. They can decimal it up all day long as long as they make sure to truncate to a whole value when rating the capacity and there would be no harm done.
The International System of Units can go to hell.
Now, what country might you live in?
Instead of 12 do base 3. Everything works better in base 3. Except conversion to 10 base numbers. Stop thinking in binary logic today and start looking at life in shades of grey! Things come in 3's not 2's, everybody knows that! Need to divide up 100 bucks three ways? 01021.1! Okay, now you do PI...
Isn't it the other way around? The illiterate masses think that 1 GB is 0.9313 Gigabytes, while 1 GB really is 10^9 bytes and 1 GiB is 2^30 bytes, so the conclusion is that 1 GiB is the capacity you (and lots of software) are mistakenly refering to as 1 GB.
This is the way I see it. Besides, I like the fact that in the normal scenario where I'm assessing wether some chunk of data will fit the free space I can easily convert the units in my head. Will a file the size with reported size of 3221225473 fit reported free space of 3.0 gigabytes?
I use mebibytes and kibibytes when I want to be pedantic.
I often enjoy being pedantic. :)
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.
Oh really? 1024 bits are 128 bytes. How many bytes are 1000 bits? What is easier to convert?
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.
Sectors of 512 and 4096 bytes size is enough reason. Randomly ignoring facts doesn't make your point stronger.
"Great. Do you mind explaining what the point of metric units are if not consistent use of powers of 10?"
The si units exist for easy conversion, they are base 10 units.
Bits by definition are not base 10 units. You convert them in base 2 not base 10.
Then they aren't metric units. That's nice, but around here we use the metric system, and for use in commerce this is actually required by law in many places. If programmers want to call gigabytes 2^30 that is nice, but if they use it in commerce they are opening themselves up to lawsuits for failing to adhere to standards. Fortunately most of these errors tend to work out in the consumer's favor so they're relatively safe.
You can ignore the SI if you want to, but the inevitable result is situations like this where SI and non-SI units get mixed together.
You can measure your distances in miles if you like while you're at it, and you'll end up with similar confusion where nautical, statue, and survey miles end up bumping into each other.
Asking the SI to stay out of defining standard units is a joke of a proposal - that's all they do.
CPUs want memory sizes, cache line sizes, page sizes, and alignments to be done around powers of two, but for some reason people want to see powers of 10?
Using base 10 only gives people a false sense of understanding, but causes confusion any time differences collide.
Some times you're better off just learning something correctly than thinking you know something, but you don't. Not the mention ambiguous definitions of units.
Except floppy manufacturers, they exist in their own world where there are 1024 Bytes to the KiloByte and 1000 KB to the MB all so they could have a 1.44MB capacity, not 1.41MiB or 1.47MB as logic dictates, because fuck logic.
It's unlikely to cause any probes to crash into Mars so it probably doesn't matter that much.
I don't think I have ever read so much incorrect information in one place before. Congratulations! By the way, I have over thirty years experience doing hardware design and assembly programming.
First, to your addressing question. I don't know if you are talking about segment-register type addressing, or bank-select type addressing, but in either case you are completely wrong. In degment register addressing, the processor performs the calculation of merging your 16-bit 'address' with the current segment, and drives the addressing lines accordingly. In bank-select addressing you pre-select a 'bank' of memory, and the addressing lines from the processor select the appropriate location within the bank. In either case, if you can address 4G then you have 32 addressing lines, either all directly from the processor, or perhaps with some coming from an external bank-select register.
I already said it does not matter what the unit is being selected (bit, byte, word, line, whatever). The addressing does not change based on the size of the data, on the number of data lines changes.
WTF does something being measured in bits-per-second have to do with powers of two? Not a damn thing. Bits can REPRESENT powers of two, but they do not OCCUR in powers of two. If you can't understand that distinction you are really even more clueless than I thought. In memory components, bits/bytes/whatever OCCUR in powers of two. You can't buy a 1000 (not a power of two) byte memory chip, you can buy a 1024 byte (a power of two) chip. You can't buy a 3072 byte (not a power of two) chip (well maybe there is some weird chip like that but it would be special purpose), the next highest size is 4096 (a power of two). However, you certainly CAN send exactly 1000 or 3072, or any other number of bytes across a network. There is absolutely no power-of-two boundary involved there.
Likewise, the size of a harddisk is dependant only on the bit density of the medium. A disk can be manufactured in absolutely any size at all, there is NO 'natural' power of two boundary to disk sizes.
Lastly, grouping bits into 'bytes' or 'words' has nothing to do with powers of two, it has to do with MULTIPLES of bits. There is no reason that the 'word size' of a machine has to be a power of two. IBM mainframes use 24 (not a power of two) and 31 (not a power of two) bit addresses. There have been 6, 10, 12, and 18 bit 'words' in the past. None of those are powers of two. The only thing grouping into bytes does is say that you will always transfer or store a multiple of 8 bits, which has nothing at all to do with powers of two.
No, his point was that he, like you, are too stupid to know that what a thing represents has nothing to do with how you count it. Or do you count $5 bills in base 5?
I design hardware for a living and we have moved to using KiB and MiB for all situations where the prefix actually should convey a power of two. This is the only reasonable thing to do when specifying a system and it is really catching on.
You have posted more stupidly incorrect information in this forum than I have ever seen before.
Packet sizes are even powers of 2? Since when? Going back to async days, a 'packet' consisted of 1, 1.5, or two start bits, 5-8 data bits, 0 or 1 parity bit, and 1 or two stop bits. So the 'smallest packet would be 7 bits, and the 'largest' packet would be 13 bits. Where are your even powers of 2?
Oh, you didn't mean async, you meant something more modern, like Ethernet, right? OK, so what is the most common ethernet packet size? 1500 bytes. Yup, nice even power of two. Oh, maybe you meant token ring. Hmm token ring packets must be anywhere between 4 and 4051 bytes long. Yup, nice even powers of two.
There *is* something magical about a 512 byte or 4096 byte sector size.
It may be possible for a hard disk sector size to be 520 bytes, but it's not convenient nor efficient. What computers do with hard disks at the most basic level is to transfer data between memory and disk. Since computers are binary, it only makes sense that the size of "pages" of memory used in virtual memory schemes be a power of two. It's also much simpler and saner if these in-memory pages are a multiple of the sector size.
Similarly, the nature of digital signaling explains why early networking speeds involved powers of two.
A terminology they just up and made up later. I have never heard anyone actually use it.
You must not be speaking to anyone intelligent then...
http://physics.nist.gov/cuu/Units/binary.html - been around since December 1998 - 14 years and counting.
Just because the industry chooses to mislead consumers, doesn't make it right.
of course there is an inherent power of two for their size you moron.
aside from the IBM AS/400 using a 520 byte sector size, all other operating systems use binary bounded sector sizes..
for the longest time it was 512byte sectors, recently bumping to 4096 (8x512) sectors.
Storage is purely in binary format - as the data stored is (say it with me) based on binary... 1s and 0s...
Many years ago, before there were MiB, when IBM in one document defined a MB of memory as 2**20 and of magnetic media as 10**6, I asked what happens when we copy a MB of memory to disk. Does it:
A. Truncate high order,
B. Truncate low order, or
C. Automagically compress?
Of course the answer was:
D. None of the above.
'Early networking involved powers of two'. Really? 'Early networking' would be dialup, right? So what were the common speeds - 110, 300, 1200, 2400, 4800, 9600, 14400, 28800, 33600, 56600. Yep, powers of two all. Ethernet - nope, no powers of two there either. How about token ring? Nope, no powers of two there.
The only thing you said that is correct is that it makes sense for virtual pages to be powers of two. However, virtual pages have nothing to do with disk, other than disk is used for paging space. And of course the first systems to have virtual memory (back when it was really critical that things be as efficient as possible) didn't use disks with 512 byte sectors.
I had to use the terms just last week, though it was only to explain just this issue when describing a discrepancy of several "terabytes" worth of drive space on a fairly large DB server. When you're talking about Tier I storage, a few terabytes can be tens of thousands of dollars per year, and the customer was understandably pissed when they ended up hitting their data cap a year ahead of projections, then hearing that it was because they didn't have the space they requested. I had to say things like "tebibytes" and "gibibytes" with a straight face while fellow admins were rolling their eyes and calling me a liar... thank gods for Wikipedia.
The memory industry is the one most abusing the units of measurement as they typically are reporting GiB but label it as GB.
However, according to TFS, I think TFA (sorry, not allowed to read it) is making a point that M$ (and likely others) are displaying storage capacities (aka HDDs and other things that use proper SI / base 10 prefixes) with the numeric component calculated based on one prefix, but labeling them with the other. So it's the same problem as the memory industry -- the numeric component is reported in KiB / MiB / GiB / TiB, however the unit of measure label stuck next to it is in KB / MB / GB / TB. It is a mismatch, and for that they are Doing it Wrong(tm).
With memory, it is a defacto standard, and most people realize that 1GB of RAM means 1,073,741,824 Bytes. And by the same token with HDDs people (hopefully) realize that 1GB = 1,000,000,000 Bytes. But when some software company comes along and represents your 1,000,000,000 Bytes of HDD space as 0.9313 GB (when it should have been GiB) you suddenly get 1) confused, and 2) feel shortchanged. The latter is a human psychology issue, can't fix that easily. But the confusion could have been avoided entirely, which incidentally also avoids issue #2.
This is why, when looking at file in Windows and wanting to know the *actual* size, I open up the properties dialog and look at the "Size" field. It tells me in bytes...no prefixes or other stupid calculation and/or labeling errors. Also tells me "Size on disk" which accounts for slack space and matters more for when I'm concerned about the actual amount of my limited resource that has been consumed.
You're missing a fact in what you've just said. A byte is 8 bits. 8 is 2 to the power of THREE. 2 to the power of 8 is 256, and 256 bits is 32 bytes. Before you criticize or advocate anything maybe you should examine your own statements of "fact". The person you are replying to has not advocated anything. They have simply stated why it is unacceptable to use powers of ten in ram and possible to use it in network capacity and hard disk capacity. That is to say, manufacturers are able to get away with it in order to sell bigger numbers but provide less product.
Sadly, a Libertarian cannot force his views on another, and freedom cannot spread as does the cancer known as religion.
While if you go to Canada, "native" is a disparaging term, and the politically correct term is "aboriginal". Oddly enough it seems it is also politically correct to commit genocide against such a people and then turn around and redefine the word genocide to disclude those activities which were previously called genocide.
Sadly, a Libertarian cannot force his views on another, and freedom cannot spread as does the cancer known as religion.
since when do opinions matter on the internet?
Sadly, a Libertarian cannot force his views on another, and freedom cannot spread as does the cancer known as religion.
You want a word to mean ONE THING. Not two things, based on whether it is better for you personally. That is the problem. Nobody cares what the 'real' definition is. They just want it to always mean the same thing, so they can compare different drives or systems.
Go to Heaven for the climate, Hell for the company -- Mark Twain
No, everybody does not use the wrong words.
Thanks for playing, but you're wrong.
Intelligent people, and people who are accurate use the correct terminology daily.
Well, 110 baud is 110 bits-per-second. If that's not a unit of measure that involves the binary system, ... But yeah, the quantities aren't powers of two.
The earliest VM subsystem that I've looked at is the one for Multics in the 80's. What early systems had VM pages that were not multiples of disk sector size? Just curious.
"You have posted more stupidly incorrect information in this forum than I have ever seen before."
You are getting fairly hostile for someone who is making stuff up as they go.
"Going back to async days, a 'packet' consisted of 1, 1.5, or two start bits, 5-8 data bits, 0 or 1 parity bit, and 1 or two stop bits."
1.5 start bits? That's amazing!
I've built binary systems using cmos chips loaded with gates. I've written ASM for various microprocessors depending on what I was playing with at the time. I wrote a toy minimal OS for x86 at one point. Hell I've even done some tcp/ip over nerf arrow to instruct students. But I've have never yet seen a half bit! Most likely because there are only two values a bit can have, 0 and 1.
"Oh, you didn't mean async, you meant something more modern, like Ethernet, right? OK, so what is the most common ethernet packet size? 1500 bytes."
Ethernet doesn't have packets. It splits them up. It is also hardly new. But if you look at the overhead for Ethernet you will see that all the values are divisible by 16bits (2bytes). That includes the default max 1500 bytes and minimum 46 bytes. They aren't powers of two but they are, deliberately, all even numbers of bytes. The reason for those choices are that devices that speak Ethernet are digital and at the time would be expected to have 8 or 16 bit registers. But the overall size of 1500 wasn't selected to be efficient at processing and has nothing to do with the size of data packets your computer generates it was chosen because it would tie up a 14.4k modem for 1 sec. When you are designing something to completely saturate a network for a full second you aren't trying to get it evenly into the fewest number of frames possible, you are trying to avoid retransmits and the cost of retransmits.
http://sd.wareonearth.com/~phil/net/overhead
Now that networks are faster and more reliable we are seeing Ethernet revamped with jumbo frames. Let's take a look.
""Jumbo frames" extends ethernet to 9000 bytes. Why 9000? First because ethernet uses a 32 bit CRC that loses its effectiveness above about 12000 bytes. And secondly, 9000 was large enough to carry an 8 KB application datagram (e.g. NFS) plus packet header overhead. Is 9000 bytes enough? It's a lot better than 1500, but for pure performance reasons there is little reason to stop there. At 64 KB we reach the limit of an IPv4 datagram, while IPv6 allows for packets up to 4 GB in size. For ethernet however, the 32 bit CRC limit is hard to change, so don't expect to see ethernet frame sizes above 9000 bytes anytime soon. "
Look at that. When we aren't intentionally designing around a bigger problem like super slow and unreliable links we do suddenly come back to neat fitting power of 2 units after all. hmm... IPv4 limit is 64KB IPv6 allows 4GB in size. Ethernet uses a 32bit CRC. Odd how these are all power of two units.
http://en.wikipedia.org/wiki/G.hn
G.hn specifies data frames of 2^14.
You know a 5 dollar bill is 5 base 10 units not 1 base 5 unit right? A single base 5 unit would be worth $1 not 5 and multiplying it by 5 would not be 25.
A quantity of decimal units grouped together are still decimal units.
Actually, the Commodore 64 didn't have "64 kilobytes" of RAM, it had "64K" of ram if you look at a lot of their literature from back in the day, which avoids the whole si-prefix thing by defining capital "K" as 1024 (a lot of other companies did this too, some more consistent than others). It seems that the real confusion started with megabytes as no one used "M" to denote 1024*1024 which would have followed the earlier convention.
to something?
I assume you would like to look less like an idiot in the future, so I will provide information with references for your education.
"There is no such thing as a half bit"
In communications, a half bit is a signal that is on the wire for half of the time of a full bit. Here is a datasheet from a UART manufacturer. On page 4 they describe the 'line control register' which sets how many stop bits there are: 1, 1.5, or 2. A simple search will return many references to start/stop bits in async communications.
"Ethernet does not have packets"
The IEEE, Cisco, Wikipedia, and Wireshark would all disagree with that, as would anyone who knows anything at all about networking.
Your little quote you posted provides no support for your position at all. Nobody ever said maximum numbers (such as data lengths) were not going to be in powers of two, or that calculations such as CRC would not be in powers of two. What I said was that data is not naturally (or even usually) transmitted in power of two increments, and you have shown absolutely nothing to disprove that.
You know that a bit is an object that can be counted (like every other object in the world) in any base at all, right? You know that a bit represents the number 1 and nothing more, right?
And while we're on your stupid assertion that things that can represented must be counted in binary, please explain why everybody in the world refers to 64KB, 3Gb, etc. Nothing like mixing two different bases in the same number to really confuse things (or maybe you think 64 and 3 are binary numbers). And why are file sizes displayed in base 10? Or does simply abusing the well-known prefixes 'kilo', 'mega', etc mean that we magically switch to some base 2 system of counting (but only for what the prefix represents, not the number itself)?
"Congratulations! By the way, I have over thirty years experience doing hardware design and assembly programming."
I'd demand a refund. You also keep talking about hardware but we are talking about software.
"First, to your addressing question. I don't know if you are talking about segment-register type addressing, or bank-select type addressing, but in either case you are completely wrong... if you can address 4G then you have 32 addressing lines"
I wasn't asking a question. It doesn't matter what the underlying mechanism is or the count of address lines. A segment is an offset so yes a 16bit address with a 16bit offset is actually a 32bit address.
"I already said it does not matter what the unit is being selected (bit, byte, word, line, whatever). The addressing does not change based on the size of the data, on the number of data lines changes."
The addressing doesn't change based on the size of the data. The addressing changes based on the size of the storage. It is more efficient for a filesystem to abstract a disk into an address space that fits completely into one CPU register even at the expense of that address DIRECTLY pointing to every location on the disk. Address lines and physical implementation of the disk have nothing to do with it.
"WTF does something being measured in bits-per-second have to do with powers of two?"
The fact that the data, PROGRAM and USER DATA, is generated in powers of two and the network exists for the single purpose of transferring it? You don't label the device with a metric that most closely matches it's implementation or method of function, you label with the metric that most directly relates to utility. A user isn't transferring 5mbit to their other PC. They are transferring 5MB. Rating the network in anything but powers of two bytes means they'll have to perform a conversion before they can find out how long that will take.
"Likewise, the size of a harddisk is dependant only on the bit density of the medium. A disk can be manufactured in absolutely any size at all, there is NO 'natural' power of two boundary to disk sizes."
The physical mechanisms of the disk are completely irrelevant. A disk is a storage device. It's purpose is to store a users data. It's capacity rating does not exist to be an exact representation of the number of bits physically contained within but to let a user know how much file content can be stored on it. The rating isn't for use by an engineer it is for use by a buyer.
User data is generated in units that are power of two sized because memory is power of two sized and user data is generated in memory and stored to disk, usually in pieces that are the same size as the logical container of memory that contained the value being stored not the minimum number of bits that could potentially contain that specific piece of data.
"There is no reason that the 'word size' of a machine has to be a power of two."
No but there is plenty of properties innate to binary and implementations in binary that dictate it SHOULD be. I can flash back to the old days of making individual bits meaningful to squeeze the maximum potential out of a single byte and use XOR with masks to flip bits but there is plenty of reason I shouldn't that anywhere in a word processor implementation.
For starters if you have a logic implementation that works for one bit you can copy and paste the identical logic and it will now work for 2 bits. Copy and paste that and it now works for 4 bits, etc. Or in other places you are adding a bit to the logic, logically doubling the implementation in powers of 2. Binary logic can be made to magically grow in power of two increments and every power of 2 is evenly divisible by every power of 2 preceding it and a multiple of every value preceding it.
I'm not saying it isn't possible to use none power of 2 groupings or even come up with a scheme that is efficient. It's just a lot more effort for absolutely no gain. There is as much benefit to thinking of all binary compatible units IN binary as there to thinking of all decimal compatible units in decimal. If it weren't useful to keep all values in the same base there would be no SI.
I don't think I have ever read so much incorrect information in one place before. Congratulations!
Yeah, he's not just wrong, he's magnificently wrong. Classic "can't tell if stupid or just trolling" material.
In either case, if you can address 4G then you have 32 addressing lines, either all directly from the processor, or perhaps with some coming from an external bank-select register.
I would add to this that today, high performance CPUs and SoCs directly interface to DDRn DRAM, and as such often have significantly fewer than 32 physical external address pins. In fact, because DRAM multiplexes row and column addresses over the same pins, the count is usually something weird like 13 or 14 address pins.
In memory components, bits/bytes/whatever OCCUR in powers of two. You can't buy a 1000 (not a power of two) byte memory chip, you can buy a 1024 byte (a power of two) chip. You can't buy a 3072 byte (not a power of two) chip (well maybe there is some weird chip like that but it would be special purpose), the next highest size is 4096 (a power of two). However, you certainly CAN send exactly 1000 or 3072, or any other number of bytes across a network.
If you expand your definition of "memory components" to on-chip SRAM memory components, it's actually extremely common to see chip designers use non power of two (and even non-multiple-of-a-power-of-two) memories. Lots of them aren't accessible by a microprocessor at all. Even when they are, what's the sense in fully populating a memory array when you know you aren't ever going to use all of it? Often the right choice is to burn some address space instead of burning power and die area. Nobody cares if some random hardware table occupies 64 word addresses in the address map but only 57 of them are valid, or if each 32-bit word has only 13 bits implemented.
As you touched on before, the main reason why chips which are nothing but memory are sold in power-of-2 units is to make it easier to map several chips together as a contiguous address range with no holes. In contexts where that doesn't matter, all bets are off.
"Congratulations! By the way, I have over thirty years experience doing hardware design and assembly programming."
I'd demand a refund. You also keep talking about hardware but we are talking about software.
I'm not that dude, but I have to point out that you brought hardware up, and you keep making dumb claims about it...
I wasn't asking a question. It doesn't matter what the underlying mechanism is or the count of address lines. A segment is an offset so yes a 16bit address with a 16bit offset is actually a 32bit address.
Except when it's not. You know, like the classic 16-bit segment with 16-bit offset architecture, the Intel 8086, where the end result is a 20-bit address. Look it up.
"WTF does something being measured in bits-per-second have to do with powers of two?"
The fact that the data, PROGRAM and USER DATA, is generated in powers of two
No it's not, you clueless dunce.
for (unsigned char c=0; c<17; c++) { send_one_byte(c); }
There you go. I just wrote a program fragment which generates 17 bytes of USER DATA. If you had even the slightest bit of real world experience with programming and/or weren't trolling, you'd know it's common as dirt to generate, store, transmit, and receive blocks of data whose size is not a power of two.
and the network exists for the single purpose of transferring it? You don't label the device with a metric that most closely matches it's implementation or method of function, you label with the metric that most directly relates to utility. A user isn't transferring 5mbit to their other PC. They are transferring 5MB. Rating the network in anything but powers of two bytes means they'll have to perform a conversion before they can find out how long that will take.
Did you know that networks have framing overhead? Did you know that in Ethernet, specifically, frames are variable length (with a resolution of 1 byte) and that the maximum payload size is 1500 bytes? Did you know that Ethernet hardware reserves the right to silently drop packets whenever there are problems Too Hard To Solve in that layer, and as such relies on higher order protocols to detect missing packets and resend them? That said higher order protocols have their own overheads? That even when packets aren't being dropped, congestion avoidance algorithms can cause network nodes to deliberately avoid transmitting at line rate?
There isn't a chance in the world that end users could easily calculate file transfer times if only networks were rated in power-of-2 bits per second. There are tons of overhead sources, and no end user can possibly be expected to be aware of them. (Not even experts can predict all of them.) In this, as in so many other things, despite your arrogant know-it-all attitude, you are almost wholly ignorant of how this shit actually works.
The physical mechanisms of the disk are completely irrelevant. A disk is a storage device. It's purpose is to store a users data. It's capacity rating does not exist to be an exact representation of the number of bits physically contained within but to let a user know how much file content can be stored on it. The rating isn't for use by an engineer it is for use by a buyer.
And hey, guess what? That's pretty much why disk space should be quoted in power-of-10 units even when it's the operating system displaying file sizes. Ordinary people aren't ever taught base 2, or base 16. Powers of 2 confuse them. Powers of 10 don't.
"There is no reason that the 'word size' of a machine has to be a power of two."
No but there is plenty of properties innate to binary and implementations in binary that dictate it SHOULD be.
Bullshit.
I can flash back to the old days of making individual bits meaningful to squeeze the maximum potential out of a si
That's as wrong as it's possible to be. Bandwidth is not now and was NEVER measured in powers of ten. Shit, man, do you just make things up off the top of your head to sound smart? You don't know anything about computers.
You've just made a few of us feel very old :)
IMHO the base 2 version is the techical term and what should be used as GB etc, and the rest is marketing fluff by the sort of fools that think we should be calling the beige box the "hard drive" and the LCD monitor "the computer".
You need to substitute "marketing middle manager" for "hardware developer" or it doesn't make any sense.
It's not metric units though. This stupid argument is due to people confusing some long used technical terms with metric prefixes used in completely different contexts. It's like arguing about how some words have different meanings depending on context and complaining that the skin of an aircraft doesn't tan in the sun, so should be called skiin instead.
It isn't in the SI standards for units. What is your motivation for trying to frighten and mislead people on this issue?
Not for data.
Not for data.
That kind of argument just leads to no standard at all. Not for data. Not for surveying. Not for electronics. Not for engineering.
Every industry defining its own quirky standards sounds nice until you actually start to interoperate with the rest of the world.
But hey, keep calling 1024 bytes a kilobyte. You can keep explaining to your users that everybody else is doing it wrong. I doubt you'll change the storage industry.
It's not metric units though.
Then they should be abandoned in favor of metric units, as with all other non-metric units...
NO - S.I. do what they do but standards for data sizes are not part of what they do. It is that simple. I don't see where you get "That kind of argument" apart from your own baggage about how you think things should be, but tough, things are not that way you wish for better or worse.
I guess, but in such a world we're going to end up with devices where various pieces of software give various measures of size, and when you have a 1TB data cap you will have no real idea what that means unless it is in the fine print.
The fact is that there is no consistently-used standard, even if we all want there to be one.
I'm pretty sure you haven't actually seen that. In practice, what the HDD industry as a whole does is:
(a) informally settle on common advertised capacity points such as 250GB, 320GB, 500GB, 750GB, etc. These capacities are always pure decimal.
(b) make drives whose capacity isn't exactly the advertised capacity, but is never any less. E.g., a HDD advertised as 250GB will be able to store at least 250 * 10^9 bytes. You might get a little extra (in fact you often do), but you never get less.
If you look at specs for WD Blue drives you'll find WD's current 512-byte sector counts for various sizes. I've picked four.
http://www.wdc.com/en/products/products.aspx?id=770
250 GB - 488397168 sectors (250.059 GB, or 232.886 GiB)
320 GB - 625142448 sectors (320.073 GB, or 298.091 GiB)
500 GB - 976773168 sectors (500.108 GB, or 465.762 GiB)
1000 GB - 1953525169 sectors (1000.205 GB, or 931.513 GiB)
That last one, the 1TB drive, is also listed as "1,000,204 MB" on WD's page. Maybe that's where you got the idea of hybrid units from? It's actually a decimal figure, and WD didn't round it (using round to nearest, the last digit should be a 5 as I showed above).
Note that you get about 1.0002x the advertised capacity in all 4 cases. It's probably just an arbitrary WD policy.
IMHO the problem is there was an accepted standard definition but later a competing definition came out. The valid answer depends entirely on who you talk to - the technical answer or the marketing answer.
Yup, and stuff like this isn't unheard of. Chemists mounted a revolt over IUPAC's naming of element 106. However, in that case it was a matter of two bodies assigning two different never-before-used names to the same thing. The issue with the SI prefixes is that they were in use long before they were applied to bytes, which makes reaching a compromise harder.
Therefore, trying to force some power-of-two based prefix on those sizes is just silly.
That is, unless you don't think it's silly for a unit of measurement to be independent of context.
Actually, all of this (KB vs. KiB) has been standardised by ISO: "Quantities and units - part 13: Information science and technology," ISO/TC12 WG12, IEC/TC25, Geneva, Switzerland, ISO/IEC 80000-13:2008, Apr. 2008. Available: http://www.iso.org/iso/catalogue_detail?csnumber=31898 (it always baffles be that standards are not free te access...).
In short, 1K = 1000; 1Ki = 1024.
But they don't provide less product at all. Kil0 = 1000 has been standard since 1795.
Some computer science numpty decided to refer to 2^10 = 1024 as a kilo because they're approximately the same.
The only ones not lying about their product are the hard drive manufacturers who are using powers of 10.
I am not sure that I care any more. I have multi terabyte (10^12) byte hard drives that come nowhere near being full, and which cost around $100 each. I don't think the 100G or so that I am being "cheated" out of really make any difference to me. Maybe software gets screwed up by the different interpretations which might be a problem but as far as value for money... I don't care any more.
I'm pretty sure you haven't actually seen that. In practice, what the HDD industry as a whole does is:
Well, actually I have. I got the company wrong, though -- it was Maxtor who used this definition. Quoting from the manual above:
Actually they have paramount importance. It's all about efficiency. 32bit computers and all their binary predecessors and and alternatives process data in multiples of 2, be it base 2, hex (16), word (4), double word (8) or otherwise, its all base 2. Making block size any other length would man it would be more complex for a bunch of CPU components to accurately and quickly predict how long it would take to page a portion of data from RAM to an L4/3/2/1 cache on the CPU and how long it would take for a CPU to process a block of data. The opcodes for the actual process being done on the data needs to be base 2 as well as the CPU registers that receive these codes are base 2. This goes further than that, logical address space today is logical because it too needs to be locally divisible by integer number, so using a non base 2 value means a massive possibility of having 'half a block' or otherwise at the end of the HDD that is un-addressable by the drive. We already have spare blocks for bad block replacement, but even these must add up to the size of a block to be reassigned.
If you don't believe me, find me a block partition file system that allows non base 2 numbers like 231. 520 bytes, while really odd and inefficient as a result is still 512 bytes plus 8 bytes. At some point something will have to do that sum reducing efficiency. Maybe it was done due to metadata for each block being allocated at the time of creation (rather than it being allocated in advance like most modern filesystems)
Either way, OS/400 has little bearing on modern marketing file sizes seeing as most of the consumers confused by the messages will put hese hard drivers into use on Windows, Mac OSX, the odd Linux PCs. and appliances like set top boxes,
Please mod down into oblivion, I failed to read on.
After unMagical iPads, not-really-4G LTE and 45MB/s (but somehow this B conveniently equals Bit despite you giving me a free cloud service with the same case letters meaning Byte at the end), I really don't get how you can say this with a straight face.
Marketers are idiots, but it comes from the fact that they, like many journalists are nowhere near as technical as they purport to be, and therefore know exactly what the vast majority of consumers will be tricked by.
And Windows reported them as 1.38MB...
To the contrary, there was probably quite a bit more than 64GB on your surface pro. NTFS Filesystems take up around 7-10% of space and as a normal Windows user you should know that having real Windows on your tablet means it takes up space too. I would say Windows, the cache and the filesystem taking up a combined amount of only 14GB is very good.
You missed the point entirely, the point is that when KB is put on paper, it means 1000 sets of 8 bits. If you assert that there is no point in following 'byte' based storage, then why are we still using bytes and not measuring in bits?
Screw broad vision, we're not trying to futureproof the standard against 382bit processors of the future, we're trying to destroy the discrepancies made when you take a system that you claim is 'independent' from binary constraints so you can get an edge in marketing, but for the vast majority of it's uses, will be formatted in a binary style to be used on a binary computer that calls data in a binary fashion.
Networking is different, it's time based. A network can deliver half a word and deliver the other half in the following second. Storage is absolute, it must be binary for the sake of sanity because half a byte is useless to nearly everyone and is ignored.
Or if you built it yourself and you like to see POST to confirm that CMOS battery is functional, you'll see POST.
Are you seriously that elitist or are you a Mac User?
Pinky is low bit, thumb high. Some of the numbers, like 18, are uncomfortable but become easier with practice. Rapid summation of two hands from 32-62 would come with practice as well. Also, it would be customary to turn the palm towards the message recipient for clarity (which would also alleviate confusion about the meaning of 4 and 20).
You can't prove a thing you fascist slaver....
It's the Stay-Puft Marshmallow Man.
What the hell are you smoking?