Windows XP x64: обещания и реальность. Windows XP x64: обещания и реальность Программы: возможные проблемы

Впрошлом году я помог нескольким клиентам совершить переход от 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 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

wmic/node: x51 environment where

«name=’ProCeSSor_arCHiteCture’» get

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

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

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

Когда 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.

Еще пару лет назад на большинстве домашних компьютеров работала 32-битная версия Windows, а 64-битный вариант использовали исключительно профессионалы (например, для ресурсоемких программ видеомонтажа). При этом процессоры с 64-разрядной архитектурой выпускаются уже с 2003 года, а двумя годами позже на рынок вышла Windows XP в 64-битном варианте.Однако на большинстве новых компьютеров 64-битные версии Windows начали устанавливать только после появления Windows 7. Какие же преимущества дает 64-битная архитектура? Действительно ли она работает быстрее? С какими проблемами столкнутся пользователи? Об этом читайте далее.

Преимущества 64-разрядной системы

Разрядность может быть 32 или 64 бита, но на экране обе версии Windows 7 выглядят одинаково. Возможности систем также идентичны: в комплекте те же дополнительные программы, например Windows Media Player или Paint. Однако «под капотом» все же есть существенные различия.

  • Увеличенная рабочая скорость. С 64-битной версией Windows компьютер может обрабатывать за единицу времени в два раза больше данных, чем с 32-битной. При этом он использует расширенные возможности 64-разрядных процессоров, которые за один такт способны обрабатывать 64 бита данных (8 байт). Поэтому программы, оптимизированные для 64-битных ОС, умеют работать быстрее, чем их аналоги для процессоров, обрабатывающих всего 32 бита (4 байта) за один такт.
  • Больше оперативной памяти. 32-битные версии Windows могут использовать максимум 4 Гб памяти, причем не вся она доступна программам. Например, 1 Гб занимает сама операционная система, к тому же до 1 Гб (в зависимости от ПК) резервируется для видеопамяти. Так что для самих программ остается не более 2 Гб. Если они «прожорливы», памяти может не хватить.

Для 64-битных версий Windows подобного ограничения нет. Максимальная рабочая память в Windows 7 Home Premium выросла до 16 Гб; версии Professional, Ultimate и Enterprise могут работать даже со 192 Гб. Благодаря большей доступной памяти Windows реже приходится выгружать разделы программ на сравнительно медленный жесткий диск (в файл подкачки ), поэтому и компьютер работает быстрее.

Требования к компьютеру

  • Процессор. Важнейшим необходимым условием для работы 64-битной операционной системы является процессор с 64-битной архитектурой. Изготовитель процессоров AMD называет эту технологию AMD64, а его конкурент Intel - EM64T.
  • Процессоры с 64-битной архитектурой уже стали скорее правилом, чем исключением. Примерно с 2006 года большинство новых компьютеров и ноутбуков оснащается именно ими, хотя многие все еще работают под 32-битной Windows. Узнать, какой именно процессор установлен на вашем ПК, можно с помощью программы CPU-Z (см. рис. внизу).
  • Оперативная память. 64-битная Windows имеет смысл лишь в том случае, если у компьютера не меньше 4 Гб оперативной памяти.
  • В остальном 64-битные версии ОС не предъявляют особых требований к аппаратной части (например, к HDD или видеокарте) по сравнению с 32-битными.

Если в 64-битной Windows работают 32-битные программы, то в Диспетчере задач они помечаются соответствующим образом (*32). -Диспетчер задач можно запустить, нажав комбинацию клавиш Ctrl+Shift+Esc<

Как узнать версию операционной системы?

Это очень просто: щелкните по кнопке "Пуск", затем правой кнопкой мыши - по "Компьютер" и затем выберите "Свойства" . В открывшемся окне напротив "Тип системы" увидите версию системы.

Недостатки 64-разрядной системы

  • Нужны новые драйверы . Все устройства требуют для 64-битной Windows 7 соответствующих драйверов (аналоги для 32-битной ОС работать не будут). Для современных устройств это обычно не проблема, но для устаревших моделей многие производители не разрабатывают 64-битные версии драйверов. Поэтому прежде чем переходить на 64-битную Windows, зайдите на веб-страницу производителя устройства и убедитесь, что для вашего оборудования доступна 64-битная версия драйвера.
  • Требуется больше памяти. Многие структуры данных в 64-битных программах имеют размер 8 байт (64 бит). Поэтому программы занимают на 10-20% больше места на жестких дисках, чем соответствующие 32-битные версии с 4-байтными структурами. Потребность в оперативной памяти для 64-битного ПО также повышается - примерно на 15 про-центов.

