Моята мисия е да информирам хората за рисковете в интернет,
както и за важността на свободните технологии и свободата на словото.

1 гигабайт = 10XX мегабайта

Купих си аз нов хард диск с капацитет 18 терабайта, прибирам се доволен вкъщи и го включвам към компютъра, но какво да видя – “Капацитет: 16.37 TB”! Защо производителите ме прецакаха така грозно с повече от терабайт и половина?!

Краткият отговор е, че производителите използват десетичната бройна система при рекламиране на продуктите си. В десетичния формат, един мегабайт (MB) е равен на 1,000,000 байта, един гигабайт (GB) е равен на 1,000,000,000 байта и един терабайт (ТВ) е равен на 1,000,000,000,000 байта.

Операционните системи като Windows и някои по-стари версии на MacOS, както и програми като BIOS обаче измерват и визуализират данните в двоичната (бинарна) бройна система. В бинарната система един мегабайт (MiB) е равен на 1,048,576 байта, един гигабайт (Gib) е равен на 1,073,741,824 байта и един терабайт (TiB) е равен на 1,099,511,627,776 байта.

Това се дължи на факта, че архитектурата на модерните компютри се основава на бинарната бройна система, което прави определението за единиците памет най-практично със степенуване на 2. Двоичната бройна система в много случаи не се конвертира в десетична с точност, но в зората на компютрите е била достатъчно близка и така един килобайт е дефиниран като 2^10 или 1024.

Знаейки тези числа от по-горе, можем да изчислим капацитета на един хард диск в бинарната бройна система със следната формула:

Десетичен капацитет / 1,048,576 = Двоичен капацитет в мегабайти 
Десетичен капацитет /1,073,741,824 = Двоичен капацитет в гигабайти
Десетичен капацитет /1,099,511,627,776 = Двоичен капацитет в терабайти

Следвайки формулата и примера с моя 18 TB хард диск стигаме до отговора откъде идва разликата с този терабайт и половина:

18,000,000,000,000 / 1,099,511,627,776 = 16.37090463191270828247 (16,37 TiB)

Това са цели 9,05% разлика! Предполагам сами сте забелязали, че когато дискът не е с толкова голям капацитет разликата не е толкова осезаема, но с по-големите дискове, колкото по-голям e порядъкът на числото, толкова логаритмично нараства процентната разлика между двоичната и десетичната стойност при една и съща представка.

Така въпреки всичко по дефиниция си разполагам с тези 18 трилиона байта капацитет, но несъответствията в измерванията идват от неконсистентните определения за представките “кило”, “мега”, “гига” и “тера” и какво всъщност представляват те. Забележете как за десетичния формат горе използвах представките MB/GB/TB, докато за двоичния формат използвах представките MiB/GiB/TiB. Но защо са различни?

Международната система единици (SI), добре позната още като метричната система определя представките за данни като MB (megabyte), GB (gigabyte), TB (terabyte) в десетичната бройна система. Представките KiB (Kibibyte), MiB (Mebibyte), GiB (Gibibyte), TiB (Tebibyte) са дефинирани през 1999г. от Международната електротехническа комисия (IEC), която има за цел да замести метричните представки като кило, мега, гига, тера с двоична система и така 2 мегабайта данни биха се състоили от 2x2^20 = 2097152 байта, вместо 2х10^6 = 2000000 байта.

В реалния свят никога няма да чуем някой да каже “компютърът ми има 1 тебибайт дискова памет”. На практика двата термина често са взаимозаменими и често се стига до объркване, особено в контекста на компютърната памет, но е важно да сме наясно с разликите, особено когато работим с аритметика и точни измервания или съвместимост със специфични програми или стандарти.

Има и други фактори на които се дължи разликата между рекламирания капацитет и това, което виждате на компютъра си, например файловата система която операционната система използва и мястото резервирано за системни данни.

Като сходна аналогия цялото това нещо можем да си го представим като различни начини да измерим една и съща дистанция. Например, 1 километър = 0.62 мили. Дистанцията е една и съща, но мерните единици са различни в зависимост от системата която предоставя измерването. Подобно е и с капацитета на диска – просто две системи представляват различно степенуване на една от фундаменталните единици за данни – байт.

#хардуер #системи