как сделать приложение 32 битным

Возможен ли запуск 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, в которую вы сможете инсталлировать требуемое вам приложение и осуществить его запуск. При этом, если устанавливаемая ОС платная, то вы вынуждены будете ее купить.

Виртуализация

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

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

Аппаратная виртуализация

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

Облачные вычисления

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

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

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

Заключение

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

Источник

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

как сделать приложение 32 битным. Смотреть фото как сделать приложение 32 битным. Смотреть картинку как сделать приложение 32 битным. Картинка про как сделать приложение 32 битным. Фото как сделать приложение 32 битным

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

как сделать приложение 32 битным. Смотреть фото как сделать приложение 32 битным. Смотреть картинку как сделать приложение 32 битным. Картинка про как сделать приложение 32 битным. Фото как сделать приложение 32 битным

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

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

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

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

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

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

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

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

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

Источник

Как сделать 32-битную программу из 64-битной версии?

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

4 ответов

нет, это невозможно. Причина довольно широка, может быть, даже слишком широка для суперпользователя, учитывая, что вам нужно будет объяснить основы того, как были созданы x86 и x64, и как это влияет на программирование в целом.

но если коротко объяснить, то все сводится к следующему:

в прошлом у нас были 16-битные процессоры. Затем intel сделала первый 32-разрядный процессор, также известный как x86. Это 8086, 80286 (286 для краткости) etc. Это было в основном модификация 16-битных процессоров с добавлением дополнительных наборов команд. С каждым новым выпуском серии процессоров Intel добавляла в семейство процессоров дополнительные наборы инструкций, что в конечном итоге приводило к тому, что набор инструкций содержал множество инструкций. Intel не мог просто удалить старые наборы инструкций, потому что это означало бы, что не было обратной совместимости, и Intel хотел продолжать поддерживать старые процессоры.

как процессор 32 бита, есть верхний предел, а именно наибольшее 32-битное число. Это означает, что объем выделяемой памяти может достигать примерно 3,5 ГБ.

в те времена компьютеры были не такими мощными, так что если бы intel изначально стремилась к 64 битам, это означало бы, что гораздо больше времени было потрачено на вычисление тех же чисел, поэтому производительность снизилась бы просто потому, что цифры для вычисления больше.

кроме того 32-битные процессоры работали довольно хорошо в течение длительного времени.

в какой-то момент AMD вошел рынок и ввел обработчик 64bit. AMD создали свои собственные наборы инструкций, чтобы позволить работать с 64 битами, сохраняя наборы инструкций intel для 32 бит в такт, чтобы обеспечить обратную совместимость с 32 битами.

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

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

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

поскольку теперь у вас есть код, только вы можете запустить программу. Сделать его так, что другое люди могут запустить вашу программу, вы должны скомпилировать код в исполняемый. Это означает, что легко читаемый код преобразуется в инструкции, понятные процессору. Во время компиляции вы указываете, должна ли ваша программа работать на x86 или x64, и компилятор будет генерировать код, используя наборы инструкций, основанные на этой архитектуре процессора.

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

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

теоретически это можно сделать!

есть способы перевести с нейтрального код/внутреннее представление для конкретной архитектуры бинарных как современные компиляторы/мандраж работы. Существуют также эмулятор, которые запускают программы для другой архитектуры на текущей. Бохи и qemu являются двумя из самых известных. Смотри:

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

однако, если ваш компьютер только 32-бит, это означает, что он уже более 10 лет. Практически любые процессоры Intel от Pentium 4 Prescott в 2004 далее (кроме некоторых ранних процессоров Atom) и все процессоры AMD из Athlon 64 в 2003 далее 64-разрядная версия. Пришло время для обновления.

Если ваш компьютер достаточно новый, чтобы поддерживать x86_64 и VT-x, то вы можете run 64-разрядная виртуальная машина внутри узла, однако это не рекомендуется, и производительность будет еще хуже, чем при работе 64-разрядной ОС с 32-разрядной виртуальной машиной внутри. 64-битной ОС не нужно в два раза больше памяти по сравнению с 32-битной, как многие думали, так что даже с только 2 ГБ оперативной памяти, 64-битная ОС, как правило, все еще быстрее из-за удвоенного количества регистров и многих других вещей. Между 1 и 2 ГБ оперативной памяти это возможно, но я бы пошел на 64-битный

Что касается мер безопасности, 32-разрядные операционные системы часто опоздал на патчи безопасности. Например, патчи Meltdown и Spectre для 32-битной Linux более полугода после того, как 64-битный Linux был исправлен. Meltdown патчи предоставляются для 64-битной Windows 10 построить 1507 и 32-разрядные пользователи защищены только после сборки 1511. И даже если они пропатчены,такие древние машины будут обычно лицо гораздо больше влияет на производительность потому что у них нет новых инструкций и функций, чтобы компенсировать замедление. По этой причине MS не включить патч на некоторых старых ПК если явно не сказано пользователем.

иногда не будет исправлено вообще потому что нет достаточного количества пользователей, поэтому мало стимулов тратить огромные усилия. Вопрос тоже невозможно fix без аппаратной поддержки, если это аппаратный баг. Например, для недавних атак боковых каналов, таких как Spectre или L1TF, также требуется обновленный микрокод, поэтому, если производитель процессора и/или материнской платы не выпускает обновление прошивки, вам не повезло! Эти ошибки влияют на процессоры в последние два десятилетия, но это не возможно, чтобы обеспечить патчи для очень старых систем. Windows 7 также упал Pentium 3 поддержка потому что это слишком трудно исправить без поддержки SSE2, или потому, что слишком мало люди работают на этих процессорах.

32-разрядных Windows также более уязвимы, потому что:

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

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *