Как открыть 32 битную программу на 64 Mac OS

Поскольку пользователи macOS Catalina больше не могли запускать 32-разрядные приложения. Хотя к настоящему времени создатели многих приложений разработали новые 64-разрядные версии приложений, все еще есть некоторые приложения и плагины, которые могут работать только на 32-разрядных компьютерах Mac. Если вам нужно запустить 32-битное приложение на Big Sur, вы можете сделать это с помощью виртуальной машины.

Виртуальные машины позволяют устанавливать и открывать более раннюю версию macOS (например, Mojave) в окне на Mac Big Sur или Catalina. Вы сможете запускать две операционные системы одновременно, что удобно, если вы хотите открыть одно 32-битное приложение вместе с вашими 64-битными приложениями Mac. Однако, когда вы запускаете виртуальную машину, ресурсы вашего компьютера распределяются между двумя операционными системами, поэтому все может работать медленнее, чем обычно.

Популярные приложения виртуализации для macOS: Parallels Desktop, VMware Fusion и VirtualBox. В этой статье будут рассмотрены плюсы и минусы использования VMware Fusion, VirtualBox и Parallels.

STEAM MACOS CATALINA! ПРОБЛЕМЫ С ИГРАМИ?!

Установите 32-битные приложения на macOS Big Sur с помощью Parallels Desktop

как использовать 32-битные приложения на больших компьютерах с параллелями

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

Цены на Parallels Desktop начинаются с 79.99 долларов США, однако доступен бесплатный пробный период.

Получите 32-разрядные приложения на macOS Big Sur с помощью VMware Fusion

как установить 32-битные приложения на MacBook Pro с помощью vmware fusion

VMware Fusion — еще одно популярное программное обеспечение для виртуализации Macbook. Он близок к Parallels по функциональности и цене, но Fusion от VMware поддерживает большее количество операционных систем, чем Parallels. С другой стороны, Parallels проще для новичков и работает немного плавнее. В остальном эти две программы находятся примерно на одном уровне.

Установите 32-битные приложения на Mac Big Sur через VirtualBox

как запускать 32-битные приложения на MacBook Air с VirtualBox

Если вы не планируете тратить дополнительные деньги на программное обеспечение для виртуализации, всегда есть VirtualBox от Oracle. VirtualBox — довольно приличная бесплатная альтернатива платному программному обеспечению, если не более медленная, менее доработанная и в которой отсутствуют некоторые удобные функции. Если вам нужно запустить некоторые ресурсоемкие приложения на виртуальной машине, VirtualBox может быть не лучшим выбором для вас. VirtualBox также требует больше технических знаний, чем, например, Parallels, поскольку пользователям необходимо самостоятельно настраивать некоторые параметры при его установке. Однако, если вы уже являетесь опытным пользователем или не против поработать еще немного, и вы не собираетесь запускать ресурсоемкое программное обеспечение, VirtualBox — хорошая (и бесплатная!) Альтернатива.

Читайте также:
Что означает крякнутая программа

Как открыть 32 битные плагины в 64 битной DAW. Быстрый лайфхак

Источник: www.computips.org

Как я могу запустить 32-битное приложение на 64-битной OSX 10.7.2?

У меня есть приложение, которое существует только в 32-битной версии. Чтобы использовать его, я обычно нажимал 2 и 3 перед загрузкой Mac, чтобы он работал в 32-битном режиме. Однако некоторые приложения (64-битная версия, установленная ранее) всегда будут аварийно завершать работу в этом режиме.

Мне довелось увидеть решение, которое запускает 32-битное приложение в 64-битной системе:

arch -i386 theApp.app

Но мне все еще нужен обходной путь:
Как правильно запустить 32-разрядное приложение в моей 64-разрядной системе?

arch -i386 /Applications/theApp.app/Contents/MacOS/theApp

Тем не менее, приложение запускается с ошибкой Components lost , журнал показан ниже:

Кстати, 闪讯.app (я ненавижу это !! Но мне это нужно ..) используется для подключения к сети в моем университете в Китае.

РЕДАКТИРОВАТЬ:

