Windows и 64 бита

30 июнь, 2005 - 23:00Игорь Дериев

Как бы ни гордились производители микропроцессоров своими изделиями, компьютер – все же комплекс программно-аппаратный. Поэтому по-настоящему потенциал таких чипов, как Athlon 64, может быть раскрыт только при наличии 64-битовой операционной системы и оптимизированных приложений. Наконец мы получили возможность убедиться в этом воочию – с выходом Windows XP Professional x64 Edition формирование десктопной 64-битовой платформы завершено, и, возможно, наступает новая эра массового компьютинга.

На самом деле говорить сегодня о 64-битовых вычислениях как о некоей новинке не вполне корректно, поскольку они благополучно существуют с 1992 г., когда появился чип Alpha. Однако особенность нынешней ситуации состоит в том, что сейчас на 64 бита переходит наиболее массовая платформа в виде процессоров, продолжающих семейство x86, и популярнейшей операционной системы Windows XP. Соответственно, на обывательском уровне плодятся многочисленные слухи и легенды, поэтому мы решили начать данный материал с небольшого экскурса в теорию, дабы помочь читателям адекватно оценить дивиденды от смены технологий и расставить точки над «i».

64 ≠ 2 × 32

Windows и 64 бита

Прежде всего нужно понимать, что переход на новую платформу не должен превращаться в самоцель – не случайно ведь Windows XP Professional x64 Edition даже не будет распространяться через розничные каналы. Оптимальный вариант, как его видит сама Microsoft, – получить ее в свое распоряжение уже предустановленной, что позволит избежать отдельных проблем, о которых мы поговорим ниже. Тем более что для многих пользователей эффект от перехода с 32 бит на 64 может оказаться практически незаметным.

Для начала вспомним, что в истории IТ уже случался аналогичный переломный момент – миграция массовых вычислений с 16 бит на 32, и в тот раз преимущества повышения разрядности были гораздо более очевидны. Скажем, ALU полноценного 32-битового процессора мог напрямую выполнять основные арифметические операции с так называемыми длинными целыми числами (которые стали целиком помещаться в один 32-битовый регистр), что прежде реализовывалось лишь программными процедурами. Во многих случаях прирост производительности был очень значительным. Список подобных примеров можно продолжать, но стоит отметить, что тогда же приводились и отдельные концептуальные (по большей части, конечно, «притянутые за уши») фрагменты кода, выполнение которых даже замедлялось.

Теперь оценим нынешнюю ситуацию. 64-битовые процессоры, естественно, позволяют эффективно оперировать значительно бо2льшими числами (хотя бы и теми же целыми), однако основная масса программного обеспечения – офисного, графического и пр. – совершенно в этом не нуждается. Такие возможности востребованы в более специфических областях вроде шифрования и медиакодирования, но и здесь нужно учитывать, что подобные задачи уже научились решать с помощью MMX, SSE и т. п. Тем не менее вычисления с большими числами (или с высокой точностью) – безусловно, конек 64-битовой архитектуры, ведь даже «обычное» число с плавающей запятой двойной точности умещается как раз в 64 бита. И все же к результатам любых сравнительных тестирований нужно относиться крайне осторожно, поскольку если 64-битовые приложения гарантированно компилировались под конкретный процессор, то 32-битовые, скорее всего, нет – а ведь, скажем, архитектура AMD64 предоставляет вдвое больше внутренних регистров, которые позволяют дополнительно оптимизировать код.

Поэтому пока наиболее явные преимущества 64-битовой архитектуры заключаются в возможности использования (без дополнительных ухищрений) огромных объемов памяти, что, впрочем, на рабочих станциях также нужно лишь в отдельных случаях. Кое-какие выводы можно сделать даже на основе голых спецификаций, за которыми лучше всего обратиться к первоисточникам, конкретно в случае Windows XP Professional x64 Edition – к статье support.microsoft.com/kb/889654. Полная интерпретация всех приведенных параметров выходит за рамки настоящего материала, выделим лишь несколько наиболее любопытных моментов:

  • по-видимому, типовые рабочие станции с десятками гигабайтов оперативной памяти скоро перестанут быть диковинкой так же, как и конфигурации без файла подкачки – экстримом;
  • на 64-битовой платформе даже 32-битовые приложения смогут получить в свое распоряжение полновесные 4 GB памяти – против прежних 3 (или даже 2) GB;
  • на системный кэш снято ограничение в 1 GB, благодаря чему повысится эффективность работы с большими массивами данных.

Попробуем выделить несколько областей, в которых 64-битовая платформа реально востребована уже сегодня. Во-первых, сюда, несомненно, относятся серьезные научные расчеты, где могут быть эффективно задействованы все архитектурные особенности новых процессоров. Во-вторых, программисты получат возможность запускать на своих компьютерах несколько виртуальных машин или тестировать программы на локальных репликах корпоративных баз данных. В-третьих, выигрыш также наверняка будет заметен в инженерных системах (CAD/CAM), профессиональных медиапакетах и прочих приложениях, ориентированных на обработку больших массивов данных и/или на интенсивные вычисления.

Еще одна Windows XP

