Меню Рубрики

Установка программ на win64

Как на 64-битной Windows запустить программы в режиме совместимости

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

Современные компьютеры в большинстве случаев поставляются с установленной операционной системой Windows 10 64 bit. Даже бюджетные модели уже имеют 3 и более Гбайт оперативной памяти, что позволяет задействовать системе всю мощь 64-битной разрядности обработки данных.

Подробнее о преимуществах 64 bit над 32 bit Windows вы можете прочитать в нашей статье «Преимущества перехода на 64 бита».

Но, как бы не была привлекательна 64-разрядная система, зачастую пользователь просто не имеет в своем распоряжении 64-битной программы, с которой он давно работает и которая его полностью устраивает, т.к. производитель ее просто не выпустил. Как правило, такие программы устанавливаются в Windows в отдельную папку \Program Files (x86) и их запуск осуществляется в 32-разрядном режиме.

Если в процессе запуска программа выдает ошибку или вообще не запускается, а в Windows 32 bit она работала без проблем, есть шанс запустить ее в специальном режиме, который разработчики назвали «Режим совместимости».

Для этого в Windows 7 щелкните правой кнопкой мыши на ярлыке нужной программы, а затем выберите в контекстном меню «Свойства». В открывшемся окне перейдите на вкладку «Совместимость» и установите флажок «Запустить программу в режиме совместимости с …» и в выпадающем списке укажите вариант системы для запуска.
Нажмите кнопку «OK». После этого попробуйте запустить вашу программу.

Кроме того, в контекстном меню Проводника также имеет смысл попытаться автоматически решить задачу, кликнув по строке «Исправление неполадок совместимости» — в Windows 7.

В Windows 10 при настройке запуска в совместимом режиме на вкладке «Совместимость» имеется отдельная кнопка «Запустить средство устранения проблем с совместимостью». После чего вам предложат либо использовать рекомендованные параметры, либо провести диагностику программы.

Если и после этого программа не запустилась, то стоит подойти к проблеме более основательно и попробовать варианты, указанные на официальном сайте Microsoft.

Более радикальным методом запуска программы является ее установка и использование в виртуальной машине с установленной Windows 7 32 bit. Подробнее, как установить и настроить виртуальную машину вы можете почитать в нашей статье «Как создать и настроить на ПК виртуальную ОС?».

источник

Урок 2. Поддержка 32-битных приложений в 64-битной среде Windows

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

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

Подсистема WoW64 не поддерживает следующие программы:

  • программы, скомпилированные для 16-разрядных операционных систем;
  • программы режима ядра, скомпилированные для 32-разрядных операционных систем.

Накладные расходы

Существуют различия WoW64 в зависимости от архитектуры процессора. Например, 64-битная версия Windows разработанная для процессора Intel Itanium 2 использует WoW64 для эмуляции x86 инструкций. Такая эмуляция весьма ресурсоемка по сравнению с WoW64 для архитектуры Intel 64, так как происходит переключение с 64-битного режима в режим совместимости при выполнении 32-битных программ.

WoW64 на архитектуре Intel 64 (AMD64 / x64) не требует эмуляции инструкций. Здесь подсистема WoW64 эмулирует только 32-битное окружение за счет дополнительной прослойки между 32-битным приложением и 64-битным Windows API. Где-то эта прослойка тонкая, где-то не очень. Для средней программы потери в производительности из-за наличия такой прослойки составят около 2%. Для некоторых программ это значение может быть больше. Два процента — это немного, но следует учитывать, что 32-битные приложения работают немного медленнее под управлением 64-битной операционной системы Windows, чем в 32-битной среде.

Компиляция 64-битного кода не только исключает необходимость в WoW64, но и дает дополнительный прирост производительности. Это связано с архитектурными изменениями в микропроцессоре, такими, как увеличение количества регистров общего назначения. Для средней программы можно ожидать в пределах 5-15% прироста производительности от простой перекомпиляции.

Преимущество 64-битной среды для 32-битных программ

Из-за наличия прослойки WoW64 32-битные программы работают менее эффективно в 64-битной среде, чем в 32-битной. Но все-таки простые 32-битные приложения могут получить одно преимущество от их запуска в 64-битной среде. Вы, наверное, знаете, что программа, собранная с ключом /LARGEADDRESSAWARE:YES, может выделять до 3-х гигабайт памяти, если 32-битная операционная система Windows запущена с ключом /3gb. Так вот, эта же 32-битная программа, запущенная на 64-битной системе, может выделить почти 4 GB памяти (на практике около 3.5 GB).

Перенаправления

