Existe-t-il un moyen d'exécuter un binaire Linux sur macOS?


16

Existe-t-il un moyen d'exécuter un binaire Linux sous macOS? J'ai essayé d'exécuter un binaire mais il a dit qu'il n'était pas exécutable.


Cela ne fonctionnera pas. Le noyau OSX est quelque peu différent d'un noyau Linux.
ott--

Eh bien OS X n'utilise pas les binaires elf, c'est donc un peu comme essayer d'exécuter Windows .exe. Cependant, une brève recherche trouve ceci: osxbook.com/software/xbinary Si vous pouvez recompiler votre code, ce n'est pas un problème.
orion

XBinary nécessite un programme qui sait exécuter votre binaire; en soi, il ne fait rien.
saagarjha

Réponses:


8

Ces réponses sont à moitié correctes, car la virtualisation est un choix mais il y en a un autre. Puis-je présenter ...

Histoire

  1. Il y a d'abord eu UNIX, vers 1972
  2. Ensuite, la scission de la chronologie
    • En 1977, pour 90 $, Bob Fabry et d'autres ont compilé / construit les premières versions de BSD, abréviation de Berkeley Systems Distribution.
    • En 1991, Linus Torvalds a posté dans un Newsgroup , un logiciel qu'il a utilisé de Richard Stallman, qui a commencé GNU en 1983, et Linus'es UNIX est né.
    • Apple a racheté NeXT Software en 1996, après que Steve Jobs a été licencié d'Apple en 1984, et a utilisé le logiciel et les gens là-bas pour construire OS X. OS X est le Darwin OS + NeXT Desktop Environment. Et maintenant, nous sommes de retour à la puce # 1, car Darwin est un fork source fermé de BSD. Pour le projet Open Source, voir PureDarwin . Pour la page officielle des développeurs Apple, consultez Apple Open Source .

Comment pouvons-nous utiliser cela

BSD utilise traditionnellement le système de ports pour la gestion des packages. Les plus utilisés sont les ports FreeBSD . Les ports sont des packages installés directement à partir de la source. Étant donné que les mêmes applications Linux proviennent des mêmes sources , vous pouvez exécuter une application Linux si son port existe. N'utilisez pas ces ports sur un Mac car ...


Étant donné que toutes les interfaces graphiques d'Apple sont écrites à l'aide de l' API Cocoa - WikiEntry , fournie avec XCode - OS X pour les développeurs , les ports peuvent être réglés pour tirer parti de ceci:

  1. Installez XCode pour votre version d'OS X.
  2. La version Apple du compilateur GCC et de tous les autres outils associés est intégrée à XCode. Pour mettre à jour les outils, consultez cet article sur StackOverflow . Les outils dépendent de la version du système d'exploitation, c'est-à-dire qu'ils ne sont pas rétrocompatibles , à ma connaissance (en bref, n'installez pas XCode pour 10.8 sur 10.6, etc.)
  3. Après avoir installé XCode, vous avez maintenant un compilateur et vous pouvez vous rendre sur la page MacPorts et rechercher le port que vous devez installer, après avoir installé le programme d'installation MacPorts .pkg

Caveat

Le système de ports ne fait pas nécessairement de vérification des dépendances, sauf si le port a été bien écrit. J'ai légèrement abordé le problème dans ce que signifie elibc_FreeBSD dans les superpositions de portage gentoo?


17

J'ai récemment commencé à utiliser Noah pour exécuter des binaires Linux sous macOS. Vous pouvez installer en utilisant homebrew ( brew install linux-noah/noah/noah). Vous devriez alors pouvoir faire ceci:

noah linux_binary

D'après mon expérience, le comportement du binaire correspond à ce que je vois sur ma machine Ubuntu.


bien que la commande ait fonctionné et qu'aucune erreur n'ait augmenté, mes binaires n'ont pas fonctionné comme prévu
techkuz

2

La seule façon dont je sais que cela peut se faire via une sorte de virtualisation . Par exemple, vous pouvez utiliser vagrant qui est une sorte de wrapper autour de la VBox d'Oracle ou du vmplayer de VMware. L'autre chose qui est parfois faite est de mettre cela dans un conteneur tel que docker .


2

Émulation matérielle

Pas directement! Oui, comme l'a dit Rocky, vous devez le virtualiser avec VirtualBox , VMWare Fusion , qui correspondra à votre type de processeur.

Il y a aussi Qemu , qui virtualisera différents types de CPU, par exemple Intel ou Power, etc.

Émulation logicielle

Il existe également une émulation de couche logicielle, avec des programmes comme WiNE , et mon propre programme d'émulateur (WiP). Ces deux émulent partiellement le système d'exploitation Windows en convertissant les appels système en POSIX.

La plupart des applications Linux fonctionneront sur OSX avec une recompilation source.


J'ai corrigé vos liens pour vous. Bienvenue à U & L.SE.
eyoung100
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.