Работает ли Windows 7 на нетбуках?

Первые процессоры для нетбуков, например Intel Atom N270, не были 64-битными. Только с появлением семейства Pineview (N450 и выше) процессоры Atom стали поддерживать 64-разрядные операции и, соответственно, 64-битные ОС. Впрочем, большинство нетбуков оснащалось всего 1 Гб оперативной памяти, поэтому даже при апгрейде до 2 Гб они едва-едва соответствовали минимальным требованиям 64-битной Windows 7. То есть обычные нетбуки не выполняют одно из главных условий эффективного использования 64-разрядной ОС, каковым является наличие не менее 4 Гб оперативной памяти.

Лучшая пятерка программ для 64-битной ОС

Эти программы прекрасно работают в 64-битной операционной системе и пользуются повышенным спросом у пользователей.

  • 7-ZIP Программа-архиватор, предназначенная для сжатия файлов. Может быть полезна, например, когда требуется скопировать много больших файлов на USB-драйв.
  • Nitro PDF Reader Настоящий «швейцарский нож» для работы с PDF-файлами. Эта простая программа позволяет легко создавать, просматривать и редактировать документы данного формата.
  • nHancer Утилита обеспечивает доступ к настройкам графической платы NVIDIA. Работает со всеми распространенными моделями видеокарт и даже с SLI-конфигурациями. Можно выбирать профили настроек для разных игр.
  • ProgDVB Если в вашем ПК установлен цифровой ТВ-тюнер, с помощью ProgDVB удастся просматривать телевизионные передачи и записывать их на жесткий диск. Программа работает с TВ-тюнерами разных производителей. Кроме бесплатного варианта, есть расширенная платная версия.
  • Blender Программа для работы с трехмерными объектами. В ее состав входят средства для моделирования, анимации, рендеринга, постобработки видео, а также создания интерактивных игр.

Работают ли 32-битные программы под 64-битной Windows?

Подсистема преобразования под названием Windows-on-Windows 64-bit (WoW64) обеспечивает совместную работу 32-битного ПО в 64-битной операционной системе (см. рис. вверху). С ее помощью большинство 32-битных программ работает безупречно но, к сожалению, есть исключения. Трудности обычно возникают с программами следующих категорий.

  • Резервное копирование. Программы для создания бэкапов напрямую работают с системными папками Windows. Но WoW64 иногда перенаправляет доступ 32-битного ПО в другие папки. Если программа этого не учитывает, резервное копирование может оказаться неполным или даже ошибочным.
  • Оптимизация Windows. Старые, рассчитанные на 32-битную Windows программы оптимизации нельзя запускать на 64-битной Windows 7. Подчас они способны больше навредить, чем помочь.
  • Антивирусы. Если требуется надежная защита для ПК, используйте в 64-битной Windows только 64-битные версии антивирусов и аналогичных программ. Устаревшее 32-битное защитное ПО неспособно контролировать все системные папки, а значит, может пропустить вредителей, разработанных специально для атак на 64-битную Windows. Современные антивирусные пакеты известных производителей, например «Лаборатории Касперского», Norton или Symantec, подходят как для 32-, так и для 64-битной Windows.

Совет. Если программа под 64-битную Windows работает со сбоями, избавиться от них нередко помогает установка новейшей версии и всех обновлений с веб-сайта изготовителя. К тому же в «Центре совместимости Windows 7» можно проверить, совместимы ли ваши устройства и программы с 64-битной системой.

В 64-битной Windows программы работают быстрее

Некоторые 64-битные программы были всего лишь преобразованы («портированы») для применения в 64-битной Windows, но по сути остались 32-битными. Например, хотя они и имеют 64-битные структуры данных, однако хранят в них по-прежнему 32 бита данных. Подобные программы, как правило, не в состоянии работать быстрее.

64-битные программы реализуют свои преимущества, лишь если с самого начала разрабатывались и оптимизировались для применения в 64-битных Windows. В тесте ComputerBild такие программы в среднем работали на 13% быстрее 32-битных «собратьев».

Старое 32-битное ПО в 64-битной Windows работает даже медленнее, чем в 32-битной системе; причина - преобразование подсистемой WoW64.

Список 64-битных программ

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