Подсистема WoW64 изолирует 32-разрядные программы от 64-разрядных путем перенаправления обращений к файлам и реестру. Это предотвращает случайный доступ 32-битных программ к данным 64-битных приложений. Например, 32-битное приложение, которое запускает файл DLL из каталога %systemroot%\System32, может случайно обратиться к 64-разрядному файлу DLL, который несовместим с 32-битной программой. Во избежание этого подсистема WoW64 перенаправляет доступ из папки %systemroot%\System32 в папку %systemroot%\SysWOW64. Это перенаправление позволяет предотвратить ошибки совместимости, поскольку при этом требуется файл DLL, созданный специально для работы с 32-разрядными приложениями.

Читайте также:  Установка и настройка rsyslog

Подробнее с механизмами перенаправления файловой системы и реестра можно познакомиться в разделе MSDN «Running 32-bit Applications».

Почему невозможно использовать в 64-битной программе 32-битные DLL? Можно ли это обойти?

Загрузить 32-битную DLL из 64-битного процесса и выполнить код из неё невозможно. Невозможно в силу дизайна 64-битных систем. В принципе, невозможно. Не помогут ни хитрости, ни недокументированные пути. Для этого нужно загрузить и проинициализировать WoW64, не говоря уже о структурах в ядре. Фактически нужно будет на лету превратить 64-битный процесс в 32-х битный. Подробнее эта тема рассмотрена в посте «Недокументированные функции; Загрузка 32-х битных DLL в 64-х битный процесс». Единственное, что можно порекомендовать, — это создание суррогатного процесса и взаимодействия с ним посредством технологии COM. Об этом рассказывается в статье «Accessing 32-bit DLLs from 64-bit code».

А вот загрузить ресурсы из 32-битной DLL в 64-битный процесс совсем несложно. Это можно сделать, если при вызове LoadLibraryEx указать флаг LOAD_LIBRARY_AS_DATAFILE.

Постепенный отказ от поддержки 32-битных программ

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

Многие администраторы знают про относительно новый режим установки и работы серверной версии операционной системы под названием Server Core. Это тот режим, о котором участники войн «Windows vs Linux» говорили очень давно. Одним из аргументов сторонников использования Linux на сервере была возможность установить серверную ОС без графического интерфейса (GUI). Но вот и в Windows Server появилась такая возможность. Установка в этом режиме позволяет получить только командную строку без пользовательского интерфейса.

Эта возможность (установка Server Core) появилась в Windows Server 2008. Но в Windows Server 2008 R2 появилось нововведение, приближающее 64-битное будущее. При установке Windows Server 2008 R2 (Server Core) поддержка запуска 32-битных приложений стала опциональной. Причем по умолчанию эта поддержка выключена. И при попытке запуска 32-битного приложения в режиме Server Core пользователь получит сообщение о невозможности запуска. Конечно, можно добавить поддержку 32-битных программ:

start /w ocsetup ServerCore-WOW64

В обычном (Full Installation) режиме 32-битные приложения по умолчанию запускаются, а вот в Server Core уже нет.

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

Дополнительная информация

Интересным источником информации по системе WoW64 является блог Алексея Пахунова: http://blog.not-a-kernel-guy.com/. Алексей является сотрудником компании Microsoft и принимает непосредственное участие в разработке подсистемы WoW64.

Авторы курса: Андрей Карпов (karpov@viva64.com), Евгений Рыжков (evg@viva64.com).

Правообладателем курса «Уроки разработки 64-битных приложений на языке Си/Си++» является ООО «Системы программной верификации». Компания занимается разработкой программного обеспечения в области анализа исходного кода программ. Сайт компании: http://www.viva64.com.

Найдите ошибки в своем C, C++, C# и Java коде

Предлагаем попробовать проверить код вашего проекта с помощью анализатора кода PVS-Studio. Одна найденная в нём ошибка скажет вам о пользе методологии статического анализа кода больше, чем десяток статей.

источник

Возможен ли запуск 64-битных приложений в 32-битной операционной системе?

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

Для пользователей 32-битной ОС иногда возникает необходимость использовать программные средства, предназначенные только для 64-битной ОС. Что же делать, если пользователь не готов отказаться от 32-битной ОС как основной рабочей системы?

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

В Mac OS X ядро является гибридным. Оно позволяет одинаково работать любым приложениям в независимости от того, являются ли они 32- или 64-битными. Единственное отличие гибридного ядра от полноценного 64-разрядного — это невозможность использовать в системе больше 32 ГБ оперативной памяти. Поэтому на данный момент нет совершенно никакой разницы между загрузкой в 32- и 64-битном режимах. А вот в будущем разница обязательно появится по мере увеличения объемов использования ОЗУ и появления новых технологий.

