Многие программы поддерживают только 64-битные машины, потому что рынок 32-битных сейчас невелик. Однако для тех, кто застрял на 32-битных машинах, это означает, что более новые версии не могут быть установлены, и это может привести к проблемам безопасности. Одним из примеров является Firefox/Waterfox. В общем, есть ли способ сделать 32-битную программу из 64-битной установки (.exe, .msi)?
Смотрите больше: Почему безопасность браузера должна быть приоритетом?
изменён Ooker 739
задан Ooker 739
4 ответа 4
Нет, это невозможно. Причина довольно обширная, может быть, даже слишком широкая для SuperUser, учитывая, что вам нужно будет объяснить основы того, как создавались x86 и x64, и как это влияет на программирование в целом. Но, чтобы кратко объяснить, это сводится к следующему: В прошлом у нас были 16-битные процессоры. Затем Intel выпустила первый 32-битный процессор, также известный как x86.
Это 8086, 80286 (286 для краткости) и т.д . В основном это была модификация 16-битных процессоров с добавлением дополнительных наборов команд. С каждым новым выпуском их серии процессоров Intel добавляла все больше наборов инструкций к семейству процессоров, что в итоге приводило к тому, что набор инструкций содержал много-много инструкций.
Intel не могла просто удалить старые наборы инструкций, потому что это означало бы, что обратной совместимости не было, и Intel хотела продолжать поддерживать старые процессоры. Поскольку процессор 32-разрядный, существует верхний предел, а именно максимальное 32-разрядное число. Это означает, что объем памяти только до 3,5 ГБ.
Раньше компьютеры были не такими мощными, поэтому если Intel с самого начала стремилась к 64-битным вычислениям, это означало бы, что на вычисление одинаковых чисел ушло бы гораздо больше времени, поэтому производительность снизилась бы просто потому, что числа для вычисления были больше. К тому же 32-битные процессоры работали довольно долго.
В какой-то момент AMD вышла на рынок и представила 64-битный процессор. AMD создала свои собственные наборы инструкций, позволяющие работать с 64-битными кодами, в то же время сохраняя наборы команд Intel для 32-битных тактов, чтобы обеспечить обратную совместимость с 32-битными.
Учитывая, что это фактически разные наборы инструкций, программист, который создает 32-битные программы, будет вызывать другие процедуры, чем когда они создают 64-битные программы. Теперь, когда я объясню, почему это трудно сделать, давайте продолжим объяснять проблему с точки зрения программирования. Когда вы кодируете программу, вы сначала пишете свой код.
Если ваш код обратно совместим для 32-битных программ, вы просто не можете использовать 64-битные числа и не можете одновременно адресовать более 3,5 гигабайт памяти. По сути, вы не можете пересекать какие-либо ограничения, с которыми сталкиваются 32-битные программы, иначе ваша программа будет аварийно завершена.
Поскольку теперь у вас есть код, только вы можете запустить вашу программу. Чтобы сделать так, чтобы другие люди могли запускать вашу программу, вы должны скомпилировать код в исполняемый файл. Это означает, что легко читаемый код преобразуется в инструкции, понятные процессору.
Как скачать binkw32.dll и исправить ошибку в Windows 11/10 и 7
Во время компиляции вы указываете, должна ли ваша программа работать на x86 или x64, и компилятор будет генерировать код, используя наборы команд на основе этой архитектуры процессора. Как видите, вы не можете просто изменить исполняемый файл и заставить его работать на другом исполняемом файле. Сначала вам нужно декомпилировать программу в код, а затем перекомпилировать ее, используя различные инструкции. Тем не менее, учитывая, что программа, скомпилированная для x86, будет изначально работать на x64, можно с уверенностью предположить, что программист создает программу x64, потому что он собирается нарушить ограничения архитектуры x86. Таким образом, даже если вы захотите превратить версию для x64 в версию для x86, вполне вероятно, что программа будет нестабильной, поскольку вы преодолеете ограничения, которые может делать 32-разрядная программа.
ответ дан LPChip 36k
Теоретически это можно сделать!
- Запуск x86-64 ASM на процессоре x86-32
- Как запустить Windows из эмулятора на компьютере, отличном от x86?
Несмотря на это, я еще не видел никого, кто бы писал такой конвертер для одного двоичного файла, потому что в основном вам также нужно будет эмулировать все системные и библиотечные вызовы, что в любом случае было бы лучше для запуска всего эмулятора. Qemu также имеет возможность эмулировать только пользовательское пространство, так что на самом деле можно запускать программу вместе с необходимыми библиотеками без полноценной ОС
Однако, если ваш компьютер только 32-разрядный, это означает, что ему уже более 10 лет. Практически любые процессоры Intel от Pentium 4 Prescott в 2004 году (кроме некоторых ранних процессоров Atom) и все процессоры AMD от Athlon 64 в 2003 году и выше поддерживают 64-разрядную архитектуру. Пришло время обновить.
Если ваш компьютер достаточно новый, чтобы поддерживать x86_64 и VT-x, вы можете запустить 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 не включает патч на некоторых старых ПК, если это явно не указано пользователем.
Иногда их вообще не исправляют, потому что у них недостаточно базы пользователей, а значит, нет стимула тратить огромные усилия. Эту проблему также невозможно исправить без аппаратной поддержки, если это аппаратная ошибка. Например, недавние атаки по побочным каналам, такие как Spectre или L1TF, также требуют обновленного микрокода, поэтому, если производитель процессора и / или системной платы не выпустит обновление прошивки, вам не повезло! Эти ошибки влияют на ЦП в последние два десятилетия, но невозможно предоставить исправления для очень старых систем. Windows 7 также отказалась от поддержки Pentium 3, потому что ее слишком сложно патчить без поддержки SSE2, или потому что слишком мало людей используют ее на этих процессорах.
32-битная Windows также более уязвима, потому что:
- У него меньше возможностей для горячего исправления. Только ~ 30% 32-битного ядра Windows могут быть исправлены в горячем состоянии, по сравнению со 100% 64-битного ядра . Он также не поддерживает Kernel Patch Protection.
- Не требует подписи драйверов, как в 64-битной Windows
- На ASLR меньше места для работы
Если вы запускаете 64-битную ОС в эмуляторе, это будет даже медленнее. И даже если вы примете скорость сканирования и используете эмулятор, вредоносные программы на хосте все равно могут атаковать виртуальную машину в такой уязвимой системе. Опять же, время для обновления, если вы действительно заботитесь о безопасности, или вам придется бесконечно жить с менее защищенной системой
Дальнейшее чтение:
- 32-битный безопаснее, чем 64-битный?
- 64-битная Windows безопаснее 32-битной?
- Почему 64-разрядная версия Windows более безопасна
- Как преобразовать 32-битный скомпилированный двоичный файл в 64-битный
Источник: poweruser.guru
Можно ли запустить игру x64 на 32-битном процессоре?
К 2020 году 64-битный софт постепенно становится стандартом не только десктопных систем, но и мобильных платформ.
Например, минувшей осенью корпорация Apple заявила, что отказывается от 32-битных приложений и на своих смартфонах, и в App Store. Что ж, давно пора, прогресс неумолим. Но как запустить x64 на x32, если у вас устаревший микропроцессор?
Сегодня эта информация особенно актуальна для лэптопов и планшетов, работающих под управлением Windows 10. Например, у меня в рюкзаке лежит старенький Prestigio. Стоил копейки, с рабочими программами справляется достойно, а вот видеоигры уже не вытягивает. Даже двухмерные, за исключением написанных под старую разрядность.
Преимущество Mac OS X состоит в наличии там гибридной архитектуры. В результате не имеет значения, под какой стандарт заточено конкретное ПО. А вот на «Винде» и «Пингвине» придется использовать виртуальную машину.
Виртуализация имеет ряд преимуществ, позволяя сымитировать разнообразные конфигурации, устаревшие и новейшие ОС. Единственный (и ключевой) недостаток – общее замедление системы, поэтому для доисторических лэптопов волшебных таблеток нет.
Как запустить x64 на x32 – популярные виртуальные машины:
- QEMU. Придётся повозиться с настройками, однако сам проект распространяется под флагом Open Source, что позволяет вносить коррективы в код;
- OracleeVirtualBox. Наиболее популярное решение, поддерживает любые ОС из семейства Windows и не только;
- VMWareWorkstation. Платный продукт, несовместимый с MacOS;
«Сила облаков» и аппаратная поддержка
Есть и альтернативный вариант, когда вычисления осуществляются на серверах MS Azure. Тогда виртуализация происходит удалённо, а пользователь видит результат.
Необходим стабильный доступ к Сети на высокой скорости. Ещё один вариант – аппаратное решение (AMD-V и Intel VT-x), поддерживаемое небольшим процентом CPU. Соответствующая опция должна присутствовать в настройках вашего BIOS. Начать рекомендую с поиска 32-битной версии нужного ПО, поскольку на слабом «железе» выжать достойную производительность через VM-машину не выйдет.
К сожалению, большинство современных разработчиков отказываются от старых девайсов. Яркий пример – игра Octopath Traveler. Несмотря на простую 2D-графику, врубить его на планшете не удалось из-за архитектурного несоответствия.
Источник: gamenewsblog.ru
Как запускать 32-битные программы в 64-битной Windows 10?
Windows Vista, 7 и 8 поставляются (или поставлялись) в 32- и 64-разрядных версиях (версия, которую вы получаете, зависит от процессора вашего ПК).
64-битные версии могут запускать 32- и 64-битные программы, но не 16-битные.
Чтобы узнать, используете ли вы 32- или 64-разрядную версию Windows, проверьте сведения о системе.
Как запустить 16-битные программы в Windows 10?
Настройте поддержку 16-разрядных приложений в Windows 10. Для поддержки 16-разрядных приложений потребуется включить функцию NTVDM. Для этого нажмите клавишу Windows + R, затем введите: optionfeatures.exe и нажмите Enter. Разверните «Устаревшие компоненты», затем отметьте NTVDM и нажмите «ОК».
Могут ли 32-битные игры работать на 64-битной?
Большинство 32-битных игр будут работать с 64-битной Windows 7. Любая 32-битная игра будет работать на 64-битной ОС, если для бесперебойной работы игры доступны другие требования, такие как видеокарта или gtx. Но игра, для которой нужна 64-битная ОС, не запустится на 32-битной.
Будет ли Windows 10 запускать 32-битное программное обеспечение?
3 ответа. Проще говоря, если вы хотите работать со старой 16-разрядной программой, вы должны использовать 32-разрядную версию Windows. 64-битные версии операционной системы просто не поддерживают его, так как им не хватает уровня совместимости (однако они совместимы с более широко используемым 32-битным программным обеспечением).
Как запустить 32-битную программу на 64-битной Windows 10?
Для этого откройте приложение «Настройки» в меню «Пуск», выберите «Система» и выберите «О программе». Посмотрите справа от «Тип системы». Если вы видите «32-разрядная операционная система, процессор на базе x64», это означает, что вы используете 32-разрядную версию Windows 10, но ваш процессор может работать с 64-разрядной версией.
Могу ли я запускать 64-битные программы на 32-битном компьютере?
Большинство других ответов верны, говоря, что вы не можете установить и запустить 64-битную программу в 32-битной операционной системе, но обычно можете устанавливать и запускать 32-битные программы в 64-битной ОС. Тем не менее, большинство ответов, похоже, считают само собой разумеющимся, что запустить 32-в-64 просто и легко.
Как запустить старые программы в Windows 10?
Как использовать средство устранения неполадок совместимости программ
- В меню «Пуск» выполните поиск «Выполнить программы, созданные для предыдущих версий операционной системы», и нажмите «Ввод».
- Нажмите ссылку «Дополнительно» в средстве устранения неполадок совместимости программ.
- Щелкните Запуск от имени администратора.
- Нажмите “Далее.
Как вы находите свои программы в Windows 10?
Выберите «Пуск», введите имя приложения, например Word или Excel, в поле «Найти программы и файлы». В результатах поиска щелкните приложение, чтобы запустить его. Выберите «Пуск» > «Все программы», чтобы просмотреть список всех ваших приложений. Возможно, вам придется прокрутить вниз, чтобы увидеть группу Microsoft Office.
Как запустить старые программы DOS в Windows 10?
Как запустить старые программы DOS в Windows 10
- Загрузите ретропрограмму. Если вы читаете это руководство, вполне вероятно, что вы хотите запустить определенную игру или программу, но у вас еще нет ее копии.
- Скопируйте файлы программы.
- Запустите DOSBox.
- Установите вашу программу.
- Образ ваших гибких дисков.
- Запустите вашу программу.
- Включить IPX.
- Запустите IPX-сервер.
Что произойдет, если я запущу 32-битную версию на 64-битную?
Хотя можно установить 32-разрядную операционную систему на 64-разрядную систему, по возможности лучше установить 64-разрядную версию. 64-разрядная ОС позволит вашему компьютеру получить доступ к большему объему оперативной памяти, более эффективно запускать приложения и, в большинстве случаев, запускать как 32-разрядные, так и 64-разрядные программы.
Могут ли 64-битные приложения работать на 32-битной?
Если вы про 32-битный процессор, то нет. Но если вы используете 32-битную ОС на 64-битном оборудовании, вы можете сделать это с помощью VMWare. 64-битный гость может работать на 32-битном хосте, если это поддерживает аппаратное обеспечение. Bochs должен помочь, но вам понадобится еще одна копия Windows для запуска на виртуальной машине.
Можно ли установить 32-битную винду на 64-битную?
Вы можете запустить 32-разрядную версию Windows x86 на компьютере с архитектурой x64. Обратите внимание, что вы не можете сделать это в 64-битных системах Itanium. 64-битный процессор может работать как с 32, так и с 64 ОС (по крайней мере, с x64). 32-битный процессор изначально может запускать только 32.
Могу ли я использовать 32-битные драйверы в 64-битной Windows?
да. Всем аппаратным устройствам требуются 64-разрядные драйверы для работы в 64-разрядной версии Windows. Драйверы, предназначенные для 32-разрядных версий Windows, не работают на компьютерах с 64-разрядными версиями Windows. Поэтому вам следует установить на свой компьютер 32-битную ОС (виртуальную или реальную).
Можно ли установить 32-битную программу на 64-ку?
Да, 32-битное программное обеспечение может работать в 64-битной операционной системе. Однако лучше всего использовать 64-битную версию, если она вам предоставлена. РЕДАКТИРОВАТЬ: 32-разрядные приложения будут установлены в папку «Program Files (x86)» в системном разделе.
Могут ли 64-битные игры работать на 32-битной?
64-разрядная версия может запускать как 32-разрядные, так и 64-разрядные программы. Если он поддерживает 64-битную версию, вы можете обновить свою операционную систему до 64-битной. Вы можете обновить Windows, только если ваш процессор поддерживает 64-битную архитектуру. В противном случае попробуйте использовать 32-битные игры и другие программные приложения.
Могу ли я перейти с 32-битной на 64-битную?
1. Убедитесь, что ваш процессор поддерживает 64-разрядную версию. Microsoft предоставляет вам 32-разрядную версию Windows 10 при обновлении с 32-разрядной версии Windows 7 или 8.1. Но вы можете переключиться на 64-разрядную версию, что означает, что на компьютерах с оперативной памятью не менее 4 ГБ вы сможете одновременно запускать больше приложений.
Как я могу изменить 32-битную на 64-битную?
Убедитесь, что 64-разрядная версия Windows 10 совместима с вашим ПК
- Шаг 1: Нажмите клавишу Windows + I на клавиатуре.
- Шаг 2: Нажмите «Система».
- Шаг 3: Нажмите «О программе».
- Шаг 4: Проверьте тип системы, если он говорит: 32-разрядная операционная система, процессор на базе x64, значит, на вашем ПК установлена 32-разрядная версия Windows 10 на 64-разрядном процессоре.
В чем разница между 32-битным и 64-битным компьютером?
Различия между 32-битным и 64-битным ЦП. Еще одно большое различие между 32-разрядными и 64-разрядными процессорами заключается в максимальном объеме поддерживаемой памяти (ОЗУ). 32-разрядные компьютеры поддерживают максимум 4 ГБ (232 байта) памяти, тогда как 64-разрядные ЦП теоретически могут адресовать максимум 18 ЭБ (264 байта).
Как я могу запустить 32-битную программу на 64-битной Windows 7?
Решение 2. Обновите Windows 7/8/10 с 32-разрядной до 64-разрядной версии.
- Откройте меню «Пуск».
- Найдите «Информация о системе».
- Нажмите Ввод”.
- Найдите «Тип системы».
- Если вы видите компьютер на базе x64, значит, на вашем компьютере установлена 64-разрядная версия Windows.
Могу ли я запустить 64-битную версию на ПК с архитектурой x86?
ПК на базе X86 означает, что в настоящее время установлена 32-разрядная версия Windows. тогда ваш компьютер может работать под управлением 64-битной ОС. Если в типе системы указано x86, а не x64, вы не сможете запустить 64-разрядную версию Windows 10.
Можно ли обновить 32-разрядную Windows 7 до 64-разрядной Windows 10?
Microsoft предоставляет вам 32-разрядную версию Windows 10 при обновлении с 32-разрядной версии Windows 7 или 8.1. Но вы можете переключиться на 64-битную версию, если ваше оборудование ее поддерживает. Но если ваше оборудование поддерживает использование 64-разрядной операционной системы, вы можете бесплатно перейти на 64-разрядную версию Windows.
Можно ли запускать DOS-программы в Windows 10?
Настоящая проблема не в том, используете ли вы Windows 7, 8 или 10, а в том, используете ли вы 32- или 64-разрядную версию операционной системы. Любая 32-разрядная версия Windows может легко работать с программами DOS. 64-битная версия нуждается в небольшой помощи.
Как установить программу с компакт-диска в Windows 10?
Чтобы установить программу с компакт-диска или DVD-диска, вставьте диск с программой в дисковод или лоток компьютера этикеткой вверх (или, если на вашем компьютере есть вертикальный слот для дисков, вставьте диск этикеткой вверх влево). Появится диалоговое окно автозапуска. Выберите вариант запуска Install или Setup.
Как запустить команду DOS в Windows 10?
Просто щелкните значок поиска или Cortana на панели задач Windows 10 и введите «Выполнить». Вы увидите, что команда «Выполнить» появится в верхней части списка. Найдя значок команды «Выполнить» одним из двух описанных выше способов, щелкните его правой кнопкой мыши и выберите «Закрепить на начальном экране». Вы увидите, что в меню «Пуск» появится новая плитка с надписью «Выполнить».
Что произойдет, если вы установите 32-битную ОС на 64-битный процессор?
Как было сказано выше, 32-битный процессор может поддерживать только до 4 ГБ оперативной памяти, а 64-битный процессор почти не ограничен. Теперь, что касается операционных систем, если вы используете 32-битную ОС на 64-битной машине, вы недостаточно используете свой процессор. Это не означает, что программы будут работать медленнее.
Должен ли я установить 32-битную или 64-битную Windows?
64-битные машины могут обрабатывать гораздо больше информации одновременно, что делает их более мощными. Если у вас 32-битный процессор, вы также должны установить 32-битную Windows. Хотя 64-разрядный процессор совместим с 32-разрядными версиями Windows, вам придется запустить 64-разрядную версию Windows, чтобы в полной мере воспользоваться преимуществами процессора.
Достаточно ли 4 ГБ ОЗУ для Windows 10 64 бит?
Если у вас 64-битная операционная система, то увеличить объем оперативной памяти до 4 ГБ не составит труда. Все, кроме самых дешевых и самых простых систем Windows 10, будут поставляться с 4 ГБ ОЗУ, а 4 ГБ — это минимум, который вы найдете в любой современной системе Mac. Все 32-разрядные версии Windows 10 имеют ограничение в 4 ГБ ОЗУ.
Фото в статье «Cecyl GILLET» https://www.cecylgillet.com/blog/comments.php?y=11entry=entry110419-105153
#Как #запускать #32битные #программы #64битной #Windows
Источник: bloground.ro