uruchom aplikacje Mac OS X w systemie Linux


13

Zgodnie z tym artykułem z Wikipedii :

OS X to seria systemów operacyjnych opartych na interfejsie graficznym Unix opracowanych i sprzedawanych przez Apple Inc.

więc myślałem:

  • czy jest jakaś aplikacja podobna do Wine, ale działa na komputerach Mac?

  • czy można uruchamiać aplikacje Mac OS X na komputerze z systemem Linux ?


2
Jedynym sposobem byłoby utworzenie maszyny wirtualnej OS X (np. Przy użyciu kvmlub Virtualbox). Niestety wystąpiłyby przy tym problemy licencyjne - Apple nie chce, abyś działał na ich systemach operacyjnych innych niż Apple. Nie sądzę, żeby nawet sprzedawali OS X na DVD (powinieneś dostać OS X z komputerem Mac i uaktualnić go przez Internet, kiedy ci to każą).
cas

dzięki! powinienem skonfigurować maszynę wirtualną przed instalacją?
0x0584

Odpowiedzi:


17

Darling ( link ) to projekt, którego celem jest zbliżenie się do wina. Obecnie jednak działa tylko niektóre programy OSX wiersza polecenia. Od połowy 2019 r. Może uruchamiać wiele programów wiersza polecenia i zgodnie z ich stroną główną wydaje się zbliżać do punktu, w którym może również uruchomić podstawowe oprogramowanie graficzne. Prawdopodobnie nie będzie jeszcze działał tak, jak chcesz, chyba że jest oparty na tekście.

Tak długo, jak twórcy programu OS X opublikują swój kod źródłowy i użyją bibliotek międzyplatformowych (takich jak QT, GTK, X11, GNUStep lub WxWidgets), powinieneś być w stanie ponownie skompilować program OS X dla systemu Linux. OS X i Linux są znacznie bardziej kompatybilne na poziomie API niż na poziomie ABI.

GNUStep implementuje interfejsy API Cocoa NeXTStep i OS X. Był szokująco kompletny, kiedy go wypróbowałem, pod względem tego, jak wiele mogło to zrobić w porównaniu do tego, jak mało wydaje się używać go na wolności. GNUStep działa tylko na poziomie kodu źródłowego (API), więc działa, jeśli program jest open source i używa GUI Apple Cocoa (NIE „Aqua”, który jest zastrzeżony). To zależy od możliwości skompilowania i połączenia kodu.

Pomyśl o interfejsie API lub interfejsie programowania aplikacji jako o desce rozdzielczej samochodu - wszystko jest widoczne dla kierowcy samochodu, a możesz wsiąść do samochodu innej osoby i łatwo znaleźć jego inną deskę rozdzielczą.

Pomyśl o ABI, czyli Application Binary Interface, o silniku samochodu - może się znacznie różnić w zależności od marki i modelu i prawdopodobnie nie będziesz w stanie łatwo wymienić swojego silnika Chevy na Volvo.

Kochanie w tej analogii umieszczałby silnik Chevy w podwoziu Volvo, a kompilacja ze źródła byłaby jak wysiadanie z Chevy i wsiadanie do Volvo. Jedno jest o wiele prostsze do zrobienia niż drugie z perspektywy programisty.

Ale Apple ma zastrzeżone biblioteki interfejsów użytkownika, których nikt inny też nie ma. Jeśli programista użył jednego z nich (takiego jak Aqua), musisz poczekać i mieć nadzieję, że Darling dorośnie tak jak Wine, lub sam go przenieść. Jeśli nie opublikowano kodu źródłowego, wyglądałoby to tak, jakby silnik był tak duży, że nie zmieściłby się w komorze silnika Volvo lub został zaprojektowany do połączenia z samochodem z napędem na przednie koła, na którym Twoje Volvo było napędem na tylne koła. Chyba, że ​​ktoś jest absolutnie szalonym maniakiem (w najlepszy możliwy sposób), który ma miesiące wolnego czasu i absurdalną ilość poświęcenia, prawdopodobnie się nie wydarzy.

Ponadto GNUStep nie jest w 100% kompletny pod względem zasięgu API Cocoa, więc pewna część obuwia będzie prawdopodobnie nadal konieczna w przypadku złożonych programów. A GNUStep nie zapewnia systemu kompilacji równoważnego z kodem x - to znaczy, jeśli pierwotny programista używał wyłącznie systemu „kompilacji” XCode IDE, możesz napisać dla niego pliki makefile. To była dla mnie najbardziej frustrująca część, ponieważ chociaż mam doświadczenie w kompilowaniu i łączeniu oprogramowania, ciężko jest wydobyć przydatne informacje z formatu takiego jak .xcodeproj, z którym nie miałem wcześniejszego doświadczenia.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.