Впрошлом году я помог нескольким клиентам совершить переход от 32‑разрядной среды Windows к смешанной 32‑разрядной и 64‑разрядной среде Windows. После миграции некоторые наблюдательные пользователи заметили нечто необычное в своих новых 64‑разрядных системах Windows, которые запускались на системах с 64‑разрядными процессорами Intel. Если посмотреть на переменную окружения PROCESSOR_ARCHITECTURE в приложении System панели управления Control Panel или 64‑разрядной строки Cmd.exe, увидим, что ее значением является AMD64.

Хотя значение может появляться для того, чтобы отличить поставщика (например, AMD вместо Intel), оно именно такое, каким должно быть. PROCESSOR_ARCHITECTURE связана с архитектурой, а не с реализацией. Поскольку процессоры Intel64 реализуют архитектуру AMD64, они являются членами класса процессоров AMD64.

Я не заостряю ваше внимание на этом необычном факте. С точки зрения службы поддержки, архитектура процессора означает архитектуру Windows, а наличие множественных архитектур Windows в организации означает наличие множественных версий всего — от файлов Windows до пакетов обновлений и драйверов. Осмысление и понимание архитектур процессора может помочь решить некоторые проблемы, которые нередко возникают в смешанной сетевой 32‑разрядной и 64‑разрядной среде. Мы рассмотрим все три текущие архитектуры процессора — x86, IA64 и AMD64. Я буду называть их архитектурами Windows. Затем я покажу еще некоторые вещи, за которыми надо будет понаблюдать во время перехода к смешанной 32‑разрядной и 64‑разрядной среде.

x86

Архитектура x86 Windows осталась единственной самостоятельной 32‑разрядной архитектурой Windows. Как и следовало ожидать, она запускается на всех процессорах, реализующих архитектуру процессоров x86. Однако есть пара важных преду­преждений, о которых, на мой взгляд, нужно помнить.

Первое из них состоит в том, что процессор AMD64 — это расширенный набор команд процессоров архитектуры x86, поэтому архитектура x86 Windows может запускаться на процессорах с архитектурой AMD64. Масса компьютеров, которые за последние лет пять поставлялись на рынок и запускали x86 Windows, на самом деле использовали 64‑разрядные процессоры. Хотя вы не в состоянии модернизировать эти системы для 64‑разрядной Windows, производить на этих процессорах чистую установку 64‑разрядного Windows можно. И хотя нельзя точно определить, что 32‑разрядная система Windows запущена на 64‑разрядном процессоре, вы можете использовать встроенную утилиту командной строки Windows Management Instrumentation Command-line (WMIC) для того, чтобы проверить имя процессора, после чего можно проверить характеристики процессора на сайте производителя. Для проверки имени процессора на локальном компьютере откройте Cmd.exe и запустите команду:

wmic cpu get name

Чтобы проверить имя процессора на удаленном компьютере, названном x51, запустите такую команду:

wmic /node: x51 cpu get name

Второе предупреждение состоит в том, что 64‑разрядная платформа Windows также будет запускать 32‑разрядные приложения Windows в специальном эмуляторе x86 Windows. И хотя сама операционная система Windows является 64‑разрядной, в эмуляторе Windows выглядит так же, как и x86 Windows. В частности, значение переменной окружения PROCESSOR_ARCHITECTURE будет x86. Однако можно узнать и какова реальная среда. Эмулятор x86 также предоставляет переменную окружения, называемую PROCESSOR_ARCHITEW6432, которая указывает на архитектуру самой Windows. Если переменной не существует, то вы работаете полностью на оборудовании и Windows x86.

Вы можете использовать WMIC и для проверки реального значения PROCESSOR_ARCHITECTURE. Например, чтобы проверить настоящее значение среды локального компьютера и удаленного компьютера x51, запустите такие команды:

wmic environment where

«name=’ProCeSSor_arCHiteCture’» get

и

wmic/node: x51 environment where

«name=’ProCeSSor_arCHiteCture’» get

Эти команды здесь написаны с переносом, но их следует вводить каждую одной строкой.