Программа Версия Категория Интернет-адрес Цена
7-Zip 9.20 Архиватор www.7-zip.org.ua/ru бесплатно
AVG Anti-Virus Free 2011 Антивирусная программа www.freeavg.com бесплатно
Blender 2.59 Редактирование 3D-моделей www.blender.org бесплатно
CCleaner 3.10 Очистка системы www.piriform.com бесплатно
Defraggler 2.06 Дефрагментатор www.piriform.com бесплатно
GIMP 2.7.3 Обработка изображений www.gimp.org бесплатно
Image Composite Editor 1.4.4 Создание панорам www.microsoft.ru бесплатно
Internet Explorer 9 Интернет-браузер www.microsoft.ru бесплатно
iTunes 10.4 Воспроизведение музыки и видео www.apple.com/ru/itunes бесплатно
Mathematics 4.0 Математическая программа www.microsoft.ru бесплатно
MediaCoder 2011 R8 Конвертирование видео www.mediacoderhq.com бесплатно
Mixxx 1.9.0 DJ-программа www.mixxx.org бесплатно
nHancer 2.5.9 Оптимизация графических плат www.nhancer.com бесплатно
Nitro PDF Reader 2.0 Редактирование PDF-файлов www.nitroreader.com бесплатно
Office 2010 Офисный пакет www.microsoft.ru от 3 тыс. руб.
Paint.NET 3.5.8 Обработка изображений www.getpaint.net бесплатно
Partition Manager 11 Управление разделами жестких дисков www.paragon.ru 590 руб.
PDF Xchange Viewer 2.5.197 Просмотр PDF www.tracker-software.com бесплатно
ProgDVB 6.70.6 Просмотр и запись ТВ-передач www.progdvb.com бесплатно
SafeErase 5.0 Надежное удаление данных www.oo-software.com 1200 руб.
Sandboxie 3.58 Защищенное окружение www.sandboxie.com бесплатно
Total Commander 7.56а Файловый менеджер www.wincmd.ru от 1750 руб.
SyncToy 2.1 Синхронизация www.microsoft.ru бесплатно
Thunderbird 6.0.1 Почтовая программа www.mozilla.org/ru/thunderbird бесплатно
Vegas Pro 10 Программа видеомонтажа www.sonycreativesoftware.com 28 тыс. руб.
Virtual Dub 1.9.11 Конвертирование видео www.virtualdub.org бесплатно
Virtual PC 6.1 Программа виртуализации www.microsoft.ru бесплатно
WinRAR 4.01 Архиватор www.rarlab.com 850 руб.

Ваш компьютер, вероятнее всего, работает на 64-разрядной версии Windows. Но если открыть «Диспетчер задач», то Вы увидите, что большинство программ в Вашей системе все еще 32-разрядные. Действительно ли это проблема?

Есть много различий между 64-разрядными и 32-разрядными версиями Windows. 64-разрядные версии Windows могут выполнять 32-разрядное программное обеспечение, но 32-разрядные версии Windows не могут выполнить 64-разрядное программное обеспечение.

Как узнать разрядность программы?

Давайте воспользуемся диспетчером задач, чтобы увидеть, какие из ваших программ являются 64-разрядными, а какие 32-разрядными. Щелкните правой кнопкой мыши на панели задач и выберите пункт «Диспетчер задач» или нажмите комбинацию клавиш Ctrl + Shift + Esc, чтобы открыть его.

Посмотрите на столбец с названиями процессов. Если Вы будете использовать 64-разрядную версию Windows 8.1 или 8, то Вы увидите слово «(32-bit)» после каждого имени 32-разрядной версии программы. Если Вы будете использовать 64-разрядную версию Windows 7, то Вы увидите вместо этого «*32».

32-разрядные программы обычно устанавливаются в папку C:\Program Files (x86)\ на 64-разрядных версиях Windows, в то время как 64-разрядные программы обычно устанавливаются в папку C:\Program Files\.
Это - просто правило. Но ни кто не говорит, что нет другого правила, в котором запрещается устанавливать 64-разрядные программы в папку C:\Program Files (x86)\. Например, Steam - 32-разрядная программа, таким образом, она устанавливается в «C:\Program Files (x86)\» по умолчанию. Игры, которые Вы устанавливаете в Steam, установлены в папку C:\Program Files (x86)\Steam по умолчанию, в т.ч. даже 64-разрядные версии игр.

