Эмуляция Linux-файлов в Mac OS X - PullRequest
27 голосов
/ 23 декабря 2009

Как запустить бинарные файлы Linux под Mac OS X?

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

Обновление:

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

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

Ответы [ 5 ]

7 голосов
/ 16 октября 2013

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

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

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

7 голосов
/ 23 декабря 2009

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

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

4 голосов
/ 12 августа 2017

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

noah linux_binary

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

4 голосов
/ 23 декабря 2009

Возможно, вам повезет с запуском исполняемых файлов Linux под Mac OS X с использованием эмулятора пользовательского пространства Qemu

2 голосов
/ 23 декабря 2009

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

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

...