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

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

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

Под [64\-битными](https://pvs-studio.ru/ru/blog/terms/0001/) технологиями понимают как аппаратные, так и программные средства\.

К аппаратным средствам относятся 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 [выпустила](https://pvs-studio.ru/ru/blog/posts/0028/) Windows Server 2008 R2 только в 64\-битном варианте\.

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

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

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

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

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

Как говорилось выше, программисты не особо спешат делать 64\-битные версии своих приложений\. Хотя все инструменты для этого уже есть \- есть компиляторы 64\-битных приложений для большинства языков программирования \(как от [Intel](https://software.intel.com/content/www/us/en/develop/tools/compilers.html), так и от [Microsoft](https://visualstudio.microsoft.com/)\), есть сторонние инструменты \(как, например, анализатор кода [PVS\-Studio](https://pvs-studio.ru/ru/pvs-studio/), предназначенный для выявления ошибок, характерных для 64\-битных и параллельных приложений\)\.

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

## Перспективы

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

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

* Статья "[20 ловушек переноса Си\+\+ \- кода на 64\-битную платформу](https://pvs-studio.ru/ru/blog/posts/cpp/a0004/)"\.
* [Ресурсы для разработчиков](https://pvs-studio.ru/ru/blog/posts/) 64\-битных и параллельных программ на русском языке\.
* Инструмент [PVS\-Studio](https://pvs-studio.ru/ru/pvs-studio/) \- поиск проблем в 64\-битных и параллельных программах\.