Кажется, это только 32-разрядная версия и зависит от 32-разрядного ядра. О, я ооочень грустный. 🙁

DOC показывает некоторые методы для временного запуска с 32-разрядным ядром, чтобы использовать более старые расширения ядра для стороннего программного или аппаратного обеспечения.

Программное обеспечение сторонних производителей (например, механизм виртуализации) или аппаратное обеспечение (например, карта PCIe), использующее расширение ядра, совместимое с Mac OS X Server v10.5, может не работать на компьютерах Mac, использующих 64-разрядное ядро в Mac OS X v10.6. Обратитесь к поставщику программного или аппаратного обеспечения за обновленным расширением ядра, которое работает с 64-разрядным ядром в Mac OS X Server v10.6.

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

изменён Kjuly 348
задан Kjuly 348

1 ответ 1

OS X не имеет общего 64/32 битного режима; он запускает отдельные программы в любом режиме, который кажется «лучшим» при запуске. Удержание 3 и 2 при загрузке компьютера заставит его ядро работать в 32-битном режиме, но это не имеет никакого отношения к тому, в каком режиме работают программы. OS X может успешно запускать программы в 32-битном режиме под 64-битным ядром или программы в 64-битном режиме под 32-битным ядром.

Если ваша программа содержит только 32-битный код, она будет работать в 32-битном режиме без необходимости делать что-то особенное. Вы можете проверить это, запустив команду file на исполняемом файле (обычно в AppName.app/Contents/MacOS/AppName. Вот несколько примеров:

$ file /Applications/Chess.app/Contents/MacOS/Chess /Applications/Chess.app/Contents/MacOS/Chess: Mach-O universal binary with 2 architectures /Applications/Chess.app/Contents/MacOS/Chess (for architecture x86_64): Mach-O 64-bit executable x86_64 /Applications/Chess.app/Contents/MacOS/Chess (for architecture i386): Mach-O executable i386 $ file /Applications/VLC.app/Contents/MacOS/VLC /Applications/VLC.app/Contents/MacOS/VLC: Mach-O universal binary with 2 architectures /Applications/VLC.app/Contents/MacOS/VLC (for architecture i386): Mach-O executable i386 /Applications/VLC.app/Contents/MacOS/VLC (for architecture ppc): Mach-O executable ppc $ file /Applications/Adobe Reader 9/Adobe Reader.app/Contents/MacOS/AdobeReader /Applications/Adobe Reader 9/Adobe Reader.app/Contents/MacOS/AdobeReader: Mach-O executable i386

Читайте также:
Написать программу которая вычисляет сумму первых n целых положительных четных целых чисел си

. который говорит мне, что Chess.app включает в себя 32-битный и 64-битный код Intel («i386» и «x86_64» соответственно), VLC.app включает в себя 32-битный Intel и 32-битный PowerPC («ppc») код, а Adobe Reader включает только 32-разрядный код Intel.

Вы также можете получить часть этой информации (хотя и не так подробно) из системного отчета о Системной информации (в разделе «Программное обеспечение -> Приложения»).

Если приложение имеет как 32-, так и 64-битный код, вы можете выбрать, какой из них использовать в окне «Информация» в приложении Finder (будет установлен флажок «Открыть в 32-битном режиме»), или с помощью команда arch на исполняемом файле (например, arch -i386 /Applications/theApp.app/Contents/MacOS/theApp ). Но обычно вам не нужно этого делать, ОС хорошо выбирает лучший режим.

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

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

РЕДАКТИРОВАТЬ: похоже, что приложение является только 32-разрядным, и устанавливает только 32-разрядное расширение ядра (kext). Хотя 32-битная часть приложения может работать в любом режиме ядра, 32-битные kexts могут загружаться только в 32-битное ядро (это как плагин для ядра). Вы можете запустить ядро в 32-битном режиме, удерживая 3 и 2 при запуске, или постоянно с помощью команды sudo systemsetup -setkernelbootarchitecture i386 (см. Apple KB # HT3773).

Обратите внимание, что не нужно делать ничего особенного, чтобы открыть приложение в 32-битном режиме; поскольку это единственный включенный формат, он будет работать в этом режиме независимо от того, как он запускается (в частности, команда arch не нужна).

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

Источник: poweruser.guru

запустить 32-битную сборку на 64-битном процессоре с Mac OS X

У меня проблема с запуском 32-битной сборки на моем 64-битном Mac под управлением OS X 10.9.5. У меня также установлен NASM 2.11.08. В настоящее время я читаю «Шаг за шагом» на языке ассемблера Джеффа Дантеманна. В книге он указывает инструкции по 32-битной сборке в операционной системе Linux. Как я могу запустить эту программу на моем 64-битном компьютере Mac OS X.

; eatsyscall.asm SECTION .data ; Section containing initialised data EatMsg: db «Eat at Joes!»,10 EatLen: equ $-EatMsg SECTION .bss ; Section containing uninitialized data SECTION .text ; Section containing code global _start ; Linker needs this to find the entry point! _start: nop ; This no-op keeps gdb happy. mov eax,4 ; Specify sys_write call mov ebx,1 ; Specify File Descriptor 1: Standard Output mov ecx,EatMsg ; Pass offset of the message mov edx,EatLen ; Pass the length of the message int 80H ; Make kernel call MOV eax,1 ; Code for Exit Syscall mov ebx,0 ; Return a code of zero int 80H ; Make kernel call

Читайте также:
Алгоритм программы в матлабе

Я пробовал собрать его с

nasm -f elf -g -F stabs eatsyscall.asm

Затем я пытаюсь связать его с

ld -o eatsyscall eatsyscall.o

Но я получаю эту ошибку

ld: warning: -arch not specified ld: warning: -macosx_version_min not specified, assuming 10.6 ld: warning: ignoring file eatsyscall.o, file was built for unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 ) which is not the architecture being linked (x86_64): eatsyscall.o Undefined symbols for architecture x86_64: «start», referenced from: implicit entry/start for main executable ld: symbol(s) not found for inferred architecture x86_64

Это должно работать, правда? Я думал, что 64-битные процессоры Intel способны запускать 32-битные программы. Или нет возможности запустить программу сборки, написанную для 32-битных систем Linux, на 64-битном Mac?

Мне нужно установить какой-то набор 32-битных библиотек, чтобы иметь возможность связать этот файл? Должен ли я использовать что-то другое, кроме NASM, например GCC? Или сама программа написана неправильно. Спасибо за помощь!

Nick M 14 Окт 2015 в 07:02

2 ответа

Лучший ответ

Исполняемый файл для Linux не будет работать на Mac, точка. Установите Linux на виртуальную машину на вашем Mac, если вы хотите запускать вещи Джеффа Дантеманна. Код можно довольно легко (?) Преобразовать в -f macho64 , но в Nasm-2.11.08 есть плохая ошибка на -f macho64 🙁

Есть релиз-кандидат — http://www.nasm.us/pub /nasm/releasebuilds/2.11.09rc1/macosx/ — что «может» исправить. Кому-то нужно это проверить. Возможно, не лучшая работа для новичка. Вы должны иметь возможность программировать с помощью gcc на вашем Mac, но не с помощью «Пошагово». Nasm будет работать на вашем Mac . но не сейчас . Установите Linux, если можете, пока.

Frank Kotler 14 Окт 2015 в 17:44

У вас здесь две проблемы.

  1. Вы компилируете файл сборки в двоичный файл ELF ( -f elf ), который не поддерживается Mac OS X ld . Используйте -f macho для создания объектных файлов Mach-O для вашей системы, затем используйте -arch i386 , чтобы связать его как 32-битный двоичный файл.
  2. Вы пытаетесь использовать системные вызовы Linux в Mac OS X. Это не работает; номера системных вызовов и соглашения о вызовах различны и не документируются публично. Исправить это возможно, но, как упоминает Фрэнк Котлер, это не та задача, которую я бы рекомендовал новичку; Лучше всего использовать 32-разрядную систему Linux для выполнения этих руководств.

Источник: question-it.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru