64-битные технологии - еще одно направление в современном программном обеспечении

Андрей Карпов
Статей: 375



В блогах и форумах довольно много говорится о многоядерных процессорах, как очевидном этапе развития компьютерных систем. Это действительно так. Но помимо многоядерных машин, другим важным направлением развития являются 64-битные технологии. Что это такое, в чем преимущества, какие есть проблемы - взгляд пользователя и взгляд программиста.

Что такое 64-битные технологии (аппаратная и программная часть)?

Под 64-битными технологиями понимают как аппаратные, так и программные средства.

К аппаратным средствам относятся 64-битные процессоры (Intel 64, Intel Itanium). "Бытовые" процессоры делятся на x86-совместимые (Intel 64, AMD64) и несовместимые с ними процессоры Intel Itanium. Естественно, что для 64-битных процессоров должны быть соответствующие материнские платы, но, как правило, их в отдельный класс не выделяют.

К программным средствам относятся 64-битные операционные системы, 64-битные драйверы, а также приложения - как 64-битные, так и просто работающие на 64-битных операционных системах. Ну и не будем забывать об инструментах для разработчиков 64-битных приложений (компиляторы, отладчики, библиотеки).

Это уже есть или еще надо ждать?

Что касается аппаратной составляющей 64-битных технологий, то она уже давно готова, внедрена и более того, наверняка находится у вас на рабочем столе.

С программной составляющей дело обстоит сложнее. 64-битные операционные системы как в Unix-мире, так и в Windows-мире давно уже существуют. Но вот их распространенность пока не велика. Причиной этого является небольшое количество программ, которые не имеют проблем в 64-битном окружении. Дошло даже до того, что Microsoft в Windows 7 встроила виртуальную машину в операционную систему, чтобы решить проблемы старых программ.

Причина недостаточного количества 64-битных программ кроется в замкнутом круге, который, надеемся, все-таки прорвется со временем. Разработчики программ не хотят вкладываться в 64-битный софт, поскольку у малого количества пользователей 64-битная операционная система, а пользователи не устанавливают 64-битные операционные системы, так как мало 64-битных программ. Разорвать этот круг может кто-то третий. Так, например, Microsoft выпустила Windows Server 2008 R2 только в 64-битном варианте.

Так что с одной стороны, вроде бы все готово к массовому переходу на 64 бита, но с другой - этот переход только начинается.

Точка зрения пользователей

Для пользователя 64-битные технологии - это возможность получить для приложений больше двух гигабайт оперативной памяти. Где это нужно? В "тяжелых" задачах (видео, звук, графика, архивация), в играх и даже в браузерах (когда открыто несколько десятков вкладок). Вроде бы привлекательно, но пользователи пока не спешат переходить на 64 бита, так как есть проблемы взаимодействия 64-битного и 32-битного программного обеспечения. Это проблемы решаются, но видимо не так быстро как хотелось бы пользователям.

Но 64-битные технологии актуальны не только для "тяжелых" задач. Даже если программа использует немного оперативной памяти (около гигабайта), то при распространении многоядерных процессоров, 64-битные технологии окажутся востребованными. Ведь в 32-битной операционной системе всего доступно не более 4 Гбайт (2^32), хотя на практике даже меньше. А если на машине с четырьмя ядрами запущено несколько приложений? Да еще и каждому из них нужно по гигабайту оперативной памяти... Так что тут уже без 64-битных систем никуда.

Точка зрения программистов

Как говорилось выше, программисты не особо спешат делать 64-битные версии своих приложений. Хотя все инструменты для этого уже есть - есть компиляторы 64-битных приложений для большинства языков программирования (как от Intel, так и от Microsoft), есть сторонние инструменты (как, например, анализатор кода PVS-Studio, предназначенный для выявления ошибок, характерных для 64-битных и параллельных приложений).

Основная причина, почему не спешат программисты, это необходимость поддерживать две версии программы - 32-битную и 64-битную. В теории достаточно просто скомпилировать 32-битное приложение для 64-битной системы, однако на практике возникают многочисленные нюансы. Из-за чего и приходится поддерживать две версии. И пока можно обойтись только одной (как например, для 32-битных игр), то стараются обходиться одной версией приложения.

Перспективы

Очевидно, что 64-битный мир придет к нам. Насколько это будет быстро - это зависит и от программистов, и от пользователей. Но уже ясно, что те компании-разработчики программ, которые быстрее выпустят 64-битные версии своих приложений, смогут вырваться вперед в конкурентной борьбе. А пользователи, которые быстрее перейдут на 64-битные технологии, смогут чуть раньше оценить эти преимущества.

Что есть в сети 64-битного?



Найдите ошибки в своем C, C++, C# и Java коде

Предлагаем попробовать проверить код вашего проекта с помощью анализатора кода PVS-Studio. Одна найденная в нём ошибка скажет вам о пользе методологии статического анализа кода больше, чем десяток статей.

goto PVS-Studio;

Андрей Карпов
Статей: 375


Найденные ошибки

Проверено проектов
361
Собрано ошибок
13 417

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;