запускать приложения Mac OS X в Linux


13

Согласно этой статье в Википедии :

OS X - это серия операционных систем с графическим интерфейсом на основе Unix, разработанная и продаваемая Apple Inc.

так я думал

  • Есть ли какое-либо подобное приложение для Wine, но запускает приложения Mac?

  • это возможно при запускать Mac OS X приложений на Linux машине?


2
Единственный способ - создать виртуальную машину OS X (например, с помощью kvmили Virtualbox). К сожалению, с этим могут возникнуть проблемы с лицензированием - Apple не хочет, чтобы вы работали с их ОС на оборудовании не от Apple. Я не думаю, что они даже продают OS X на DVD (вы должны получить OS X с вашим Mac и обновить его через Интернет, когда они скажут вам).
Cas

Благодарность! настроить виртуальную машину перед установкой?
0x0584

Ответы:


17

Darling ( ссылка ) - это проект, который стремится стать аналогом вина. В настоящее время он запускает только некоторые программы OSX для командной строки. По состоянию на середину 2019 года, он может запускать многие программы командной строки, и в соответствии с их домашней страницей, похоже, приближается к точке, где он может также запускать некоторое элементарное графическое программное обеспечение. Вероятно, пока он не будет работать так, как вы хотите, если только он не основан на тексте

Пока разработчики программы для OS X выпустили свой исходный код и использовали кроссплатформенные библиотеки (такие как QT, GTK, X11, GNUStep или WxWidgets), вы сможете повторно скомпилировать программу OS X для linux. OS X и Linux намного более совместимы на уровне API, чем на уровне ABI.

GNUStep реализует API-интерфейсы Cocoa от NeXTStep и OS X. Когда я попробовал, он был шокирующе завершен с точки зрения того, как много он способен сделать по сравнению с тем, как мало он использует в дикой природе. GNUStep работает только на уровне исходного кода (API), поэтому он работает, если программа имеет открытый исходный код и использует графический интерфейс Apple Cocoa (НЕ «Aqua», который является частной). Это зависит от возможности компилировать и связывать код.

Думайте об API или интерфейсе прикладного программирования как о приборной панели автомобиля - все видно водителю автомобиля, и вы можете сесть в чужую машину и найти его другую приборную панель, которую так же легко понять.

Думайте о ABI, или двоичном интерфейсе приложения, как о двигателе автомобиля - он может сильно различаться между марками и моделями, и вы, вероятно, не сможете легко обменять свой двигатель Chevy на Volvo.

Дорогой в этой аналогии поместил бы двигатель Chevy в шасси Volvo, а компиляция из исходных текстов была бы равносильна тому, чтобы просто выйти из своего Chevy и попасть в Volvo. Одно гораздо проще сделать, чем другое с точки зрения программистов.

Но у Apple есть несколько проприетарных библиотек пользовательского интерфейса, которых тоже никто не имеет. Если разработчик использовал один из них (например, Aqua), вам придется подождать и надеяться, что Darling вырастет, как Wine, или портировать его самостоятельно. Если исходный код не выпущен, это было бы так, как если бы двигатель был сделан настолько большим, что он не мог поместиться в моторном отсеке Volvo, или был разработан для подключения к автомобилю с передним приводом, где у вашего Volvo был задний привод. Если кто-то не является абсолютно безумным маньяком (в лучшем виде), у которого есть месяцы свободного времени и нелепое количество самоотдачи, это вряд ли произойдет.

Кроме того, GNUStep не завершен на 100% с точки зрения охвата API-интерфейсов Cocoa, поэтому для сложных программ, вероятно, все еще потребуется некоторая чистка. А GNUStep не предоставляет систему сборки, эквивалентную xcode - то есть, если первоначальный разработчик использовал исключительно систему сборки XCode IDE, вы можете оставить для нее файлы сборки. Это была самая неприятная часть для меня, так как, хотя у меня есть опыт компиляции и компоновки программного обеспечения, трудно вывести полезную информацию из такого формата, как .xcodeproj, с которым у меня ранее не было опыта работы с бэкэндом.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.