Каждая версия Windows со времени появления Windows NT поддерживала архитектуру x86, но скоро это изменится. Хотя Windows 7 поддерживает архитектуры x86, Windows Server 2008 R2 является только 64‑разрядным.

IA64

Компания AMD была не единственной, кто создал архитектуру 64‑разрядного процессора. Специалисты Intel сконструировали 64‑разрядный процессор и назвали его IA64. Первый современный 64‑разрядный релиз Windows был создан для запуска на процессорах, реализующих архитектуру IA64. Единственными видами процессоров, которые реализуют IA64, являются Itanium и Itanium 2 от Intel. На сегодня только платформы Windows Server поддерживают IA64. Хотя изначально Windows XP поддерживала архитектуру IA64, проблемы с поддержкой унаследованных приложений на системах с IA64 привели к тому, что настольные системы на этой базе были весьма редки. Компания Microsoft прекратила поддерживать XP на IA64 в 2005 году.

AMD64

Когда Intel решила не поддерживать совместимость с процессорами x86 в архитектуре IA64, AMD начала работу над новым дизайном 64‑разрядного процессора, который бы расширял возможности x86 старой версии (так же, как оригинальные процессоры Intel 80386 были совместимы с процессорами 80286). AMD изначально описывала в спецификации такие процессоры, как x86-64, затем они были переименованы в AMD64. 64‑разрядные версии Windows от Microsoft, построенные для запуска на этой архитектуре, также использовали название AMD64. в 2003 году была выпущена XP для AMD64, и каждая последующая версия Windows поддерживала архитектуру AMD64.

VIA Technologies и Intel продают процессоры, которые используют архитектуру AMD64. В маркетинговых целях Intel называет эту технологию Intel 64, скрывая, что ее процессоры реализуют инструкции набора AMD64. Microsoft тоже начала использовать имя x64 для такой архитектуры, чтобы не возникало сомнений относительно архитектуры Windows. Каким бы ни было маркетинговое имя, процессоры Intel 64 используют те же сборки Windows, что и другие процессоры, реализующие архитектуру AMD64. В терминологии Windows и поддерживаемого программного обеспечения Windows вы можете оперировать названиями AMD64, Intel 64, x86-64, x64 и менее известным EM64 T, как грубыми эквивалентами.

Что еще нужно знать

Последняя важная смена платформы, повлиявшая на весь мир ИТ, произошла в 90‑х годах, когда настольные компьютеры перешли от 16‑разрядных Windows и MS-DOS к 32‑разрядным системам Windows. Переход от 32‑разрядных Windows к 64‑разрядным намного проще. Сетевое управление является более централизованным, чем это было в 90‑х, и большая часть операций не зависит от количества разрядов в операционной системе.

