Führen Sie Mac OS X-Anwendungen unter Linux aus

13

Laut diesem Wikipedia- Artikel :

OS X ist eine Reihe von Unix-basierten Betriebssystemen für grafische Benutzeroberflächen, die von Apple Inc. entwickelt und vermarktet wurden.

also dachte ich:

  • Gibt es eine ähnliche Anwendung wie Wine, auf der jedoch Mac-Anwendungen ausgeführt werden?

  • Ist es möglich , Mac OS X-Anwendungen auf einem Linux- Computer auszuführen ?

0x0584
quelle
2
Die einzige Möglichkeit wäre, eine OS X-VM zu erstellen (z . B. mit kvmoder Virtualbox). Leider würde dies zu Lizenzproblemen führen. Apple möchte nicht, dass das Betriebssystem auf Hardware von Drittanbietern ausgeführt wird. Ich glaube nicht, dass sie OS X mehr auf DVD verkaufen (Sie sollten OS X mit Ihrem Mac herunterladen und über das Internet aktualisieren, wenn Sie dazu aufgefordert werden).
Cas
Vielen Dank! soll ich die virtuelle Maschine vor der Installation konfigurieren?
0x0584

Antworten:

17

Darling ( Link ) ist ein Projekt, das darauf abzielt, analog zu Wein zu werden. Derzeit werden jedoch nur einige OSX-Befehlszeilenprogramme ausgeführt. Ab Mitte 2019 können viele Befehlszeilenprogramme ausgeführt werden, und laut ihrer Homepage scheint sie sich dem Punkt zu nähern, an dem auch eine rudimentäre grafische Software ausgeführt werden kann. Es wird wahrscheinlich noch nicht ausgeführt, was Sie wollen, es sei denn, es basiert auf Text.

Solange die Entwickler des OS X-Programms ihren Quellcode veröffentlicht und plattformübergreifende Bibliotheken (wie QT, GTK, X11, GNUStep oder WxWidgets) verwendet haben, sollten Sie in der Lage sein, ein OS X-Programm für Linux neu zu kompilieren. OS X und Linux sind auf API-Ebene viel kompatibler als auf ABI-Ebene.

GNUStep implementiert die Cocoa-APIs von NeXTStep und OS X. Es war schockierend vollständig, als ich es ausprobierte, in Bezug darauf, wie viel es zu tun schien und wie wenig es in freier Wildbahn zu verwenden scheint. GNUStep funktioniert nur auf der Ebene des Quellcodes (API). Es funktioniert also, wenn ein Programm Open Source ist und die Cocoa-GUI von Apple verwendet (NICHT "Aqua", das proprietär ist). Dies hängt davon ab, ob Sie den Code kompilieren und verknüpfen können.

Stellen Sie sich die API oder Application Programming Interface als so etwas wie das Armaturenbrett eines Autos vor - alles ist für den Fahrer des Autos sichtbar, und Sie können in das Auto eines anderen einsteigen und sein anderes Dashboard finden, das genauso einfach herauszufinden ist.

Stellen Sie sich das ABI oder Application Binary Interface als Motor des Autos vor - es kann zwischen Marken und Modellen sehr unterschiedlich sein, und Sie werden Ihren Chevy-Motor wahrscheinlich nicht so einfach gegen einen Volvo eintauschen können.

Darling würde in dieser Analogie den Chevy-Motor in das Chassis eines Volvo einbauen, und das Kompilieren aus der Quelle wäre, als würde man einfach aus dem Chevy aussteigen und in den Volvo einsteigen. Eines ist aus Sicht der Programmierer viel einfacher als das andere.

Aber Apple hat einige proprietäre Benutzeroberflächenbibliotheken, die auch niemand anderes hat. Wenn der Entwickler eines davon verwendet hat (z. B. Aqua), müssen Sie warten und hoffen, dass Darling wie Wine aufwächst, oder es selbst portieren. Wenn kein Quellcode veröffentlicht wird, wäre der Motor so groß, dass er nicht in den Motorraum des Volvo passt, oder für den Anschluss an ein Auto mit Vorderradantrieb, bei dem Ihr Volvo über einen Hinterradantrieb verfügt. Es ist unwahrscheinlich, dass jemand ein absolut verrückter Verrückter ist (auf die bestmögliche Weise), der monatelange Freizeit und lächerlich viel Engagement hat.

Darüber hinaus ist GNUStep in Bezug auf die Abdeckung der Cocoa-APIs nicht zu 100% vollständig, sodass für komplexe Programme wahrscheinlich noch ein wenig Schuhmacher erforderlich sein wird. Und GNUStep bietet kein Xcode-äquivalentes Build-System. Wenn der ursprüngliche Entwickler ausschließlich das "Build" -System der XCode-IDE verwendet, müssen Sie möglicherweise Makefiles dafür schreiben. Dies war der frustrierendste Teil für mich, da ich zwar Erfahrung mit dem Kompilieren und Verknüpfen von Software habe, es jedoch schwierig ist, nützliche Informationen aus einem Format wie einem .xcodeproj herauszuholen, mit dem ich noch keine Erfahrung im Backend habe.

Wyatt8740
quelle