Windows и 64 бита
Похоже, что новая ОС построена на серверном ядре

Исходя из всего вышеизложенного несложно понять и основное назначение Windows XP Professional x64 Edition – она призвана обеспечить доступность новой платформы, в значительной степени подготовить почву для будущих более совершенных приложений. Соответственно, ни о каком функциональном развитии речь не идет – операционная система выглядит и работает в целом аналогично «обычной» Windows XP, с той лишь разницей, что ее ядро, по-видимому, позаимствовано из Windows Server 2003 – в пользу этого говорит, скажем, информация, предоставляемая msinfo32. Естественно, в нее интегрирован последний сервисный пакет с уже привычными Windows Firewall, Security Center, технологией DEP (которая, кстати, заведомо поддерживается 64-битовыми процессорами) и пр.

Принципиальное отличие новой платформы от прочих 64-битовых (к примеру, на базе Itanium) состоит в аппаратной совместимости с прежними массовыми 32-битовыми процессорами и соответствующим кодом, который будет выполняться без потери производительности. По словам Microsoft, более 10 тыс. существующих приложений вполне совместимы с Windows XP Professional x64 Edition. На деле, однако, возникают определенные нюансы, и для их понимания нужно немного разобраться с архитектурой ОС.

Прежде всего, Windows XP Professional x64 Edition – полностью 64-битовая система, никаких компромиссов в духе Windows 9х. При этом 16-битовые приложения не поддерживаются вовсе, а 32-битовые выполняются в рамках виртуальной среды WOW64 (Windows-on-Windows). Чтобы совсем изолировать «устаревший» код, ОС не только выделяет ему отдельное адресное пространство, но также поддерживает для него дополнительную структуру системных каталогов – в частности, Program Files (x86) (будет доступен как обычный Program Files) и WindowsSysWOW64 (для имитации WindowsSystem32), а также собственный улей реестра Software. Большинство программ (исключения все же встречаются) попросту не заметят подобных манипуляций и будут преспокойно работать, но, как ни парадоксально, в этом-то и может заключаться подвох. Скажем, Microsoft Antispyware успешно инсталлируется и функционирует в 64-битовой ОС, но обнаружить сможет только 32-битовые шпионские модули (в силу того, что все проверки будут осуществляться лишь с упомянутыми виртуальными структурами).

Одним словом, основные проблемы будут возникать именно там, где потребуется «подружить» 32- и 64-битовый коды. Так, Windows XP Professional x64 Edition категорически не приемлет 32-битовых драйверов – и аппаратных, и программных, обеспечивающих функционирование антивирусов, персональных брандмауэров, дефрагментаторов и других сервисных утилит. Кстати, для обеспечения полной совместимости подобных приложений разработчикам еще долго придется поддерживать и 32-, и 64-битовый код (даже в рамках одной лишь Windows XP Professional x64 Edition). Все это значительно усложняет миграцию на новую операционную систему в настоящий момент – драйверы имеются только для наиболее популярных устройств, с ней совместимы очень немногие антивирусы (нам известны только Avast! 4.5+, UNA 1.83 и корпоративный Symantec AntiVirus 10.0) и т. д. Естественно, со временем полноценного 64-битового ПО появится больше, но станут ли соответствующие обновления распространяться бесплатно – вопрос. При этом на 64 бита будут постепенно мигрировать даже те приложения, которые не получат от этого никакой выгоды (вроде офисных пакетов), причем причина совершенно очевидна – обеспечение более полной их совместимости с ОС и друг с другом.

Windows и 64 бита
Обратите внимание на два браузера и специальную маркировку 32-битовых процессов
Windows и 64 бита
64-битовые процессоры обеспечивают поддержку DEP, которая по умолчанию включена в Windows XP Professional x64 Edition

Возникают нюансы и на пользовательском уровне. Скажем, прежние приложения не смогут интегрироваться с Windows Explorer (даже расширить его контекстное меню), поскольку он 64-битовый. По этой же причине в Windows XP Professional x64 Edition сосуществуют два Internet Explorer – 32- и 64-битовый. Дело в том, что с последним не будут работать не только многие подключаемые модули, но и (что особенно принципиально) ActiveX-элементы. К примеру, при попытке обращения к сайту Windows Update 64-битовая версия браузера запустит 32-битовую. Кстати, внешне их различить невозможно – совпадает все, вплоть до номеров версий. Разобраться поможет разве что Task Manager, в котором все 32-битовые процессы получают соответствующую «добавку» к названию (*32).

Резюме

Конечно, предложенный вашему вниманию материал в основном состоит из каких-то сомнений, замечаний, оговорок и описаний различных нюансов. Однако все это правильней отнести на счет не собственно Windows XP Professional x64 Edition, а текущего состояния индустрии ПО, которая, очевидно, находится на распутье – ведь известно, что любая платформа полностью раскрывает свои возможности лишь по мере накопления критической массы нативных приложений. И хотя многие специалисты довольно скептически высказываются относительно перспектив 64-битовых вычислений на десктопах, технический прогресс не предусматривает обратного хода – раз уж 64-битовая платформа вышла в mainstream, то ближайшее будущее, несомненно, за ней.