Почему флешка на 64 ГБ показывает 59,6 ГБ: два гигабайта под одним названием

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

Новая флешка на 64 ГБ, ноутбук, «Этот компьютер», а там 59,6 ГБ. На неё ещё ничего не записали, а четырёх с половиной гигабайтов уже нет. Первая мысль понятна: подсунули подделку. Вторая: Windows опять что-то спрятала. Обе мимо. Ровно ту же цифру покажет любая исправная флешка такого объёма, а терабайтный SSD в той же Windows похудеет до 931 ГБ.

Коробка, в которой за годы скопились флешки и карты памяти самых разных объёмов: от 256 МБ до 16 ГБ
Коробка, в которой за годы скопились флешки и карты памяти самых разных объёмов: от 256 МБ до 16 ГБ
Автор: Blake Patterson. CC BY 2.0 Источник: commons.wikimedia.org

Никто при этом не врёт. Производитель и Windows считают в разных гигабайтах, а называют их одним словом. Спору об этом больше полувека. Под него придумали новые единицы, которые почти никто не произносит вслух, а два крупных производителя жёстких дисков в итоге пошли на мировую по коллективным искам.

Приставки «кило», «мега» и «гига» взяты из метрической системы: тысяча, миллион, миллиард. С километром никто не спорит. Но компьютеру ближе степени двойки. Каждый лишний разряд в адресе удваивает число ячеек памяти, поэтому микросхема на 1024 ячейки получается сама собой, а на 1000 её пришлось бы специально недоделывать. 1024 так близко к тысяче, что инженеры 1960-х махнули рукой и стали называть 1024 байта килобайтом. Расхождение в 2,4 % тогда никого не волновало.

Подвох в том, что ошибка копится на каждой ступеньке. Двоичный мегабайт больше десятичного на 4,9 %, гигабайт на 7,4 %, терабайт уже на 10 %. Пока файлы мерили килобайтами, разница терялась в округлении. На флешке в 64 ГБ она выросла до четырёх с половиной гигабайтов, а на диске в 4 ТБ Windows недосчитается почти 0,4 ТБ.

Проверить это можно на калькуляторе в том же ноутбуке. На упаковке 64 ГБ, то есть 64 000 000 000 байт. Windows делит их на 1 073 741 824, это два в тридцатой степени, и получает 59,6. Терабайт по той же формуле превращается в 931. Байтов ровно столько, сколько обещали, их просто пересчитали другой линейкой.

Чем крупнее единица, тем сильнее расходятся десятичный и двоичный счёт. Справа то, что Windows покажет для накопителей популярных объёмов
Чем крупнее единица, тем сильнее расходятся десятичный и двоичный счёт. Справа то, что Windows покажет для накопителей популярных объёмов
Автор: Raspakovka Источник: www.ixbt.com

Дискета, которая не совпадала ни с одним мегабайтом

Насколько всё запуталось, лучше всего видно по трёхдюймовой дискете. На шторке писали «1.44 MB», а после форматирования на неё помещалось 1 474 560 байт. Это не 1,44 десятичного мегабайта, их было бы 1 440 000. И не 1,44 двоичного, тех было бы около 1 509 949. Ёмкость дискеты равна 1440 двоичным килобайтам, и уже это число поделили на тысячу. В одном «мегабайте» уместились сразу и 1024, и 1000. Почти никто этого не замечал: дискету куда чаще ругали за то, что она внезапно переставала читаться.

Трёхдюймовая дискета Samsung с надписью «IBM Formatted 1.44MB» на шторке. Реальная ёмкость после форматирования составляла 1 474 560 байт
Трёхдюймовая дискета Samsung с надписью «IBM Formatted 1.44MB» на шторке. Реальная ёмкость после форматирования составляла 1 474 560 байт
Автор: Peter Astbury. CC0 Источник: commons.wikimedia.org

