exécuter des applications Mac OS X sur Linux

13

Selon cet article Wikipedia :

OS X est une série de systèmes d' exploitation d'interface graphique basés sur Unix développés et commercialisés par Apple Inc.

donc je pensais:

  • existe-t-il une application similaire à Wine mais qui exécute des applications Mac?

  • est-il possible d'exécuter des applications Mac OS X sur une machine Linux ?

0x0584
la source
2
La seule façon serait de créer une VM OS X (par exemple en utilisant kvmou Virtualbox). Malheureusement, cela entraînerait des problèmes de licence - Apple ne veut pas que vous exécutiez son système d'exploitation sur du matériel non Apple. Je ne pense pas qu'ils vendent même plus OS X sur DVD (vous êtes censé obtenir OS X avec votre Mac et le mettre à niveau sur Internet quand ils vous le disent).
cas
Merci! dois-je configurer la machine virtuelle avant l'installation?
0x0584

Réponses:

17

Darling ( link ) est un projet qui vise à devenir analogue au vin. Actuellement, il n'exécute cependant que certains programmes OSX en ligne de commande. À la mi-2019, il peut exécuter de nombreux programmes en ligne de commande et, selon leur page d'accueil, il semble approcher le point où il peut également exécuter des logiciels graphiques rudimentaires. Il n'exécutera probablement pas ce que vous voulez pour l'instant, à moins qu'il ne soit basé sur du texte.

Tant que les développeurs du programme OS X ont publié leur code source et utilisé des bibliothèques multiplateformes (telles que QT, GTK, X11, GNUStep ou WxWidgets), vous devriez pouvoir recompiler un programme OS X pour Linux. OS X et Linux sont beaucoup plus compatibles au niveau API qu'au niveau ABI.

GNUStep implémente les API Cocoa de NeXTStep et OS X. Il était incroyablement complet lorsque je l'ai essayé, en termes de ce qu'il semblait capable de faire par rapport au peu de choses qui semblent l'utiliser dans la nature. GNUStep ne fonctionne qu'au niveau du code source (API), donc cela fonctionne si un programme est open-source et utilise la GUI Cocoa d'Apple (PAS "Aqua" qui est propriétaire). Cela dépend de pouvoir compiler et lier le code.

Considérez l'API ou l'interface de programmation d'application comme quelque chose comme le tableau de bord d'une voiture - tout est visible pour le conducteur de la voiture, et vous pouvez monter dans la voiture de quelqu'un d'autre et trouver son tableau de bord différent tout aussi facile à comprendre.

Considérez l'ABI, ou Application Binary Interface, comme le moteur de la voiture - il peut varier considérablement entre les marques et les modèles, et vous ne pourrez probablement pas échanger votre moteur Chevy contre une Volvo très facilement.

Dans cette analogie, Darling mettrait le moteur Chevy dans un châssis Volvo, et la compilation à partir de la source reviendrait à sortir de votre Chevy et à monter dans la Volvo. L'un est beaucoup plus simple à faire que l'autre du point de vue des programmeurs.

Mais Apple possède des bibliothèques d'interface utilisateur propriétaires que personne d'autre ne possède également. Si le développeur en a utilisé un (comme Aqua), vous devrez attendre et espérer que Darling grandira comme Wine, ou le porter vous-même. S'il n'y a pas de code source publié, ce serait comme si le moteur était si gros qu'il ne pouvait pas rentrer dans le compartiment moteur de Volvo, ou conçu pour se connecter à une voiture à traction avant où votre Volvo était à traction arrière. À moins que quelqu'un ne soit un fou complètement fou (de la meilleure façon possible) qui ait des mois de temps libre et un dévouement ridicule, cela ne risque pas de se produire.

De plus, GNUStep n'est pas complet à 100% en termes de couverture des API Cocoa, donc un certain cirage de chaussures sera probablement encore nécessaire pour des programmes complexes. Et GNUStep ne fournit pas de système de construction équivalent à xcode - c'est-à-dire que si le développeur d'origine utilisait exclusivement le système de «construction» de l'IDE XCode, vous pourriez être amené à écrire des makefiles pour cela. C'était la partie la plus frustrante pour moi, car même si j'ai de l'expérience dans la compilation et la liaison de logiciels, il est difficile de lutter contre des informations utiles dans un format comme un .xcodeproj avec lequel je n'ai aucune expérience de backend.

Wyatt8740
la source