Mag een harddisk van 1 terabyte slechts 1 biljoen bytes bevatten?

harddisk-vier-terabyteRegelmatig krijg ik er vragen over: harddisks en USB-sticks die verkocht worden met zus-en-zo veel megabyte of terabyte aan opslagruimte, waarbij dan achteraf blijkt dat er met metrische aantallen gewerkt wordt. Een stick van 1 megabyte bevat dan 1 miljoen (10^6) bytes in plaats van 1.048.576 (2^20). Dat voelt nogal misleidend voor veel consumenten. Maar mag het?

In het algemeen is het voor aanbieders van producten verplicht om SI-eenheden te gebruiken. Dat is onder meer bij ons vastgelegd in het Meeteenhedenbesluit 2006, dat expliciet verwijst naar het Internationale stelsel van meeteenheden (Système International, SI) als de manier om eenheden aan te geven. De Metrologiewet verbiedt vervolgens (art. 22) het gebruik van andere meeteenheden dan in dat Besluit genoemd. Een pondje kaas aanbieden is dus strikt gesproken verboden – je moet “500 gram” in je advertentie vermelden dan.

Het Meeteenhedenbesluit noemt ook de termen voor veelvouden, en daarin zijn kilo, mega, giga en tera keurig gedefinieerd als machten van tien (10^3, 10^6, 10^9 en 10^12 respectievelijk). Dus als je wil zeggen dat iets een mega-hoeveelheid bevat, dan betekent dat volgens de wet een 10^6-hoeveelheid. Een andere invulling of betekenis mag je niet hanteren.

Natuurlijk weet ik dat leveranciers dit een prachtig gelegenheidsargument vinden om hun producten groter voor te stellen dan ze zijn. Immers, in de computerindustrie is er vanaf het begin eigenlijk altijd met machten van twee gewerkt. Een kilobyte is in die context 2^10 oftewel 1024 bytes, een megabyte dus 1.048.576 (2^20) en een terabyte 1.099.511.627.776 (2^40) bytes. Als je als consument met enige computerkennis een harddisk van een terabyte ziet, dan voel je je bekocht als er slechts 1.000.000.000.000 bytes op staan in plaats van 1.099.511.627.776, een verschil immers van bijna 10 procent. Zeker omdat Windows dat getal afkort naar 0,9 terabyte.

Maar is het echt een fout van de leveranciers? Die regel over SI-eenheden bestaat al een tijdje, sinds 2003 of daaromtrent. Het verrast dus hogelijk dat Microsoft en Apple nog steeds de computer-betekenis hanteren van de kilo, mega en tera. Dat lijkt me legaal (want zij adverteren niet, het is alleen een technische aanduiding in de Explorer) maar het geeft wel veel verwarring en boosheid bij consumenten die ineens een lagere hoeveelheid bytes zien op hun nieuwe opslagmedia. Iemand enig idee waarom zij dit nog niet aangepast hebben?

Arnoud