У жёстких дисков своя логика. Их ёмкость складывается из пластин, дорожек и секторов, и ровной степенью двойки ей быть совсем не обязательно. Первый серийный жёсткий диск IBM 350 из системы RAMAC 1956 года хранил 5 миллионов шестибитных символов на 50 пластинах диаметром 24 дюйма, и описывали его круглым десятичным числом. На десятичном счёте производители дисков в итоге и остались. Заодно он рисует на коробке цифру покрупнее, и вряд ли отдел маркетинга был против.

Механизм накопителя IBM 350 из системы RAMAC 1956 года: стопка из 50 пластин и блок головок. Экспонат музея
Механизм накопителя IBM 350 из системы RAMAC 1956 года: стопка из 50 пластин и блок головок. Экспонат музея
Автор: ArnoldReinhold. CC BY-SA 3.0 Источник: commons.wikimedia.org

Как гигабайт дошёл до суда

Пока диски измерялись сотнями мегабайт, недостача почти не бросалась в глаза. Когда в магазинах появились диски на 80 и 120 ГБ, «пропадать» стали уже целые гигабайты, и в середине 2000-х за дело взялись калифорнийские адвокаты. Иск против Western Digital строился на простой арифметике: на коробке 80 ГБ, а пользователь видит 74,4.

Компания назвала претензии необоснованными, но в 2006 году решила не тянуть дорогой процесс и согласилась на мировую. Итог вышел почти анекдотичным. Каждый, кто купил диск WD начиная с 2001 года, мог бесплатно получить программу для резервного копирования ценой около 30 долларов. Деньгами покупателям ничего не возвращали, а вот адвокатам истцов полагалось до полумиллиона долларов. На коробках появилось пояснение о доступной ёмкости.

Похожий иск подали и против Seagate: Сара Чо и Майкл Лазар утверждали, что диски вмещают примерно на 7 % меньше обещанного. В 2007 году Seagate тоже договорилась миром, и здесь покупателям уже предложили выбор между возвратом 5 % от цены диска и той же программой для бэкапа. Гонорар адвокатов составил 1,8 миллиона долларов. Обе истории закончились мировыми соглашениями, так что вопрос, чей гигабайт правильный, ни один суд по существу так и не решил.

Жёсткий диск Seagate ST33232A со снятой крышкой: пластины и блок головок
Жёсткий диск Seagate ST33232A со снятой крышкой: пластины и блок головок
Автор: Eric Gaba (Sting). CC BY-SA 3.0 Источник: commons.wikimedia.org

Гибибайт, который никто не произносит

Выход из путаницы придумали ещё за несколько лет до исков. В декабре 1998 года Международная электротехническая комиссия (IEC) утвердила отдельные приставки для двоичных величин: киби, меби, гиби и теби. В обозначениях появилась буква i: KiB, MiB, GiB, TiB. С таким стандартом Windows могла бы честно писать «59,6 ГиБ», и вопрос был бы закрыт.

Попробуйте произнести «гибибайт» вслух в магазине электроники. Слово так и осталось в документации и в консольных утилитах. В Linux, например, df с ключом -h считает степенями 1024, а с ключом -H степенями 1000. Windows по-прежнему делит на 1024 и пишет «ГБ». Зато остальные постепенно перешли на десятичный счёт. Apple перевела Finder на десятичные единицы в 2009 году, в Mac OS X 10.6 Snow Leopard, и после обновления пользователи с удивлением нашли «прибавку» свободного места, хотя ни одного байта не появилось. iOS считает так же начиная с 11-й версии, Android с версии 8.0. Поэтому смартфон на 128 ГБ в настройках и показывает 128, а не 119.

Больше всего путаницы внутри одного компьютера. Оперативная память осталась двоичной: в модуле на 16 ГБ ровно 16 x 2³⁰ байт, потому что микросхемы памяти выпускают объёмами, кратными степеням двойки. Скорость сети, наоборот, считают десятично, и гигабитный порт передаёт миллиард бит в секунду. Выходит, что в одном ноутбуке «гигабайт» оперативной памяти и «гигабайт» SSD означают разные числа.