Если Вы сравните две различные папки Program Files, то Вы найдете, что большинство Ваших программ, вероятнее всего, установлены в папку C:\Program Files (x86). И, эти программы в большинстве своём являются 32-разрядными.

Работа 32-разрядного программного обеспечения на 64-разрядной операционной системе

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

Windows выполняет 32-разрядные программы через уровень совместимости WoW64 на 64-разрядных версиях Windows. Однако 64 -разрядные процессоры Intel и AMD обратно совместимы и могут напрямую выполнять 32-разрядное программное обеспечение. Все ваши 32-разрядные Windows-программы будут работать так же, как они работали бы на 32-разрядной версии Windows. Таким образом, нет никаких препятствий к выполнению этих программ на 64-разрядной операционной системе.

Даже если каждая программа, которую Вы используете, является все еще 32-разрядной, то Вы извлечете выгоду, потому что Ваша операционная система сама будет работать в 64-разрядном режиме. А, 64-разрядная версия Windows является более безопасной.

64-битные программы и 32-битные программы: что лучше?

32-битные программы запускаются без проблем на 64-битных версиях операционных систем Windows. Но было бы лучше, если бы все ваши программы были бы 64-битными?

Есть определенно преимущества у 64-битных программ. 32-разрядные программы могут использовать только 2 ГБ памяти, в то время как 64-битные программы могут использовать гораздо больше. Если программа, скорее всего, попала под атаку, дополнительные функции безопасности, применяемые к 64-битных программ, могут помочь. Google Chrome в настоящее время является 32-битным приложением даже на 64-битных версиях ОС Windows, но уже появилась 64-битная бета версия этой программы. И Google обещает, что 64-битная версия Chrome будет быстрее, более безопасной и более стабильной.

Некоторые программы предлагают 64-разрядные версии. Например: Photoshop, Itunes, Microsoft Office, и некоторые из самых популярных программ для Windows, и все они доступны в 64-битном виде. Последние игры тоже часто являются 64-разрядными, чтобы они могли использовать более 2 ГБ памяти.

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

Разработчик, который хочет обеспечить 64-разрядную версию своей программы, должен выполнять много дополнительной работы. Он должен убедиться, что существующий код компилируется и правильно работает как 64-битное программное обеспечение. Он должен обеспечить и поддерживать две отдельные версии программы, так как пользователи под управлением 32-разрядной версии ОС Windows, не могут использовать 64-разрядную версию.

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

Где найти 64-разрядные приложения

Вы, как правило, не будете способны выбирать между 32-битной и 64-битной версий программного обеспечения. Например, при установке Itunes для Windows, веб-сайт компании Apple автоматически направляет вас к 32-разрядной или 64-разрядной версии установщика в зависимости от версии Windows. При установке Photoshop для Windows, как правило устанавливаются и 32-разрядные, и 64-разрядные исполняемые файлы. Photoshop автоматически выбирает из них. Иногда вы можете увидеть отдельные ссылки для загрузки 32-битных и 64-битных версий программ, но это не так распространено.

Важно не заниматься поиском 64-битных приложений, а найти приложения, которые работают хорошо для вас. Для большинства приложений, на самом деле не имеет значения 64-битная версия или 32-битная.

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

У вас работает 64-битная операционная система? Если вы не знаете ответа на этот вопрос, то наверняка нет. 32- и 64-битные версии Windows очень похожи друг на друга, так что отличить внешне вариант ОС не так легко. Проще всего вызвать окно просмотра сведений о компьютере, выбрав "Панель управления" -> "Система" (или нажав правой клавишей на "Компьютер" и выбрав "Свойства"). В окне будут выведены детальные сведения о версии Windows и типе системы. В нашем случае это "64-разрядная операционная система". Но в чём кроются различия между 32- и 64-разрядными системами?

Разница между 32- и 64-битными системами

Когда мы говорим о 64-битных или 64-разрядных операционных системах, нам нужно различать 64-битные вычисления, которые важны для высокой производительности, а также 64-битную адресацию для поддержки больших объёмов памяти. У 64-битной операционной системы используются регистры шириной 64 бита, 64-битные типы данных, и система внутри себя может адресовать данные с помощью 64-битной адресации (что даёт поддержку максимального объёма памяти 16 экзабайт вместо 4 гигабайт). Впрочем, внешняя адресация и шины могут отличаться. В качестве примера можно привести адресацию памяти, которая обычно ограничена 40 или 48 битами.

