Подтвердить что ты не робот

Эмуляция исполняемых файлов Linux под Mac OS X

Как запустить исполняемые файлы Linux в Mac OS X?

Попутно я нашел пару эмуляторов, но не для запуска исполняемых файлов Linux на Mac. Есть немало сообщений о работе Mac OS X на Linux и подобных материалах, но это противоположность тому, что я хочу сделать.

Update:

Спасибо за ответы! Я полностью осведомлен о MacPorts и Fink или о других вещах; и нет, я не хочу ни одной из этих утилит, и я не хочу ни одного из менеджеров пакетов, я предпочитаю сам компилировать. У меня также есть Parallels, и я могу настроить виртуальные машины и весь этот джаз...

Единственное, что я хочу сделать, это найти способ запуска двоичного кода, для которого у меня нет исходного кода, и он был скомпилирован для Linux, но я не хочу запускать его под Linux, но в Mac OS X Поэтому мой вопрос об эмуляторах.

4b9b3361

Ответ 1

Настройте виртуальную машину (я лично использую VMWare Fusion), а затем установите любой дистрибутив Linux, который вы хотите на виртуальной машине.

Или, если у вас есть источник для программы Linux, скорее всего, вы можете перекомпилировать ее на Mac и запустить ее изначально. Если вы установите Fink или MacPorts, вы может установить множество программ с открытым исходным кодом без особых проблем.

Ответ 2

Ну, есть проект, представляющий что-то вроде Linux binfmt_misc для OS X, поэтому теперь вам нужен загрузчик ELF, динамический компоновщик, который может загружать как Mach-O, так и ELF, и некоторый механизм для перевода вызовов Linux на OS X.

Просто для вдохновения вы можете реализовать динамический компоновщик таким образом, что он игнорирует расширение имени файла - могут быть загружены как libfoo.so.1 (как Linux ELF), так и libfoo.1.dylib(как Mach-O) так что версии системных библиотек OS X могут быть повторно использованы, так что вам не нужно писать "размещенный на OS X". libc.so и syscalls могут обрабатываться kext, который переводит вызовы Linux на OS X в ядре.

Или более элегантным способом реализовать урезанное ядро ​​Linux как kext, которое делает ядро ​​OS X двойным назначением. Однако для этого потребуется использовать два набора библиотек. (Binaries не сталкиваются, так что в основном это нормально)

Ответ 3

Возможно, вам повезло с запуском исполняемых файлов Linux в Mac OS X с помощью Qemu User Space Emulator

Ответ 4

Если вы решите пойти по пути виртуализации, рассмотрите также VirtualBox.

Кроме того, если вам нужны только инструменты командной строки UNIX, существует проект MacPorts. Это в основном то, как я настроил git на моем mac: после установки MacPorts вам просто нужно запустить команду sudo port install git для установки git в вашей системе.

Ответ 5

Недавно я нашел Noah, который можно использовать для запуска исполняемых файлов Linux на macOS. Вы можете установить Noah через доморощенный (brew install linux-noah/noah/noah). Тогда вы сможете это сделать:

noah linux_binary

По моему опыту поведение двоичного файла совпадает с тем, что я вижу на моей машине Ubuntu.