В блогах и форумах довольно много говорится о многоядерных процессорах, как очевидном этапе развития компьютерных систем. Это действительно так. Но помимо многоядерных машин, другим важным направлением развития являются 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-битные технологии, смогут чуть раньше оценить эти преимущества.
0