64-битная ОС для своей работы требует использование 64-битного процессора. Большинство 64-битных систем могут выполнять 32-битное программное обеспечение в так называемом "режиме совместимости", который важен по причине того факта, что "родные" 64-битные приложения всё ещё встречаются довольно редко. Процессор при необходимости переключается в 32-битный режим. Запуск же 32-битной ОС на 64-битном CPU обычно приводит к тому, что процессор всё время работает в наследственном режиме. Если 64-битное программное обеспечение может на 64-битной ОС работать быстрее (если оно должным образом оптимизировано), то 32-битные приложения на 64-битных ОС обычно дают прежний уровень производительности.

Преимущества 64 бит

У 64-битных операционных систем есть несколько преимуществ. Во-первых, 32-битная версия Windows ограничена поддержкой максимум 4 Гбайт памяти, и даже при этом она не будет отдавать весь объём вашим приложениям - система Windows будет использовать часть памяти для собственных нужд, в результате вы получите 3 Гбайт или чуть больше. Поэтому максимальный объём памяти 32-битной Windows на самом деле ограничен 3+ Гбайт. 64-битная версия Windows будет поддерживать любой объём памяти, доступный сегодня.

Во-вторых, 64-битные ОС с большим количеством памяти лучше работают с большими файлами. Представьте себе 5-Гбайт файл под 32-битной версией Windows, где доступно всего 3 Гбайт памяти: системе придётся работать с файлом, загружая его в память по частям.

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

Недостатки 64 бит

Недостатком 64-битных вычислений является другая модель памяти, которая позволила увеличить максимальную ёмкость, а также отсутствие 64-битных приложений в целом. С одной стороны, не все приложения выигрывают от перехода на 64 бита. С другой стороны, низкоуровневые компоненты, такие как драйверы, доступны не для всех устройств, с которыми вы планируете работать. Драйверы являются прослойкой между операционной системой и "железом", то есть почти все они не могут выполняться в 32-битном режиме совместимости. Другими словами, если для сканера, принтера, звуковой карты или любого другого устройства нет 64-битного драйвера, то вы не сможете использовать его в 64-битном окружении.

Детали и проблемы операционных систем

Розничные версии Windows обычно доступны как в 32-, так и в 64-битных версиях. Есть специальные диски для разработчиков, которые содержат обе версии системы: например, Vista DVD для подписчиков Microsoft MSDN. Однако при установке уделите внимание тому, правильную ли версию Windows вы устанавливаете, поскольку после установки изменить версию не получится.

Сколько памяти вам нужно?

Переход на 64-битную операционную систему и большой объём памяти даст не только дополнительное "жизненное пространство", но и позволит операционным системам, таким как Windows Vista, работать более эффективно. Во-первых, операционная система будет реже записывать данные в медленный файл подкачки на жёстком диске, что она выполняет при нехватке оперативной памяти. Во-вторых, Vista может использовать дополнительную память с помощью функции SuperFetch, предварительно загружающей данные приложений в порядке значимости: то есть самые популярные приложения уже будут буферизованы в памяти после загрузки ОС. В итоге приложения будут запускаться практически мгновенно. Комплекты памяти на 4 или даже 8 гигабайт сегодня стоят вполне доступно, поэтому мы рекомендуем оснастить компьютер, по крайней мере, 4 Гбайт памяти. Опытным пользователям и энтузиастам сегодня можно рекомендовать уже 8 Гбайт памяти для 64-битной системы. 2 Гбайт памяти - тоже популярный объём, но при этом вы не получите особого выигрыша от возможностей адресации 64-битной системы (фактически, 64-битная ОС занимает чуть больше места в памяти, чем 32-битная, поэтому ставить 64-битную ОС на компьютер с памятью 3, 2 или 1 Гбайт можно только с точки зрения будущего апгрейда).

32-битные проблемы Windows

Как мы уже упоминали выше, 32-битная версия Windows не даст вам полный объём 4 Гбайт памяти, которую вы установили в систему, поскольку компоненты и устройства Windows требуют выделенного адресного пространства в пределах первых 32 бит (4 Гбайт) оперативной памяти. Видеокарта с 512 Мбайт памяти требует привязки этой памяти к оперативной, что снижает доступную ёмкость на 512 Мбайт. Windows Vista обычно ограничивает доступную память 3,12 Гбайт, но, в зависимости от "железа", эффективный доступный объём может быть ещё ниже. Добавления, такие как оснастка Microsoft .NET, могут потреблять 200 Мбайт или больше. Linux делает всё несколько по-иному, поскольку ядро никогда не требует больше 1 Гбайт; поэтому процессам можно отводить до 3 Гбайт памяти.