42 reacties

  1. De afspraak bestaat al wat langer, sinds 1998 en volgens die afspraak geeft Windows 10 het in ieder geval verkeerd weer, het argument dat ik daar voor tegen kom is dat ze dat doen omdat niemand anders de SI-maten gebruikt. Tja. Bij Windows 10 (en wellicht al eerder) geef explorer bij de eigenschappen van een schijf tegenwoordig zowel de opslag in bytes als in GB weer, dus is het verschil daar inmiddels wel duidelijk zicht. Overigens kan bij interne harde schijven de beschikbare hoeveelheid verder afnemen doordat Windows bv ruimte reserveert voor recovery images etc.

  2. Op zich is er al lang de mogelijkheid om die bits en bytes aan te geven: door de IEC bits en bytes units te gebruiken. een KiB (Kibibyte) is 1.024 bytes, terwijl een KiloByte (KB) 1.000 bytes is. Die standaard bestaat al sinds 1998, en is gewoon onderdeel van de SI. Als je dus iemand op de vingers wilt tikken, zijn het toch de Microsofts en Apples van deze wereld…

    Overigens geeft Apple in hun store gewoon 1TB aan als harddiskruimte bij een MAC, en kun je ze bestellen met 8 of 16 GB. Dus je kunt ze wel degelijk daarop aanspreken… En ook Microsoft geeft aan dat je je Surface Pro met 128GB kun kopen, en met 4 GB RAM…

    Edit: Opeens klusje ertussendoor: Reactie lang openstaan, en Pierre zegt hetzelfde…

      1. Meestal mag je meer leveren. Echter, ik heb mensen gesproken die specifiek op zoek waren naar een USB-stick van maximaal (dus niet minimaal, en ook niet vanwege de prijs) 256 MB. Dit was vorig jaar nog. Ze hadden namelijk meetapparatuur met brakke USB-drivers, die ervanuit ging dat groter dan 256 MB wel zal betekenen dat het apparaat kapot is.

  3. Ik heb een tijdje terug gezocht, maar ik kan nergens vinden dat Bytes een geaccepteerde SI eenheid is. De SI zegt wel iets over de prefixen die gebruikt worden en stelt de kibi, mebi etc voor als alternatief gebaseerd op machten van twee. Zie de side note bij http://www.bipm.org/en/publications/si-brochure/chapter3.html

    Het kan zijn dat bits en Bytes wel door een andere organisatie gestandaardiseerd zijn, maar dan is de vraag of dat wettelijk erkend is.

    1. In de oorspronkelijke betekenis is byte de naam voor de kleinste hoeveelheid in de hardware adresseerbaar geheugen. In oude hardware kon dat zo klein zijn als 4, 6 of 7 bits; in een CPU voor een moderne PC is dat tot 64 opgelopen. In die oude tijd was ook de codering van letters en stuurtekens verre van gestandaardiseerd, maar met de opkomst van de EBCDIC en ASCII standaarden voor die codering werd 8 bit de standaard voor de opslagruimte voor een character en is de betekenis van byte verschoven in de richting van de hoeveelheid bits die nodig is om een (westers) character op te kunnen slaan. Deze grootte van 8 bits voor een byte is de de facto standaard geworden.

      Om misverstanden te voorkomen, wordt in een aantal standaarden (met name standaarden die internetprotocollen vastleggen) gesproken over een octet, maar buiten die officiële documenten wordt dat begrip nauwelijks gebruikt.

      De IEC/ISO 80000 standaard heeft de byte als eenheid opgenomen, maar het SI niet. Het symbool dat de IEC/ISO standaard gebruikt, hoofdletter B, wordt in het SI-systeem gebruikt voor de bell, die we vooral in de vorm van dB tegenkomen. Bezien vanuit de systematiek van het SI, is het gebruik van een hoofdletter B als symbool voor byte merkwaardig. Eenheden die naar een persoon genoemd zijn hebben een hoofdletter als symbool, andere eenheden een kleine letter. Mogelijk belemmerde dit conflict tussen bell en byte concensus in het SI-overleg.

      1. in een CPU voor een moderne PC is dat tot 64 opgelopen.

        Nee, dat is het woord in een moderne PC (de basiseenheid binnen de processor c.q. het formaat van de general purpose registers). De kleinste addresseerbare eenheid is op 64-bit machines nog steeds gewoon 8 bits. Dus 8-bit bytes zijn nog steeds correct.

  4. De zaak wordt wat mij betreft vooral interessant waar het gaat om RAM modules in plaats van harddisks. Bij een hardisk is vrij te kiezen hoeveel ruimte erop zit zolang het een veelvoud van de sectorgrootte (traditioneel 512 bytes) is. Bij RAM modules is het om technische redenen on praktisch om niet een macht van twee te kiezen. Een RAM-module met 10^9 bytes (1 GB) gaat dus gewoon niet, maar een module met 2^30 (1 GiB) wel. Mensen staan toch raar te kijken als je die module dan adverteert volgens de wettelijke norm als 1.1 GB.

  5. Iemand enig idee waarom zij dit nog niet aangepast hebben?

    Apple gebruikt volgens mij al sinds enige tijd SI eenheden. Microsoft zal er wel niet aan willen om de gebruikelijke rede: backwards compatibility (met oude programma’s én gebruikers).

    In de VS is hier enkele jaren geleden wel een class-action zaak over geweest, maar die heeft Western Digital geschikt door wat gratis software weg te geven (http://www.foxnews.com/story/2006/06/28/western-digital-settles-hard-drive-capacity-lawsuit.html).

  6. Het Meeteenhedenbesluit noemt ook de termen voor veelvouden, en daarin zijn kilo, mega, giga en tera keurig gedefinieerd als machten van tien (10^3, 10^6, 10^9 en 10^12 respectievelijk). […] Een andere invulling of betekenis mag je niet hanteren.

    Maar staat er niet in artikel 12, tweede lid, dat dit vereiste alleen van toepassing is op SI-eenheden en een aantal bij naam genoemde niet-SI-eenheden? De byte vind ik niet terug in de lijst.

    1. Met andere woorden, die harddisk fabrikant is helemaal niet verplicht om 1kilobyte = 1000 bytes te gebruiken. Dat ze het wel doen is respectloos gebruikers in de maling nemen en je product beter voorstellen dan het is. Je gaat immers bewust tegen het gebruik in de computer industrie in en geeft een te mooie voorstelling van zaken.

      Laat Microsoft dus fijn de werkelijk groote in machten van 2 weergeven, dan is het meteen duidelijk voor de gebruiker.

  7. Volgens mij maak je het veel ingewikkelder dan het is, Arnoud. Er is een (achterlijke, IMHO) wet of besluit die bepaalt wat de begrippen “kilo”, “mega” etc. inhouden. Ik zeg achterlijk omdat het een taalkundige definitie is, en die zijn per definitie aan zowel verandering als context onderhevig. Paar voorbeelden, zo uit het blote hoofd; een “megahit” bestaat niet uit 1.000.000 nootjes, een “kiloknaller” is niet per se exact een kilo (en ontploft ook niet 1.000x) etc.

    Goed, maar die wet is er nu eenmaal kennelijk, dus adverteerders moeten zich daaraan houden. Voordeeltje voor de producenten (en de marges op hardware zijn al achterlijk laag, dus ik gun het ze best).

    Nu heb ik een mooie nieuwe harde schijf gekocht van zeg 1TB, en ik ga die lekker volplempen met data. Na het overzetten van flink wat bestanden wil ik weten hoeveel ruimte ik nog heb, dus ik draai een df (sorry, Linux-gebruiker ;)). Ik wil dan NIET weten hoeveel een marketeer van de wet zou moeten zeggen dat ik nog heb, ik wil weten hoeveel ik EXACT nog heb. Dus machten van 2. En gaarne met een kloppende block size (512, 1024 etc) en niet iets wat afgerond is naar het tientallig stelsel, want dat is op dat moment geen zinvolle informatie.

    Mijn slotconclusie: dit is enkel de schuld van de wetgever, die nooit de vooruitziende blik heeft gehad dat heel misschien de genoemde termen ook nog wel eens in een andere context zouden kunnen voorkomen, en die er (met het voor de overheid overigens kenmerkende digitale onbenul) vanuit ging dat we tot in lengte van dagen alles base-10 zouden blijven uitdrukken. Dat wordt nog lachen als we over een jaar of 10 kwantumcomputers hebben.

    1. Ben benieuwd hoe je over die domme wetgever denkt als je als ondernemer een belastingaanslag krijgt van 1 miljoen en er wordt van je verwacht dat je 1.048.576 euro overmaakt. Omdat de Belastingdienst nou eenmaal met z’n tijd meegaat en in base-2 is gaan rekenen…

      1. Wat een onzinnige opmerking. Als base-2 gebruikelijk wordt in geldzaken krijg ik een aanslag voor (bv) EUR 100100100111011 euro en is dat niet ambigu. Mijn hele punt is dat er kunstmatige ambiguiteit is gecreeerd omdat het informatietechnische begrip “kilobyte” betekent “1024 bytes” en e.o.a. pipo heeft “besloten” dat dat “verwarrend” is en dus “1000 bytes” moet betekenen, ook al is dat volkomen losgezongen van de realiteit. Dus ja, dan vind ik de wetgever achterlijk.

        Er is een reden dat in juridische documenten naast een getal ook de toevoeging “zegge: [uitgeschreven getal]” wordt gebruikt, juist om o.a. te voorkomen dat mensen gaan mierenneuken over de eenheid. Zou een rechtszaak worden aangespannen over het aantal bytes op een harde schijf, dan kun je er donder op zeggen dat een slimme advocaat dat tot op de bit nauwkeurig gaat uitschrijven, en fijntjes onder verwijzing naar het betreffende artikel zal betogen dat dat toch gewoon “klopt” voor de wet.

        1. En een betere vergelijking zou zijn als iemand zegt “ik krijg nog een snip van je”, dat was in guldens iets heel anders dan in euro’s terwijl dat soort termen nog steeds gebruikt worden, alleen met aangepaste betekenis. Echter, een officieel document zal zich nooit van dat soort afkortingen bedienen, net zoals in een rechtszaak over bits en bytes dingen gewoon uitgeschreven zullen worden. Dat een advertentie dat korter samenvat m.b.t. courante termen (“nu voor een geeltje per maand online!”) doet daar niks aan af, op je rekening staat gewoon EUR 25. Pas als daar iets opstaat wat redelijkerwijs “geen geeltje” genoemd kan worden (dus niet “die 25 was ex BTW”, maar ineens EUR 50) heb je een zaak.

          1. Nee, er is sinds de eerste floppys al gerommeld met 1000 en 1024. Een prachtig voorbeeld is de fameuse 3,5 inch HD (high density) diskette, in 1987 op de markt gekomen. Algemeen werd de opslagcapaciteit van dat ding aangeduid met 1,44 MB. Voor DOS geformateerd gebruikte dit type diskette 512 bytes per sector, 18 sectoren per track, 80 tracks per zijde en twee zijden voor een totaal van 512 x 18 x 80 x 2 = 1474560 bytes. 1474560 = 1440 x 1024. De ‘M’ in MB is hier dus 1000 x 1024 , niet 1,47 megabyte (1000 x 1000) of 1,41 mebibyte (1024 x 1024)!

            Overigens was de ongeformateerde grootte van die diskettes ongeveer 2 MB. Het verschil tussen de ruwe opslagcapaciteit van een disk en beschikbare ruimte in een geformateerd bestandssysteem is aanmerkelijk groter dan het verschil in machten van 2 of machten van 10 in de aanduiding van de capaciteit.

        2. Mijn hele punt is dat er kunstmatige ambiguiteit is gecreeerd omdat het informatietechnische begrip “kilobyte” betekent “1024 bytes” en e.o.a. pipo heeft “besloten” dat dat “verwarrend” is en dus “1000 bytes” moet betekenen, ook al is dat volkomen losgezongen van de realiteit.

          Dat wil ik toch graag bedisputeren.

          Het is helemaal niet waar dat in de informatietechniek prefixen als “kilo” en “mega”, toegepast op bits en bytes, consistent machten van 1024 aangeven. Mijn oude 10 megabit/seconde netwerkkaart verstuurt bijvoorbeeld (netto) tien miljoen bits per seconde, niet 10 * 2^20, en dat is de manier waarop de term altijd is gebruikt in de context van netwerksystemen. De ambiguiteit zit dus al in de informatietechniek, het is niet toegevoegd door de wetgever.

          En dat is een probleem, want die ambiguiteit is ook problematisch binnen de informatietechniek. Als bovenstaande netwerkkaart 8 seconden informatie staat uit te spugen, dan heeft hij 10 megabyte (dat wil zeggen, 10 miljoen bytes) verstuurd; niet 10 mebibyte. Verschillend gebruik van een prefix in verschillende contexten is leuk zolang de contexten nooit met elkaar in contact komen; maar doen ze dat wel (en dat doen ze) dan is het meteen een kleine ramp.

          Als mijn 1 GHz processor 1 byte per kloktik kan verwerken, hoeveel data kan hij dan verwerken per seconde? Als het antwoord iets anders is dan “1 gigabyte per seconde” dan gaat er ergens iets ernstig mis in de communicatie. Het is het taalgebruik binnen de informatietechniek dat verwarrend is (zelfs binnen de informatietechniek), en ik ben blij met de juridische prikkel om dit eindelijk eens op te lossen.

    2. dit is enkel de schuld van de wetgever, die nooit de vooruitziende blik heeft gehad dat heel misschien de genoemde termen ook nog wel eens in een andere context zouden kunnen voorkomen

      Eerlijk gezegd denk ik dat we (als informatici) een beetje (te) lui zijn geweest: de term kilo was allang ingeburgerd als 1000 en we zijn die term gaan misbruiken voor 1024. De termen kibi (Ki), mebi (Mi), gigi (Gi) zouden wellicht beter zijn geweest voor de 1024-varianten, maar ik vraag me af of die termen de consument (ook lui) nu nog echt gelukkiger gaan maken en breed ingang zullen vinden. Voor de Linux community is dat wellicht een ander verhaal 🙂

      PS was het gebruik van de termen ‘ons’ en ‘pond’ niet al eind jaren 70 / begin jaren 80 verboden?

  8. Natuurlijk weet ik dat leveranciers dit een prachtig gelegenheidsargument vinden om hun producten groter voor te stellen dan ze zijn.

    Harddisks zijn ronddraaiende dingen met een cirkelvormige geometrie. Bij een cirkelvormige geometrie is er geen enkele reden dat machten van twee een logisch getal voor de opslagcapaciteit vormen. Er is niets “natuurlijks” aan dit “gelegenheidsargument”.

      1. De informatie wordt binair opgeslagen en op binaire techniek gebaseerde hardware wordt gebruikt om die data te verwerken. Maar die gegevens moeten worden gebruikt door en gepresenteerd aan mensen met een niet-binair werkend brein. Dat brein is getraind om tientallig te denken, waarschijnlijk doordat de meeste mensen tien vingers hebben. Mensen kunnen niet in machten van twee denken. Juist daarom vinden ze het handig om 2^10 af te ronden tot ongeveer duizend. Als je consequent binair zou denken zou je voorvoegsels gebruiken die corresponderen met 2^8, 2^16, 2^32 enzovoorts, en niet met 2^10, 2^20 of 2^30.

    1. Cirkelvormige geometrie heeft hier niets mee van doen, ook als een harddisk driehoekig zou zijn geweest, zou de opslag in machten van twee gerekend worden. Want een computer is nou éénmaal gebaseerd op het binair stelsel. Het zal wat dat betreft interessant zijn om te zien of dit verandert als de quantumcomputer met zijn trinaire logica zijn intrede doet.

      1. Met data doe je twee dingen: opslaan en communiceren. Voor communicatie gebruiken we protocollen als het ethernetprotocol met een MTU van 1500 byte + 26 voor de header, of het ATM protocol met een data cell size van 48 byte + 5 voor de header. Dat een computer binair werkt heeft blijkbaar geen invloed op datacommunicatie. Waarom zou het dat wel moeten hebben op dataopslag?

      2. Een kwantumcomputer heeft geen trinaire (sic) logica, voor zover ik weet. Misschien vallen beide ideeën wel met elkaar te combineren, maar drie-waardige logica is niet het basis-idee van de kwantumcomputer.

        In plaats daarvan werken kwantumcomputers met qubits. Een qubit kan oneindig veel verschillende toestanden hebben, dus veel meer dan drie. De toestand van een qubit is altijd een combinatie van de 0-toestand en de 1-toestand:

        |qb> = a * |0> + b * |1>

        waarbij de beperking geldt dat |a|^2 + |b|^2 = 1 (*). Volgens mij kunnen a en b verder elke complexe waarde aannemen.

        a=1,b=0 levert |qb> = |0>; dit komt overeen met de klassieke bit-waarde 0.

        a=0,b=1 levert |qb> = |1>; dit komt overeen met de klassieke bit-waarde 1.

        (*) als je de waarde van de qubit uitleest, dan is |a|^2 de kans dat je 0 meet, en |b|^2 is de kans dat je 1 meet. Deze beperking komt er dus gewoon op neer dat de som van alle kansen 100% moet zijn.

    1. Wat me doet denken aan deze mop:

      Einstein, Pascal en Newton spelen een potje verstoppertje en Einstein is hem. Dus Einstein begint te tellen: “één, twee, drie, enz.” Pascal rent het bos in terwijl Newton rustig blijft staan en een krijtje pakt om een vak om zich heen te tekenen van 1 meter bij 1 meter. Ondertussen is Einstein klaar met tellen: “Negen, tien, wie niet weg is, is gezien!” Einstein draait zich om en ziet Newton natuurlijk meteen staan. “Buut Newton!!” Waarop Newton antwoordt: “Ik ben Newton niet, ik ben Pascal!”

    2. Een baud is niet per se een bit per seconde; een baud is een gemoduleerd symbool per seconde. Een netwerkapparaat dat honderd keer per seconde een van zestien mogelijke voltages op een draad zet om vier bits te coderen produceert een signaal van honderd baud, maar verstuurt vierhonderd bits per seconde.

    3. Even tijd voor het rode potloodje. Namen van eenheden zijn gewone zelfstandige naamwoorden en worden derhalve met een kleine letter geschreven (tenzij natuurlijk als eerste woord van een zin). Eenheden waarvan de naam afgeleid is van de naam van een persoon hebben een symbool dat begint met een hoofdletter. Dus: voor de eenheid baud wordt het symbool Bd gebruikt, want vernoemd naar Émile Baudot. Evenzo: de eenheid watt dankt zijn naam aan James Watt en heeft als symbool W. De korte schrijfwijze voor een eenheid heet symbool en niet afkorting. Bij symbolen kun je geen kleine letters in hoofdletters veranderen, of omgekeerd. Toestaan van het wisselen tussen kleine en grote letters zou leiden tot tweeduidigheid. Normale regels als “aan het begin van een zin” zijn niet van toepassing op symbolen. Mg staat daardoor altijd voor megagram en nooit voor milligram, zelfs aan het begin van deze zin. (Tenzij we het over magnesium hebben. Volgers van dit blog wisten natuurlijk al dat je de zaak met wetten en regels nooit waterdicht kunt krijgen.) Verder krijgen eenheden nooit een meervoudsvorm. Dus: bit/s.

      1. Op die manier ga je er zeker niet uitkomen. De eenheden bits en Bytes zijn geëvolueerd naast de bestaande standaardisatie organisaties. Die situatie heeft ondertussen zolang bestaan en heeft zoveel invloed op ons bestaan dat het ondenkbaar is die nu nog te veranderen.

        Heel hard gaan zwaaien met een rood potlood gaat dan echt totaal niet helpen. Zeker niet als je geen alternatief hebt.

        Overigens kende ik het bestaan niet van de afgekorte vorm van baud. Wordt dat echt gebruikt?

        1. Ken je uberhaupt een computergebruiker onder de 30 die nog weets wat een baud is?

          Overigens is het gebruik van SI prefixen voor computers totaal onlogisch. Los van het gebruik is er dus nog een goede reden om die niet te gebruiken. Het is niet voor niets dat harddisk fabrikanten SI prefixen als eerste gingen gebruiken in hun reclame uitingen. Mooi weer spelen en volkomen onschuldig naar SI wijzen als je erop aangesproken wordt. Terecht dat men daar in de VS niet mee weg kwam.

          Wat mij betreft zou het antwoord op de vraag in de titel dan ook ‘nee’ moeten zijn. Het is onlogisch en tegen het gebruik in de computer wereld en dus bedrog.

          Ik neem dit terug, op enkele uitzonderingen na zijn harddisk blijkbaar altijd met SI prefixes verkocht. Computers geven de capaciteit echter historisch amet binary prefixes. Dit verschil is dus gebruik :O

          USB sticks daarentegen gebruiken weer binary prefixes; op zich logisch door de bouwwijze.

          Als je dit recht wil trekken zou ik zeggen bij computers alles binary prefixes, dan is alles consistent.

Geef een reactie

Handige HTML: <a href=""> voor hyperlinks, <blockquote> om te citeren, <UL>/<OL> voor lijsten, en <em> en <strong> voor italics en vet.