Почему флешка на 64 ГБ показывает 59,6 ГБ: два гигабайта под одним названием
Новая флешка на 64 ГБ, ноутбук, «Этот компьютер», а там 59,6 ГБ. На неё ещё ничего не записали, а четырёх с половиной гигабайтов уже нет. Первая мысль понятна: подсунули подделку. Вторая: Windows опять что-то спрятала. Обе мимо. Ровно ту же цифру покажет любая исправная флешка такого объёма, а терабайтный SSD в той же Windows похудеет до 931 ГБ.
Никто при этом не врёт. Производитель и 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. Байтов ровно столько, сколько обещали, их просто пересчитали другой линейкой.
Дискета, которая не совпадала ни с одним мегабайтом
Насколько всё запуталось, лучше всего видно по трёхдюймовой дискете. На шторке писали «1.44 MB», а после форматирования на неё помещалось 1 474 560 байт. Это не 1,44 десятичного мегабайта, их было бы 1 440 000. И не 1,44 двоичного, тех было бы около 1 509 949. Ёмкость дискеты равна 1440 двоичным килобайтам, и уже это число поделили на тысячу. В одном «мегабайте» уместились сразу и 1024, и 1000. Почти никто этого не замечал: дискету куда чаще ругали за то, что она внезапно переставала читаться.
У жёстких дисков своя логика. Их ёмкость складывается из пластин, дорожек и секторов, и ровной степенью двойки ей быть совсем не обязательно. Первый серийный жёсткий диск IBM 350 из системы RAMAC 1956 года хранил 5 миллионов шестибитных символов на 50 пластинах диаметром 24 дюйма, и описывали его круглым десятичным числом. На десятичном счёте производители дисков в итоге и остались. Заодно он рисует на коробке цифру покрупнее, и вряд ли отдел маркетинга был против.
Как гигабайт дошёл до суда
Пока диски измерялись сотнями мегабайт, недостача почти не бросалась в глаза. Когда в магазинах появились диски на 80 и 120 ГБ, «пропадать» стали уже целые гигабайты, и в середине 2000-х за дело взялись калифорнийские адвокаты. Иск против Western Digital строился на простой арифметике: на коробке 80 ГБ, а пользователь видит 74,4.
Компания назвала претензии необоснованными, но в 2006 году решила не тянуть дорогой процесс и согласилась на мировую. Итог вышел почти анекдотичным. Каждый, кто купил диск WD начиная с 2001 года, мог бесплатно получить программу для резервного копирования ценой около 30 долларов. Деньгами покупателям ничего не возвращали, а вот адвокатам истцов полагалось до полумиллиона долларов. На коробках появилось пояснение о доступной ёмкости.
Похожий иск подали и против Seagate: Сара Чо и Майкл Лазар утверждали, что диски вмещают примерно на 7 % меньше обещанного. В 2007 году Seagate тоже договорилась миром, и здесь покупателям уже предложили выбор между возвратом 5 % от цены диска и той же программой для бэкапа. Гонорар адвокатов составил 1,8 миллиона долларов. Обе истории закончились мировыми соглашениями, так что вопрос, чей гигабайт правильный, ни один суд по существу так и не решил.
Гибибайт, который никто не произносит
Выход из путаницы придумали ещё за несколько лет до исков. В декабре 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 означают разные числа.
Куда ещё девается место
Даже честные 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 ТБ. А какой «недовес» больше всего удивил вас: флешка, диск или телефон, на котором после системы почти ничего не осталось?
Источник: commons.wikimedia.org





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