Physical Address Extension вместо 64-битной Windows?

Некоторые версии Windows поддерживают функцию под названием Physical Address Extension (PAE), позволяющую использовать больше 4 Гбайт памяти благодаря специальной технологии переадресации. Но Windows при этом использует систему переадресации с тремя уровнями страниц, а не с двумя. Технология PAE успешно зарекомендовала себя в серверах, но в настольных системах её поддержка сталкивалась с проблемами совместимости драйверов из-за недостаточной стандартизации.

Проблемы с драйверами

Поскольку драйверы работают между "железом" и операционной системой, вы не сможете установить 32-битные драйверы на 64-битную операционную систему, пусть даже почти все 32-битные приложения будут работать под вашей 64-битной Windows. Поэтому первым шагом при подготовке перехода на 64-битную версию является тщательная проверка доступности драйверов в 64-битных вариантах. Если вы просто хотите познакомиться и поработать с версией x64 Windows, то можете временно установить её на компьютер - Microsoft даёт 30-дневный ознакомительный период, который позволяет поработать с системой, протестировать её и проверить появление проблем с драйверами. А уже потом активируйте вашу копию Windows.

XP и Vista

Вы обычно можете использовать многие драйверы Windows XP под Windows Vista, но это не касается 64-битных версий. 32-битный драйвер Windows XP для звуковой карты или игрового контроллера обычно работает под Vista-32. Но для Vista x64 и драйверов вы такого исключения не получите, поскольку Vista не будет устанавливать драйвер, если он не подписан должным образом.

Некритичные драйверы

Вам не потребуются драйверы чипсета или видеокарты, если им насчитывается несколько лет. В таком случае Windows Vista x64 сможет поддержать вашу систему благодаря встроенным драйверам, пусть даже их производительность будет чуть хуже. AMD и Intel обычно быстро выпускают драйверы платформы для важных операционных систем, да и AMD/ATI и Nvidia вовремя предоставляют драйверы для актуальных видеокарт Radeon и GeForce. Причём сегодня они поддерживают концепцию унифицированного драйвера, когда в одном комплекте вы получаете набор всех необходимых драйверов, то есть искать и скачивать драйверы по отдельности не нужно.

Критичные драйверы

Намного сложнее найти драйверы для нестандартных компонентов, особенно периферии. Каждый принтер, сканер, "картовод", мышь, клавиатура и сетевая карта несут потенциальный риск несовместимости, если им исполнилось больше полутора-двух лет. Поэтому проверьте наличие драйверов для вашей старой периферии, пусть даже она выпущена такими крупными игроками, как Brother, Canon, HP, Samsung и другими. Даже популярные марки просто не гарантируют наличие 64-битных драйверов.

64-битная операционная система на ноутбуках

Хотя ноутбуки выглядят иначе, чем обычные настольные ПК, да и стоят дороже, технологически они недалеко от них ушли. Они используют меньшие по размеру 2,5" или 1,8" жёсткие диски, более эффективные процессоры и видеокарты, да и все комплектующие сделаны компактными, лёгкими и эффективными. Но принцип построения компьютера такой же, что и у ПК.

В результате почти все ноутбуки, продаваемые сегодня, могут работать с 64-битными операционными системами, да и падение цен на память для ноутбуков было таким же существенным, что и для настольных ПК, то есть сегодня можно установить 4 Гбайт памяти в ноутбук за совершенно разумные деньги.

Некоторые ноутбуки, базирующие на чипсете Intel GM45, например, многие модели Lenovo, поддерживают до 8 Гбайт памяти. Но большинство ноутбуков такой поддержкой не обладают.

Много памяти на ноутбуке

Большой объём памяти необходим для настольного ПК если вы хотите выжать из него максимальную производительность, и у ноутбуков ситуация сравнимая, пусть и немного иная. В данном случае дополнительная память тоже не помешает, но если вы хотите избежать лишних падений производительности. Помните, что жёсткие диски для ноутбуков по-прежнему примерно на 50% медленнее настольных моделей, то есть нужно как можно реже обращаться к винчестеру за данными. Конечно, можно купить быстрый твёрдотельный накопитель (SSD) на флэш-памяти, но такой апгрейд обойдётся существенно дороже, чем добавление памяти.

