32 бита всё

Тема миграции на 64 разряда, бывшая обжигающе горячей десять, и даже пять лет назад, к настоящему моменту сильно поостыла. По мере того, как нарастает пользовательская масса и масса решений, вопрос целесообразности всё реже ставится под сомнение. Тем удивительней наблюдать, как совершенно естественное (после стольких-то лет прогресса!) решение разработчиков крупного софтверного проекта отказаться от выпуска 32-битной версии, провоцирует ожесточённую дискуссию. Я говорю, в частности, о ведущемся сейчас в сообществе Ubuntu Linux обсуждении плана отказа от «32 бит». Но кто и почему протестует против 64-разрядности в 2016-м году?!

Чтобы представить, насколько далеко мы зашли по пути к шестидесяти четырём битам, стоит подвести краткие итоги последнего десятилетия. Картина получится примерно такой:

— микропроцессоры стали 64-битными практически везде: на персоналках это x86_64 (она же AMD64, 64-разрядное продолжение архитектуры x86), на мобильных и встраиваемых устройствах это 64-битные ARM (v8-A и позже) и MIPS 64. Устранение функциональной разницы между архитектурами подпитывает мечту о конвергенции.

— все популярные операционные системы (MS Windows, OS X, Linux, Android, iOS) как минимум поддерживают 64 разряда и рекомендуют их как предпочтительные. Linux, где публика не привыкла к командному тону, долго держалась в стороне от общей свалки, но и здесь за последний год лёд тронулся: кто-то уже отказался от 32-битной версии (как openSUSE), кто-то планирует этот шаг в ближайшем будущем (Ubuntu).

— разработчики приложений стали жаловаться на бессмысленность выпуска 32-битных версий и даже отказываться от них. Как это сделала, например, Google — обрезавшая 32-битную ветку Linux-версии браузера Chrome (показательный, в смысле популярности, пример). Теперь на всех трёх основных десктопных платформах Chrome почти эксклюзивно 64-битный: лишь для MS Windows ещё сохранена 32-битная версия, но и ей рекомендовано предпочесть 64-разрядную.

Архитектура AMD64, которая сегодня стала де-факто синоним 64 бит на компьютерах, родилась как «быстрый и дешёвый»  ответ Intel: AMD просто экстраполировала 32-битную систему команд x86 на 64 разряда. Выпущенный в 2003-м Athlon 64 — первый 64-разрядный микропроцессор, ориентированный на простого пользователя — стал хитом.
Архитектура AMD64, которая сегодня стала де-факто синоним 64 бит на компьютерах, родилась как «быстрый и дешёвый» ответ Intel: AMD просто экстраполировала 32-битную систему команд x86 на 64 разряда. Выпущенный в 2003-м Athlon 64 — первый 64-разрядный микропроцессор, ориентированный на простого пользователя — стал хитом.

Короче говоря, сегодня если простого пользователя не пересаживают на 64 бита принудительно, то ему по крайней мере настоятельно рекомендуют сделать это. И всё-таки «консерваторы» не переводятся. Набор технических аргументов и контраргументов почти не изменился с середины нулевых. 64 бита это хорошо, потому что: программам доступен больший объём памяти, они манипулируют числами вдвое большей длины, а кроме того количество регистров микропроцессора тоже увеличилось, грубо, вдвое. Вот почему даже приложения, которые не оперируют сложной математикой и не имеют дел с большими объёмами данных, всё-таки могут выиграть от перехода на 64 разряда.

Регулярно проводимые тесты это, в общем, подтверждают: на большинстве приложений прирост производительности есть, хоть и не радикальный, примерно от 10% до одной трети. Главный же недостаток 64 бит: система и прикладной софт отбирают заметно больше оперативной памяти (от трети и более). В этом виноваты массивы данных — которые ведь увеличились в объёме вдвое.