Для ОС семейства Linux и 32-битных ОС семейства Windows запуск 64-битных приложений в 32-битном окружении осуществляется с применением технологий виртуализации [2]. Существует ряд специализированных программных продуктов, позволяющих установить виртуальную гостевую 64-битную OC, в которую вы сможете инсталлировать требуемое вам приложение и осуществить его запуск. При этом, если устанавливаемая ОС платная, то вы вынуждены будете ее купить.

Читайте также:  Установка пневмостойки на мерседес w220

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

Вот некоторые популярные решения:

Oracle VirtualBox — универсальная бесплатная виртуальная машина. VirtualBox — очень простой, мощный и бесплатный инструмент для виртуализации, развивающийся благодаря поддержке знаменитой корпорации Oracle. Он распространяется бесплатно, с открытым исходным кодом. VirtualBox позволяет устанавливать в качестве «гостевой» практически любую современную операционную систему, будь то Windows, Mac OS или любой из многочисленных представителей семейства Linux.

VMware Workstation — для серьёзных задач. VMware Workstation — мощная, платная, максимально-надёжная программа для виртуализации, которая поддерживает работу с Windows и Linux. Для виртуализации Mac OS данная машина не предназначена.

QEMU — свободная программа с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ.

Для запуска гостевой 64-битной виртуальной машины в 32-битном окружении необходимо, чтобы процессор обладал 64-битной архитектурой и поддерживал технологии аппаратной виртуализации, такие как Intel VT-x и AMD-V. Иногда их необходимо вручную включить в BIOS вашей системы.

Все эти решения требует определенной производительности от системы, и не всегда есть возможность добиться оптимальной работы требуемого вам приложения.

В настоящее время широко развиваются технологии облачных вычислений [3]. Они позволяют развернуть любые ОС на удаленных серверах и запускать на них ваши приложения. При этом никаких ограничений на вашу 32-битную систему не накладывается, все расчеты производятся на удаленных машинах. Например, это Microsoft Azure, с помощью которой можно развернуть множество ОС и исполнять различные, в том числе и высокопроизводительные, приложения.

Часто вопрос о запуске 64-битных приложений на устаревающих 32-битных машинах стоит перед геймерами. Существуют специализированные облачные решения и для таких задач. Например, NVIDIA GRID. GRID воспроизводит 3D игры на облачных серверах, мгновенно кодирует каждый кадр и передает результаты на любое устройство с проводным или беспроводным высокоскоростным подключением к сети Интернет.

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

Найдите ошибки в своем C, C++, C# и Java коде

Предлагаем попробовать проверить код вашего проекта с помощью анализатора кода PVS-Studio. Одна найденная в нём ошибка скажет вам о пользе методологии статического анализа кода больше, чем десяток статей.

источник

Как запустить устаревшие приложения в системе Windows 10

Большинство ваших старых приложений для Windows должны запускаться в Windows 10 . Если они работают в Windows 7, они почти наверняка будут работать в Windows 10. Однако, некоторые старые приложения для ПК откажут даже запускаться, тем не менее, существует много способов заставить их работать снова.

Запустить от имени администратора

Многие приложения, разработанные для Windows XP, будут корректно работать в современной версии Windows, за исключением одной маленькой проблемы. В эпоху Windows XP среднестатистический пользователь Windows использовали свой ПК с учетной записью администратора. Приложения были закодированы так, словно они априори имеют административный доступ, и сейчас они терпят неудачу, если не получают прав администратора. Новая функция контроля учетных записей (UAC), в целом, решает эту проблему, но все равно возникают некоторые проблемы с доступом.

Если старое приложение работает неправильно, попробуйте щелкнуть правой кнопкой мыши его ярлык или исполняемый файл (с расширением exe), а затем выбрать «Запуск от имени администратора», чтобы запустить его с правами администратора.

Если вы обнаружите, что приложение требует административного доступа, вы можете настроить приложение на запуск в качестве администратора, используя настройки совместимости, которые мы обсудим в следующем разделе.

Настройка параметров совместимости

Windows включает в себя параметры совместимости, которые могут сделать старые приложения работоспособными. В меню «Пуск» Windows 10 щелкните правой кнопкой мыши ярлык, выберите «Открыть расположение файла» в контекстном меню

После того, как откроется местоположение файла, щелкните правой кнопкой мыши ярлык приложения или файл exe и выберите «Свойства» в контекстном меню.

На вкладке Совместимость окна свойств приложения вы можете нажать кнопку «Использовать средство устранения неполадок совместимости» для интерфейса мастера или просто отрегулировать параметры самостоятельно.

Например, если приложение не работает должным образом в Windows 10, но правильно работает в Windows XP, выберите опцию Запустить программу в режиме совместимости c: и затем выберите «Windows XP (Service Pack 3)» в раскрывающемся меню.

Не стесняйтесь пробовать другие настройки на вкладке Совместимость. Например, очень старые игры могут выиграть от «Режима пониженной цветности». На дисплеях с высоким разрешением DPI вам, возможно, придется «Изменить параметры высокого DPI», чтобы программа выглядела нормально.

Никакие параметры на этой вкладке не могут повредить вашему приложению или ПК – вы всегда можете просто отменить их, если они не помогут.

Читайте также:  Установка мазилы на убунту

Установка драйверов Unsigned или 32-разрядных

64-разрядная версия Windows 10 использует принудительное добавление подписи драйвера и требует, чтобы все драйверы имели действительную подпись перед их установкой. 32-разрядные версии Windows 10 обычно не требуют подписанных драйверов. Исключением являют 32-разрядные версии Windows 10, работающие на более новых ПК с UEFI (вместо обычного BIOS).

Применение подписанных драйверов помогает повысить безопасность и стабильность, защищая вашу систему от вредоносных или просто нестабильных драйверов. Устанавливайте неподписанные драйверы, только если знаете, что они безопасны и Вас есть все основания для этого.

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

Запуск игр, требующих SafeDisc и SecuROM DRM

Windows 10 не будет запускать более старые игры, которые используют SafeDisc или SecuROM DRM. Эти схемы управления цифровыми правами могут вызывать довольно много проблем. В целом, хорошо, что Windows 10 не позволяет этому мусору устанавливаться и загрязнять вашу систему. К сожалению, это означает, что некоторые старые игры, которые запускались с компактов-дисков или DVD-дисков, не будут устанавливаться и запускаться нормально.

Вам доступно много других возможностей для запуска этих игр: поиск репаков «без CD» (которые потенциально опасны, поскольку часто встречаются на пиратских сайтах); покупка игры у цифрового дистрибуционного сервиса, такого как GOG или Steam; проверка веб-сайта разработчика, чтобы узнать, предоставляет ли он патч, которым удаляет DRM.

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

Использование виртуальных машин

Windows 7 включала специальную функцию «Режим Windows XP». Это была фактически включенная программа виртуальной машины с бесплатной лицензией Windows XP. Windows 10 не включает режим Windows XP, но вы все равно Вы можете использовать виртуальную машину, чтобы сделать это самостоятельно.

Всё, что Вам действительно нужно – виртуальная машина, такая как VirtualBox и лицензия Windows XP. Установите эту копию Windows в виртуальную машину и вы можете запустить программное обеспечение на этой более старой версии Windows в окне на рабочем столе Windows 10.

Использование виртуальной машины – это несколько более прогрессивное решение, но оно будет работать хорошо, если приложению не нужно напрямую взаимодействовать с оборудованием. Виртуальные машины имеют ограниченную поддержку аппаратных периферийных устройств.

Использование эмуляторов для приложений DOS и Windows 3.1

DOSBox позволяет запускать старые DOS-приложения – прежде всего DOS-игры – в окне эмулятора на вашем рабочем столе. Используйте DOSBox для запуска старых приложений DOS вместо того, чтобы полагаться на командную строку. DOSBox будет работать намного лучше.

Поскольку Windows 3.1 сама по себе была DOS-приложением, вы можете установить Windows 3.1 в DOSBox и запустить старые 16-разрядные приложения Windows 3.1.

Используйте 32-битную Windows для 16-разрядного ПО

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

Попробуйте запустить 16-разрядное приложение в 64-разрядной версии Windows, и вы увидите сообщение «Это приложение не может работать на вашем ПК».

Если вам нужно запустить 16-разрядные приложения, вам потребуется установить 32-разрядную версию Windows 10 вместо 64-разрядной версии. Хорошей новостью является то, что вам не нужно переустанавливать всю вашу операционную систему. Вместо этого вы можете просто установить 32-разрядную версию Windows внутри виртуальной машины и запустить там приложение. Вы даже можете установить Windows 3.1 в DOSBox.

Используйте специальные браузеры для веб-сайтов

Windows 10 использует новый Microsoft Edge в качестве браузера по умолчанию. Edge не включает поддержку Java, ActiveX, Silverlight и других технологий. Chrome также отказался от поддержки плагинов NPAPI, таких как Java и Silverlight.

Чтобы использовать старые веб-приложения, требующие этих технологий, запустите браузер Internet Explorer, включенный в Windows 10, по соображениям совместимости. IE все ещё поддерживает контент ActiveX. Mozilla Firefox по-прежнему поддерживает Java и Silverlight.

Вы можете запустить Internet Explorer из меню «Пуск». Если вы уже используете Microsoft Edge, просто откройте меню настроек и выберите «Открыть с помощью Internet Explorer», чтобы открыть текущую веб-страницу непосредственно в Internet Explorer.

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

источник

Добавить комментарий

Adblock
detector