Хотя переход от 32‑разрядной Windows к 64‑разрядной не будет таким трудным, как преды­дущая миграция платформы, я дам несколько советов, которые помогут избежать ловушек:

  • Изучайте математику программного обеспечения — 16 не входит в 64. Пользователи не смогут запускать 16‑разрядное программное обеспечение из 64‑разрядной операционной системы Windows, поэтому необходимо убрать любое 16‑разрядное программное обеспечение, зависшее у вас с 90‑х годов. Если вдруг пользователю нужно будет запустить какое-либо 16‑разрядное программное обеспечение (например, устаревший пакет финансовых программ для получения допуска к старым данным), вам придется дать пользователю доступ к 32‑разрядной платформе. Если у вас много пользователей, которым требуется запускать 16‑разрядное программное обеспечение, вы можете запустить его на 32‑разрядном сервере терминалов. Другой вариант — создание 32‑разрядной виртуальной машины (VM). Виртуализация может быть лучшей альтернативой, потому что все VM легко транспортируются.
  • Будьте внимательны: IA64 (Itanium) является особенным. Системы Windows, которые используют архитектуру процессора IA64, могут запускаться только на системах IA64. Если вы переориентируете существующие системы IA64, они естественно делятся на серверные роли. Серверная роль печати может вызывать проблемы, поскольку этим системам нужны драйверы печати для IA64. Существенное ограничение для этих серверов состоит в том, что 64‑разрядных приложений Windows для IA64 доступно меньше, чем для Windows на AMD64. Однако система IA64 будет запускать 32‑разрядные приложения.
  • Поймите, что 32‑разрядное и 64‑разрядное программное обеспечение несовместимы. Версии Windows для x86 не могут запускать 64‑разрядные приложения. Windows для AMD64 и IA64 будут запускать обычное 32‑разрядное программное обеспечение, но только внутри одного и того же процесса. Поскольку 64‑разрядные приложения не могут использовать 32‑разрядный двоичный код, 64‑разрядные версии приложений не могут загружать 32‑разрядные модули или компоненты. Если вы зависите от 32‑разрядных компонентов, вам нужно задействовать 32‑разрядную версию приложения. Это одна из причин того, что 64‑разрядные системы Windows используют 32‑разрядный Internet Explorer (IE) по умолчанию; для него есть огромная установленная база 32‑разрядных элементов управления, которую поставщики не перенесли на 64‑разрядную платформу.
  • Помните, что переход от 32 разрядов к 64 — это именно переход, а не модернизация. Если вы планируете перевести существующие компьютеры с 32‑разрядной Windows на 64‑разрядную, вы можете захватить настройки и файлы инструментами, такими как Windows Easy Transfer, но вы не можете произвести модернизацию. Вам не удастся даже запустить программу установки новой 64‑разрядной версии Windows в 32‑разрядной системе Windows.
  • Проверьте свои драйверы. Вы не можете использовать 32‑разрядные драйверы ядра на 64‑разрядных системах Windows. Подсистема WOW64 доступна только выше ядра операционной системы. Поэтому проверка драйверов перед переходом от 32 разрядов к 64 является ключевой.
  • Будьте готовы помочь своим пользователям проверить их архитектуру Windows. Система Windows идентична изнутри и снаружи для 32‑разрядной и 64‑разрядной вычислительных платформ, поэтому пользователи могут не знать, используют они 32‑разрядную или 64‑разрядную операционную систему. Служба поддержки должна быть готова провести пользователей через процедуру опознания архитектуры Windows, если возникнут вопросы. Статья Microsoft «Как определить, запускает компьютер 32‑разрядную или 64‑разрядную версию операционной системы Windows» (support.microsoft.com/kb/827218) может помочь сотрудникам службы поддержки либо можно адресовать пользователей к данной статье.

О чем следует помнить

Хотя переход от 32‑разрядной компьютерной платформы к 64‑разрядной не будет совсем простым (особенно когда он осложнен тем, что пользователи не понимают терминологии), он вряд ли будет представлять особую трудность. Идентичность интерфейсов пользователя на разных платформах и поддержка существующего 32‑разрядного программного обеспечения делают большую часть изменений вполне понятной. То, что 64‑разрядные версии Windows используют 32‑разрядный браузер IE по умолчанию, также помогает сделать изменения незаметными. Двойственность архитектур IA64 и AMD64 не представляет серьезной проблемы. IA64 обычно используется в мощных системах, где недостаток в поддержке специ­фического оборудования и программного обеспечения может рассматриваться как одна из особенностей, а не как непреодолимое препятствие.

Самые важные замечания перед переходом к 64‑разрядным вычислениям сводятся к следующим. Перед переводом компьютера на 64‑разрядную Windows нужно убедиться, что есть 64‑разрядные драйверы и удалено (либо сделаны все соответствующие настройки) все 16‑разрядное программное обеспечение. Чтобы произвести переход, нужно сделать новую установку: вы не можете модернизировать старую систему. Наконец, убедитесь, что служба технической поддержки в состоянии помочь пользователям определить, используют ли они 32‑разрядные или 64‑разрядные системы, если возникнут проблемы. Хотя это переход не банален, он меркнет в сравнении с той работой, которая была проведена для очистки корпоративных компьютеров от Windows 3.11.