¿Hay alguna manera de ejecutar un binario de Linux en macOS?

16

¿Hay alguna manera de ejecutar un binario de Linux en macOS? Traté de ejecutar un binario pero dijo que no es ejecutable.

Saeid
fuente
Esto no funcionará. El kernel OSX es algo diferente de un kernel de Linux.
ott--
Bueno, OS X no usa binarios elfos, por lo que es un poco como tratar de ejecutar Windows .exe. Sin embargo, una breve búsqueda encuentra esto: osxbook.com/software/xbinary Si puede volver a compilar su código, no es un problema.
orion
XBinary requiere un programa que sepa cómo ejecutar su binario; en sí mismo no ejecuta nada.
saagarjha

Respuestas:

8

Estas respuestas son medio correctas, porque la virtualización es una opción, pero hay otra. ¿Puedo presentar ...

Historia

  1. Primero fue UNIX, alrededor de 1972
  2. Luego la división de la línea de tiempo
    • En 1977, por $ 90, Bob Fabry y otros compilaron / construyeron las primeras versiones de BSD, abreviatura de Berkeley Systems Distribution.
    • En 1991, Linus Torvalds publicó en un grupo de noticias , sobre el software que utilizó de Richard Stallman, quien comenzó GNU en 1983, y nació Linus'es UNIX.
    • Apple volvió a adquirir el software NeXT en 1996, después de que Steve Jobs fuera despedido de Apple en 1984, y utilizó el software y las personas allí para construir OS X. OS X es el Darwin OS + el entorno de escritorio NeXT. Y ahora volvemos a Bullet # 1, ya que Darwin es una bifurcación de código cerrado de BSD. Para el proyecto de código abierto, vea PureDarwin . Para la página oficial del desarrollador de Apple, consulte Apple Open Source .

Cómo podemos usar esto

Los BSD utilizan tradicionalmente el sistema de puertos para la gestión de paquetes. Los más utilizados son los puertos de FreeBSD . Los puertos son paquetes instalados directamente desde la fuente. Dado que las mismas aplicaciones de Linux provienen de las mismas fuentes , puede ejecutar una aplicación de Linux si su puerto existe. No use estos puertos en una Mac porque ...


Dado que todas las GUI de Apple están escritas usando la API Cocoa - WikiEntry , incluida con XCode - OS X para desarrolladores , los puertos se pueden ajustar para aprovechar esto:

  1. Instale XCode para su versión de OS X.
  2. Incluido dentro de XCode está la versión de Apple del compilador GCC, y todas las otras herramientas asociadas. Para actualizar las herramientas, vea esta publicación en StackOverflow . Las herramientas dependen de la versión del sistema operativo, es decir, no son compatibles con versiones anteriores , que yo sepa (en resumen, no instale XCode para 10.8 en 10.6, etc.)
  3. Después de instalar XCode, ahora tiene un compilador y puede dirigirse a la página de MacPorts y buscar el puerto que necesita instalar, después de instalar el instalador .pkg de MacPorts

Consideración

El sistema de puertos no necesariamente verifica la dependencia, a menos que el puerto esté bien escrito. Toqué ligeramente el problema de ¿qué significa elibc_FreeBSD en las superposiciones de porte de gentoo?

eyoung100
fuente
17

Recientemente comencé a usar Noah para ejecutar binarios de Linux en macOS. Puede instalar usando homebrew ( brew install linux-noah/noah/noah). Entonces deberías poder hacer esto:

noah linux_binary

En mi experiencia, el comportamiento del binario coincide con lo que veo en mi máquina Ubuntu.

snd
fuente
aunque el comando funcionó y no hay errores hizo suben, mis binarios no funcionaron como se esperaba
techkuz
2

La única forma en que sé que esto se puede hacer a través de algún tipo de virtualización . Por ejemplo, podría usar vagrant, que es una especie de envoltorio alrededor de VBox de Oracle o vmplayer de VMware. La otra cosa que a veces se hace es poner esto en un contenedor como docker .

rocoso
fuente
2

Emulación de hardware

¡No directamente! Sí, como dijo Rocky, debe virtualizarlo con VirtualBox , VMWare Fusion , que coincidirá con su tipo de CPU.

También está Qemu , que virtualizará diferentes tipos de CPU, es decir, Intel o Power, etc.

Emulación de software

También hay emulación de capa de software, con programas como WiNE y mi propio programa emulayer (WiP). Ambos emulan parcialmente el sistema operativo Windows al convertir las llamadas del sistema a POSIX.

La mayoría de las aplicaciones de Linux se ejecutarán en OSX con una fuente de recompilación.

bobbyjo
fuente
Arreglé tus enlaces por ti. Bienvenido a U & L.SE.
eyoung100