запускайте програми Mac OS X в Linux


13

Відповідно до цієї статті у Вікіпедії :

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

тому я думав:

  • Чи є подібний додаток до Wine, але запускає програми Mac?

  • чи можна запускати програми Mac OS X на машині Linux ?


2
Єдиним способом було б створення ОС V X OS (наприклад, використання kvmабо Virtualbox). На жаль, з цим можуть виникнути проблеми з ліцензуванням - Apple не хоче, щоб ви працювали з їх ОС на апараті, що не належить Apple. Я не думаю, що вони навіть продають OS X на DVD (ви повинні отримати ОС X зі своїм Mac та оновити його через Інтернет, коли вони вам це скажуть).
cas

Спасибі! чи потрібно налаштувати віртуальну машину перед встановленням?
0x0584

Відповіді:


17

Дарлінг ( посилання ) - це проект, який має на меті стати аналогом вина. Наразі він запускає лише деякі програми OSX командного рядка. Станом на середину 2019 року він може запускати багато програм командного рядка, і, згідно з їхньою домашньою сторінкою, начебто, наближається до тієї точки, де він також може запускати деякі рудиментарні графічні програми. Він, ймовірно, ще не запустить те, що ви хочете, тільки якщо це не текстовий текст.

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

GNUStep реалізує API-какао NeXTStep і OS X. Це було шокуюче завершеним, коли я спробував це, з точки зору того, наскільки він здався здатним зробити порівняно з тим, як мало, здається, використовувати його в дикій природі. GNUStep працює лише на рівні вихідного коду (API), тому він працює, якщо програма є з відкритим кодом та використовує графічний інтерфейс Apple Cocoa GUI (НЕ "Aqua", який є власником). Це залежить від можливості компілювати та пов'язувати код.

Подумайте про API чи інтерфейс програмного програмування як щось на зразок приладової панелі автомобіля - все видно водію автомобіля, і ви можете сісти в чужий автомобіль і знайти його іншу інформаційну панель так само легко, як це зрозуміти.

Подумайте про ABI або Application Binary Interface як про двигун автомобіля - він може сильно відрізнятися між марками та моделями, і ви, ймовірно, не зможете торгувати своїм двигуном Chevy в Volvo дуже легко.

У цій аналогії Дарлінг поставив двигун Chevy в шасі Volvo, а компілювати з джерела було б як просто вийти з вашого Chevy і потрапити в Volvo. Одне зробити набагато простіше, ніж інше з точки зору програмістів.

Але Apple має деякі власні бібліотеки користувальницького інтерфейсу, яких ще ніхто не має. Якщо розробник використовував один із них (наприклад, Aqua), вам доведеться почекати і сподіватися, що Дарлінг виросте так, як це зробив Wine, або перенести його самостійно. Якщо не випущено вихідного коду, було б, якби мотор був зроблений настільки великим, що він не міг би поміститися в моторний відсік Volvo, або розроблений для підключення до автомобіля з приводом на переднє колесо, де у вашого Volvo був привід заднього колеса. Якщо хтось не є абсолютно божевільним маніяком (найкращим чином), у якого є місяці вільного часу та смішна кількість відданості, це, мабуть, не відбудеться.

Крім того, GNUStep не є на 100% завершеним в плані покриття API Cocoa, тому певне підключення до вибору, ймовірно, все ще буде потрібно для складних програм. І GNUStep не забезпечує систему збірки, еквівалентну xcode - тобто, якщо оригінальний розробник використовував виключно систему "build" XCode IDE, можливо, вам залишиться писати файли для цього. Це було для мене найприємніше, тому що, маючи досвід компіляції та зв’язування програмного забезпечення, важко вирвати корисну інформацію з такого формату, як .xcodeproj, з яким я не мав попереднього досвіду роботи.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.