Вот почему даже в 2016-м году, даже с чисто технической точки зрения, не принимая во внимание прочие соображения, мигрировать на 64 разряда «без оглядки» не стоит. Да, на полноразмерных современных компьютерах можно и нужно ставить 64-битную ОС и софт. Но на ноутбуках с небольшим объёмом памяти (до 2 Гбайт ориентировочно) разумно остаться в лагере 32 бит! Отсюда и протесты против планов превращения, например, популярных Linux-дистрибутивов в исключительно 64-битные продукты: пользователей, которым 32 бита необходимы, мало, но они всё ещё есть!

Типичная картина: на большинстве приложений выигрыш от 64 бит есть, но незначительный. Резко разница проявляется лишь на некоторых классах задач (обработка больших объёмов данных, шифрование и т.п.).
Типичная картина: на большинстве приложений выигрыш от 64 бит есть, но незначительный. Резко разница проявляется лишь на некоторых классах задач (обработка больших объёмов данных, шифрование и т.п.).

Однако помимо чисто технических соображений имеются и существенные качественные. И они тоже свои с той и другой стороны. Чем мотивируют спешку разработчики дистрибутивов и прикладного софта? Тем, что на сборку, отладку, проверку 32-разрядных версий тратятся время, силы и аппаратные ресурсы. То есть это вовсе не бесплатно. При этом пользователей, которым реально необходимы 32 бита (т.е. таких, чьё железо не поддерживает 64-битный режим), очень немного. Сегодня купить компьютер с 32-битным микропроцессором вообще практически невозможно. И предполагается, что подавляющее большинство среди тех, кто всё ещё пользуется 32-разрядным софтом, делают это больше по привычке, нежели по необходимости.

Эти пользователи находятся в плену заблуждения, считая, что 64 бита не так надёжны как 32. Когда-то это действительно было так: драйверы барахлили, не было Flash и т.п. Однако сегодня ситуация обратная и уже 32-битный софт стал менее надёжным: тот же 32-битный Chrome, например, официально «падает» вдвое чаще 64-битной версии. Поэтому нужно подтолкнуть пользователей, помочь им перешагнуть психологический барьер.

64-битная ОС: такая же, как 32-битная, только 64-битная.
64-битная ОС: такая же, как 32-битная, только 64-битная.

В свою очередь те, кто защищает 32 бита, предлагают взглянуть на проблему вот под каким углом. Миграция на 64 разряда продолжается уже десять лет и сегодня большинство или хотя бы каждый второй пользователь работают с 64-разрядным софтом. Но совершило ли это прорыв в удобстве, производительности, да хоть в чём-нибудь? Нет! И получается, что программистам просто лень заниматься «выходящей из моды» архитектурой, хоть объективных причин отказываться от неё до сих пор не появилось. Взирая на результаты, нам следует отказаться не от 32 бит, а от 64 — раз они ничего существенно не изменили!

Увы, в аргументации «консерваторов» есть изъян. И дело не в том даже, что 32-битная архитектура более не развивается, тогда как 64-битная свой потенциал ещё не выбрала. И не в том, что исполняя 32-битный софт на 64-битном процессоре, мы используем его потенциал не полностью. Дело прежде всего в том, что, утверждая, что 64 бита ничего не изменили, «консерваторы» лукавят. Изменения есть, но они глубинные. Посмотрите, какие страсти кипят вокруг энергоэкономичности браузеров: такого не было никогда раньше! А 64 бита помогают тратить меньше энергии. Вспомните, что журналируемые файловые системы, ставшие сегодня нормой и даже необходимым минимумом, тоже выигрывают от 64-разрядности. Вспомните про тотальное шифрование с использованием стойкого крипто, про обработку медиайфайлов высокого разрешения, про входящие в моду шлемы виртуальной реальности…

Учитывая всё это, 64 бита можно представить как опору, вовремя подведённую под индустрию информационных технологий — опору, без которой развиваться было бы как минимум сложней. И получается, что хоть спорить можно без конца (и будут! Даже у 8 бит до сих пор есть свои достоинства, есть спрос), разумней в споре более не участвовать. 32 бита — всё.

P.S. В статье использованы иллюстрации Mibby23, Fritzchens Fritz.

Что будем искать? Например,ChatGPT

Мы в социальных сетях