2009-12-23 20 views
21

¿Cómo ejecuto los binarios de Linux con Mac OS X?Emulación de binarios de Linux en Mac OS X

Búsqueda en Google encontré un par de emuladores pero ninguno para ejecutar los binarios de Linux en una Mac. Hay bastantes publicaciones sobre cómo ejecutar Mac OS X en Linux y ese tipo de cosas, pero eso es lo contrario de lo que quiero hacer.

Actualización:

¡Gracias por todas las respuestas! Soy plenamente consciente de MacPorts y Fink o de cualquiera de las otras cosas; y no, no quiero ninguna de estas utilidades, y no quiero a ninguno de los administradores de paquetes, prefiero compilar las cosas yo mismo. También tengo Parallels y podría configurar máquinas virtuales y todo ese jazz ...

Lo único que quiero hacer es encontrar una forma de ejecutar un código binario para el que no tengo el código fuente y ha sido compilado para Linux, pero no quiero ejecutarlo bajo Linux, pero bajo Mac OS X. Por lo tanto, mi pregunta sobre los emuladores.

+2

Si solo desea ejecutar software del mundo * nix/POSIX probablemente compilará siempre que no dependa de las bibliotecas específicas del sistema operativo. Fink o MacPorts pueden ayudar con esto de alguna manera. – Matt

+0

No puedo pensar en ningún software que esté disponible para Linux, pero no para Mac (lamentablemente, ya que soy un chico de Linux). ¿Por qué estás buscando tal cosa? – Davide

+0

El servidor dedicado de Team Fortress 2 es un ejemplo que es solo para Windows y Linux: -/ – Tommy

Respuesta

7

Configure una máquina virtual (personalmente uso VMWare Fusion) y luego instale la distribución de Linux que desee en la máquina virtual.

O, si tiene la fuente para el programa Linux, es probable que pueda recompilarlo en una Mac y ejecutarlo de forma nativa. Si instala Fink o MacPorts, puede instalar una gran cantidad de programas de código abierto sin muchos problemas.

+0

Agregué enlaces a Fink y DarwinPorts porque generalmente son más fáciles de descargar que de fuente e intentar compilarlo, teniendo en cuenta que primero necesita instalar algo diferente, y descargarlo e intentar compilarlo, etc. etc. –

+0

Cool. En realidad es MacPorts ahora, por cierto. ;) – mipadi

2

Si decide ir a la ruta de virtualización, considere también VirtualBox.

Además, si solo necesita herramientas de línea de comandos de UNIX, existe el proyecto MacPorts. Esto es básicamente como configuré git en mi mac: después de haber instalado los MacPorts solo tiene que ejecutar el comando sudo port install git para instalar git en su sistema.

3

Es posible que tenga un poco de suerte con el funcionamiento de los ejecutables de Linux en Mac OS X utilizando User Space Emulator

7

Bueno hay un proyecto de introducción de algo así como binfmt_misc de Linux para OS X por lo que ahora lo que necesita es un cargador de ELF, un enlazador dinámico de Qemu que puede cargar tanto Mach-O como ELF, y algún mecanismo para traducir llamadas de Linux a las de OS X.

Solo como inspiración, puede implementar el enlazador dinámico de la manera que ignora la extensión del nombre de archivo, tanto libfoo.so.1 (como ELF de Linux) como libfoo.1.dylib (como Mach-O) pueden ser cargado para que las versiones de OS X de las bibliotecas del sistema puedan reutilizarse para que no sea necesario escribir un libc.so "alojado en OS X" y las llamadas a sys pueden ser manejadas por un kext que traduce las llamadas de Linux a OS X en kernel.

O, de una manera más elegante, implemente un kernel de Linux simplificado como un kext que hace que el kernel de OS X sea de doble propósito. Sin embargo, eso requerirá que use dos conjuntos de bibliotecas. (Los binarios no entran en conflicto, por lo que está bien)

+1

¿Tiene un enlace para esto? –

1

Encontré recientemente Noah, que puede usar para ejecutar binarios de Linux en macOS. Puede instalar Noah a través de homebrew (brew install linux-noah/noah/noah). Entonces usted debería ser capaz de hacer esto:

noah linux_binary 

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