Ноутбуки тоже страдают из-за ограничения 3+ Гбайт в 32-битной версии Windows, но никто не мешает установить 64-битную версию Windows Vista для поддержки полного объёма 4 Гбайт. Некоторые ноутбуки позволяют установить даже 8 Гбайт памяти, но большинство ограничивают память 4 Гбайт. Подобный объём памяти позволяет снизить использование файла подкачки, да и функция SuperFetch будет работать более эффективно. Единственный недостаток при этом кроется во времени гибернации - чем больше объём памяти, тем дольше будет выполняться этот процесс.

64-битные проблемы ноутбуков

Все проблемы с драйверами, которые мы упоминали выше, также можно отнести и к ноутбукам. Причём в данном случае проблемы будут более острыми, поскольку ноутбуки обычно содержат больше встроенной периферии по сравнению с настольным ПК, и каждому устройству требуется драйвер. Каждый ноутбук содержит тач-пад, который программируемый, но драйвер ему тоже нужен. Встроенные компоненты, такие как модуль Bluetooth, чип TPM, датчик отпечатка пальцев и другие тоже требуют драйверы.

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

Потенциальные проблемы с накопителями

Мы уже обсудили некоторые проблемы, но есть ещё один фактор, который станет всё более значимым в будущем: накопители. Здесь есть два "подводных камня", из которых только второй связан с 32 битами против 64. Но мы рассмотрим оба.

GPT вместо MBR позволяет создавать разделы больше 2 Тбайт. Однако для загрузки с такого раздела требуется расширенная версия EFI вместо обычного BIOS.

В ожидании EFI

Возможно, вы уже знаете об ограничениях записи Master Boot Record (MBR), являющейся частью тома жёсткого диска. Из неё BIOS берёт код загрузки для запуска операционной системы. К сожалению, MBR ограничивается ёмкостью в 2 Тбайт, и, как все мы знаем, жёсткие диски уже достигли подобного объёма. Проблему можно решить, установив последний пакет обновления (Service Pack) на Windows XP и Windows Server 2003, либо перейдя на Windows Vista или Server 2008. Во всех случаях MBR будет заменена так называемой GPT, GUID Partition Table, для разделов размером больше 2 Тбайт. В отличие от MBR, GUID поддерживает разделы до 256 Тбайт, чего на данный момент вполне достаточно.

Однако если GPT поддерживает создание крупных разделов для чтения и записи, загружаться с такого раздела вы сможете только если ваша платформа основана на Extensible Firmware Interface (EFI) или Unified EFI (UEFI, также известный как EFI 2.0) вместо классического BIOS. Рано или поздно этот интерфейс станет стандартом общения между операционной системой и "железом". К сожалению, EFI медленно распространяется в мире ПК; только Apple достаточно умно сразу же перешла на EFI для компьютеров Mac на процессорах Intel. Поэтому если вы хотите загружаться с раздела больше 2 Тбайт, то приготовьтесь к апгрейду платформы. Ситуация осложняется тем, что MBR нельзя конвертировать в GPT, поэтому с RAID-массивами могут возникнуть проблемы: если вы превысите ёмкость массива 2 Тбайт, то можете потерять возможность загрузки с него.

Список функций, которые добавляет EFI, включает DRM, поддержку сетевых функций администрирования, поддержку видеокарты до загрузки ОС, оболочку для запуска приложений EFI, а также драйверы, которые работают как модули EFI. В результате разработка драйверов будет идти на уровне, более близком к "железу", то есть они могут стать независимы от ОС. Windows 7 на системах EFI не придётся запускать драйверы; они будут активироваться в момент загрузки ПК.

Проблемы с драйвером

Наконец, могут возникнуть проблемы с накопителями ёмкостью больше 2 Тбайт и под 64-битной операционной системой, несмотря на наличие драйверов для 64-битных окружений. Некоторые драйверы, которые заявлены для 64-битных окружений и подписаны соответствующим образом, могут внутри использовать 32-битную адресацию секторов - в результате Windows будет неправильно отображать ёмкость. Когда мы тестировали накопитель LaCie 4big Quadra , то обнаружили, что на одной тестовой системе он распознался с ёмкостью около 800 Гбайт, хотя суммарная ёмкость должна была составлять 2800 Гбайт (2,8 Гбайт, то есть 3-Гбайт конфигурация RAID 5 с четвёртым 1-Тбайт жёстким диском внутри LaCie). Вероятно, первые 32 бита адресации не работали, в результате чего операционная система смогла адресовать только ёмкость за пределами 2 Гбайт.