Модуль DDR4 на 16 ГиБ. У оперативной памяти гигабайты двоичные, и автор снимка честно подписал его гибибайтами
Модуль DDR4 на 16 ГиБ. У оперативной памяти гигабайты двоичные, и автор снимка честно подписал его гибибайтами
Автор: PantheraLeo1359531. CC BY 4.0 Источник: commons.wikimedia.org

Куда ещё девается место

Даже честные 59,6 ГБ целиком не достанутся. Часть займёт файловая система со своими служебными таблицами. На ноутбуке к этому добавятся скрытые разделы восстановления, которых в «Этом компьютере» вообще не видно. А внутри самой флешки память обычно изготовлена двоичными объёмами, и разницу между ними и цифрой на упаковке контроллер забирает в резерв на замену изношенных ячеек.

Есть и потери на каждом файле. NTFS выделяет место кластерами по 4 КБ, поэтому файл в 2 КБ всё равно займёт на диске 4 КБ. Это видно в свойствах файла, где есть две строки: «Размер» и «На диске». С совсем крошечными файлами в несколько сотен байт бывает обратный фокус. NTFS прячет такой файл прямо в свою служебную таблицу MFT, и Windows с чистой совестью пишет «На диске: 0 байт».

Настоящая проблема начинается, когда места меньше, чем даёт расчёт, или записанные файлы перестают открываться. Подделку по цифре в Windows не узнать: дешёвая флешка с перепрошитым контроллером покажет те же 59,6 ГБ, а на деле вместит в разы меньше. Всё, что не влезает, она молча пишет поверх уже записанного. Проверяют такие флешки программой H2testw в Windows или f3 в Linux и macOS: они заполняют всю память тестовыми данными и читают их обратно.

Для быстрой прикидки хватит двух коэффициентов: гигабайты с коробки умножаем на 0,93, терабайты на 0,91. Флешка на 128 ГБ в Windows превратится в 119 ГБ, диск на 2 ТБ в 1,81 ТБ. А какой «недовес» больше всего удивил вас: флешка, диск или телефон, на котором после системы почти ничего не осталось?

Изображение в превью:
Автор: Blake Patterson. CC BY 2.0
Источник: commons.wikimedia.org

2 комментария

Ф
Вздрогнул, увидев SanDisk Cruzer Mini. Моя первая флешка. Как же было здОрово отказаться от дискет…
R
Да, после дискет такая флешка казалась чем-то из будущего.

Добавить комментарий

Сейчас на главной

Новости

Публикации

Как калькулятор породил эру ПК: история первого в мире микропроцессора Intel 4004

В ноябре 1971 года в журнале Electronic News появилось скромное рекламное объявление от молодой калифорнийской компании Intel со слоганом: «Объявляем о новой эре интегрированной электроники». Речь...

Почему в Японии полы моют руками, а в США — почти никогда?

На фотографиях из японских школ регулярно встречается непривычная сцена, где дети кладут тряпки на деревянный пол, упираются в них обеими руками и двигаются по коридору почти на четвереньках. Такой...

Как Firefox 1.0 сломал монополию Microsoft и спас интернет

В начале нулевых годов казалось, что война браузеров окончена навсегда. Microsoft уничтожила Netscape Navigator, намертво привязала Internet Explorer к операционной системе Windows и контролировала...

Лунный город к 2032 году: NASA выделило 10 млрд долларов на базу и атомный луноход

В двадцатом веке все полеты людей на Луну были короткими. Астронавты прилетали в небольшом посадочном модуле, проводили на поверхности от нескольких часов до трех суток и улетали обратно. Весь...

Итоги конкурса «Собрались и разобрались»: кто объяснил лучше всех

Мы давно замечаем по статистике IXBT Live, что лучше всего читают посты, где автор берёт понятную вещь и объясняет, как она на самом деле устроена. Такие тексты дочитывают до конца, сохраняют и...

Почему виноград Изабелла оказался вне закона в Европе

Изабеллу трудно перепутать с большинством привычных винных сортов. Темные ягоды покрыты плотной кожицей, мякоть легко отделяется от нее, а запах настолько характерный, что его сравнивают с...