Koupili jste si pevný disk, SSD nebo flashku a divili se, že kapacita v systému neodpovídá té inzerované? Vítejte ve světě plném zmatků a protichůdných standardů. Jak to všechno vzniklo?
Seagate, Western Digital a spol. odjakživa uvádějí kapacitu svých produktů v mega-, giga- a terabajtech a jimi používané jednotky se zakládají na desítkové soustavě. Příkladem budiž disk s reálnou kapacitou jeden bilion bajtů (1 000 000 000 000 B, ve skutečnosti to ale není nikde takhle přesně). Výrobce na něj nalepí značku 1 TB, protože 1 TB je 1000 GB, 1 GB je 1000 MB, 1 MB je 1000 kB a 1 kB je 1000 B.
Počítač a data na nich uložená ale fakticky pracují s dvojkovou soustavou, která nepoužívá tak hezké kulaté násobky. Takže 1 TB je 1024 GB a 1 GB pak 1024 MB atd. Kvůli rozdílu v násobcích dvojkové a desítkové soustavy bude reálně využitelná kapacita vždy nižší než udávaná. Zmiňovaný 1TB disk tak reálně uloží jen 931 GB dat. Sedm procent je pryč. Na trhu jsou už i 16TB modely, ty kvůli převodu „ztratí“ 1,1 TB.
Velká bajtová loupež nemá jednoznačného viníka, avšak ony rozdíly jsou výhodné jen pro výrobce disků. Ti ale mají logickou výmluvu. Kilo, mega, giga atd. jsou předpony soustavy SI, a ty pracují s násobky tisíců.
Znáte mebibajt?
Svízelná situace se mohla vyřešit před dvaceti lety. Informatici se totiž dočkali vlastních předpon v roce 1999, kdy byl schválen mezinárodní standard IEC 60027-2. Ten od dubna 2004 přijal i tuzemský systém ČSN. Nové binární předpony soustavy IEC již používají násobky 1024 a operují s názvy kibi, mebi, gibi… a zkratkami Ki, Mi, Gi… Z předpon SI si berou první dvě písmena názvu a doplní je o -bi, ze zkratek si půjčí první písmeno a doplní jej o -i.
Disk s prodávanou kapacitou 1 TB (terabajt) tak má 931 GiB (gibibajt). Binární předpony se bohužel v praxi tolik neuchytily a každý systém či software s jednotkami nakládá po svém. Výrobci disků také zůstávající u původního značení. A když se zeptáte na mebibajt Googlu, bude tvrdit, že jste si to slovo vymysleli.
Apple je na straně výrobců a 128GB kartu ukazuje s kapacitou 128 GB (tedy skoro)
S čím se setkáte v „terénu“? Ve Windows se aktuálně pracuje s příponami SI, avšak s jednotkami o násobcích 1024. Terabajtový disk se tak zobrazuje s kapacitou 931 GB (nikoliv GiB). Apple to používal shodně u iOS 10 a Mac OS X Leopard a starších, ale u nových verzí používá plně binární jednotky, takže terabajtový disk bude mít kapacitu 1 TB, jak uvádí výrobce.
U linuxových distribucí se využití různí, ale tam je největší šance, že narazíte na GiB a gibibajty. Disková utilita Gnome nasazená v Ubuntu nebo Fedoře používá plně binární jednotky jako macOS (tudíž u disku z příkladu bude 1 TB). Populární správce oddílů GParted ale již operuje s -ibibity.
Že se liší inzerovaná a využitelná kapacita, řešili dokonce i právníci. Z roku 2004 pochází hromadná stížnost na všechny velké výrobce paměťových karet. Rok nato čelil žalobě Western Digital, za další dva roky i Seagate. Všechny případy skončily mimosoudní dohodou, protože argument s příponami SI je neprůstřelný. Důležité ale je, že od té doby již výrobci skutečnou kapacitu v gibi- a tebibajtech uvádějí na webu a v balení produktů… bohužel jen jako drobnou poznámku pod čarou.
Ještě větší chaos
Praxe používat u disků desítkové jednotky sahá až do 70. let minulého století. Zvyk tak pochází z časů, kdy ještě počítač skoro nikdo neměl. Shodou okolností ale již v té době došlo k prvním zmatkům. Operační paměti (RAM) totiž tehdy pracovaly s kapacitami ve dvojkové soustavě (a tedy násobcích 1024), ale označovaly je předponami SI. A drží se toho dodnes.
Koupený modul s kapacitou 1 GB (přesněji 1024 MB) tak načte 1 073 741 824 bajtů, nikoliv 1 024 000 000 bajtů. Podle definice IEC to odpovídá 1073 MiB. Organizace JEDEC, která standardizuje operační paměti, tuto tradici zavedla do svého řádu a kilo-, mega- a giga- u ní odpovídá násobkům 1024.
Příklad: Pokud bychom uložili přesně 2MiB soubor (2 097 152 B) do 1GB modulu RAM a do disku s uváděnou kapacitou 1 GB, tak v prvním případě by se tam vešel 512×, ve druhém 444×.
Tím ale výjimky nekončí. Když jsme ještě vypalovali, tak zapisovací CD uváděla kapacitu 700 MB, ale reálně to bylo 700 MiB (tudíž přes 730 MB v desítkové stupnici). Jenže další kotouče se již inspirovaly u pevných disků. DVD s kapacitou 4,7 GB uchová 4,4 GiB dat.
Aby v tom byl dokonalý chaos, u přenosových rychlostí se vždy používají jednotky SI a násobky tisíců. Například MP3 s datovým tokem 320 kb/s odpovídá 320 000 b/s. Gigabitový Ethernet přenáší 1 000 000 000 bitů za sekundu. Stejně tak frekvence počítáme po tisících, takže 1 GHz je 1000 MHz.
# |
Zkratka |
Předpona SI |
# |
Zkratka |
IEC |
# |
Zkratka |
JEDEC |
1000 |
kB |
kilobajt |
1024 |
KiB |
kibibajt |
1024 |
KB |
kilobajt |
1000² |
MB |
megabajt |
1024² |
MiB |
mebibajt |
1024² |
MB |
megabajt |
1000³ |
GB |
gigabajt |
1024³ |
GiB |
gibibajt |
1024³ |
GB |
gigabajt |
1000⁴ |
TB |
terabajt |
1024⁴ |
TiB |
tebibajt |
1024⁴ |
TB |
terabajt |
1000⁵ |
PB |
petabajt |
1024⁵ |
PiB |
pebibajt |
1024⁵ |
PB |
petabajt |
A když už jsme nakousli ty přenosové rychlosti, všimli jste si, že se u nich používají bity, nikoliv bajty, v nichž data ukládáme? Cílem není mást a zapínat lidem v hlavě kalkulačky. Důvody jsou historické. Bit je základní jednotkou informace odjakživa. Bajt sice dnes odpovídá osmi bitům, jenže tomu tak nebylo vždy. Starší počítačové architektury používaly i šesti- či sedmibitové bajty.
Ty současné osmibitové se ale používají tak dlouho, že zůstávat u bitového označení je spíš marketing. Linka o rychlosti 100 Mb/s vypadá na papíru lépe než ta s rychlostí 12,5 MB/s.