Всё это может привести к печальным результатам: представьте себе конфигурацию, в которой вы создаёте массив RAID 0 с полной ёмкостью 4 Тбайт. Вы форматируете раздел и начинаете с ним работать. Когда вы достигнете 2 Тбайт, то Windows не сможет использовать оставшийся объём, из-за сбойного драйвера Windows начнёт повторную запись с первых секторов, уничтожая записанные там данные. Вряд ли с восстановлением такого кошмара легко справятся даже соответствующие компании.

Поэтому перед использованием накопителя с ёмкостью больше 2 Тбайт мы рекомендуем тщательно проверить его ёмкость с помощью Diskpart. Или даже провести тесты с ёмкостью больше 2 Тбайт, чтобы убедиться, что всё в порядке.

Заключение

Некоторые проблемы, рассмотренные в нашей статье, разочаровывают, особенно если учесть небольшой прирост производительности при переходе на 64-битную версию Windows (а потенциально и отсутствие прироста). Однако есть несколько ключевых моментов, которые следует принимать во внимание:

  • 64-битная версия ОС даёт больше преимуществ, чем недостатков, особенно поддержку конфигураций с памятью больше 3 Гбайт, которые в свете недорогих 8-Гбайт наборов смотрятся всё привлекательнее;
  • 64-битная ОС работает примерно так же, как и 32-битные системы за исключением некоторых high-end приложений;
  • Ситуация с драйверами за последние месяцы улучшилась, но будьте готовы столкнуться с проблемами поиска 64-битного драйвера для некоторого "железа";
  • Поиск драйвера для ноутбука может быть по-прежнему проблематичным;
  • Нет ничего страшного в использовании 32-битной версии Windows, но учтите тот факт, что 64-битная версия потребует полной переустановки (в том числе и приложений);
  • Любая конфигурация с системным разделом больше 2 Тбайт требует использования EFI вместо привычного BIOS для загрузки операционной системы;

Настало время перейти к выводам:

  • Комплекты памяти на 4 или даже 8 Гбайт сегодня стоят очень доступно, при этом подобный объём заметно ускоряет работу системы из-за снижения обращений к файлу подкачки и работы функции SuperFetch под Windows Vista;
  • Энтузиастам настоятельно рекомендуется переходить на 64-битную систему, пусть даже при этом придётся заменить старую периферию или "железо";
  • 64-битное окружение на ноутбуке имеет меньше смысла, поскольку платформа обычно ограничивает память объёмом 4 Гбайт. Впрочем, если есть все необходимые драйверы, мы рекомендуем сделать подобный переход в целях повышения производительности;
  • Сегодня использовать 64-битную систему вполне безопасно, если вы покупаете новый ПК или ноутбук, особенно если она уже входит в комплект;
  • Перенос существующей системы на 64-битное окружение требует предварительной работы по поиску совместимых драйверов, также следует обратить внимание и на другие проблемы, описанные выше.
Это статья по мотивам вопросов на форумах: "Как мне вернуть строку из DLL?", "Как передать и вернуть массив записей?", "Как передать в DLL форму?".

Чтобы вам не тратить половину жизни на разобраться - в этой статье я принесу всё на блюдечке.

Темы этой статьи в разной степени уже не раз затрагивались в этом блоге, но в этой статье они собраны в кучу, приведены обоснования. Короче, ссылкой на эту статью можно кидаться в тех, кто разрабатывает DLL.

Важное примечание : статью нужно читать последовательно . Примеры кода приводятся только как примеры , на каждом шаге (пункте) статьи код примеров добавляется новыми подробностями. Например, в самом начале статьи нет обработки ошибок, указываются "классические" способы (типа, использования GetLastError , соглашения sdtcall и т.д.), которые по ходу статьи заменяются на более адекватные. Сделано так по той причине, чтобы "новые" ("необычные") конструкции не вызывали вопросов. Иначе при пришлось бы к каждому примеру вставлять примечание вида: "вот это обсуждается в том пункте ниже, а вот то - в этом вот". В любом случае в конце статьи есть ссылка на уже готовый код, написанный с учётом всего сказанного в статье. Можете просто его брать и использовать. А статья объясняет зачем и почему. Если вам не интересно "зачем и почему" - листайте в конец к заключению и ссылке на скачивание примера.