GNU/Linux >> Znalost Linux >  >> Linux

Linux – Spouštět aplikace Mac OS X na Linuxu?

Podle tohoto článku na Wikipedii:

OS X je řada založených na Unixu operační systémy s grafickým rozhraním vyvinuté a prodávané společností Apple Inc.

tak jsem si myslel:

  • existuje nějaká podobná aplikace jako Wine, ale spouští aplikace pro Mac?

  • je to možné na pro spouštění aplikací Mac OS X v Linuxu stroj?

Přijatá odpověď:

Darling (odkaz) je projekt, jehož cílem je stát se analogií vína. Aktuálně však spouští pouze některé programy OSX s příkazovým řádkem. Od poloviny roku 2019 může spouštět mnoho programů příkazového řádku a podle jejich domovské stránky se zdá, že se blíží k bodu, kdy může spouštět také základní grafický software. Pravděpodobně zatím nespustí to, co chcete, pokud to není textové.

Dokud vývojáři programu OS X zveřejnili svůj zdrojový kód a používali multiplatformní knihovny (jako QT, GTK, X11, GNUStep nebo WxWidgets), měli byste být schopni znovu zkompilovat program OS X pro linux. OS X a Linux jsou mnohem kompatibilnější na úrovni API než na úrovni ABI.

GNUStep implementuje rozhraní Cocoa API NeXTStepu a OS X. Když jsem to zkoušel, bylo to překvapivě kompletní, pokud jde o to, jak moc se zdálo být schopné dělat, oproti tomu, jak málo se zdálo, že je používá ve volné přírodě. GNUStep funguje pouze na úrovni zdrojového kódu (API), takže funguje, pokud je program open-source a používá Apple Cocoa GUI (NE „Aqua“, které je proprietární). Záleží na schopnosti zkompilovat a propojit kód.

Rozhraní API neboli aplikační programovací rozhraní si představte jako něco jako palubní desku auta – vše je viditelné pro řidiče auta a vy můžete nastoupit do auta někoho jiného a stejně snadno zjistit jeho jinou palubní desku.

Představte si ABI, neboli aplikační binární rozhraní, jako motor automobilu – může se velmi lišit mezi značkami a modely a pravděpodobně nebudete moci vyměnit svůj motor Chevy za Volvo velmi snadno.

Darling by v této analogii dával motor Chevy do podvozku Volva a kompilace ze zdroje by byla jako prostě vystoupit z Chevy a nasednout do Volva. Jeden je z pohledu programátorů mnohem jednodušší než druhý.

Ale Apple má některé proprietární knihovny uživatelského rozhraní, které nikdo jiný nemá. Pokud vývojář použil jeden z nich (například Aqua), budete muset počkat a doufat, že Darling vyroste jako Wine, nebo jej přeneste sami. Pokud není zveřejněn zdrojový kód, bylo by to, jako kdyby byl motor vyroben tak velký, že by se nevešel do motorového prostoru Volva, nebo navržený pro připojení k vozu s pohonem předních kol, kde mělo vaše Volvo pohon zadních kol. Pokud někdo není absolutně šílený maniak (tím nejlepším možným způsobem), který má měsíce volného času a směšné množství oddanosti, je nepravděpodobné, že se to stane.

Související:Linux – Windows a Linux používají stejný profil Firefoxu?

Navíc GNUStep není 100% kompletní, pokud jde o pokrytí Cocoa API, takže u komplexních programů bude pravděpodobně stále nutné nějaké okukování. A GNUStep neposkytuje systém sestavení ekvivalentní xcode – to znamená, že pokud původní vývojář používal výhradně systém „build“ IDE XCode, může se stát, že pro něj budete psát makefiles. To pro mě byla nejvíce frustrující část, protože i když mám zkušenosti s kompilací a propojováním softwaru, je těžké získat užitečné informace z formátu, jako je .xcodeproj, se kterým nemám žádné předchozí zkušenosti.


Linux
  1. Spusťte virtuální počítač Linux v Podman

  2. Spouštíte 32bitovou aplikaci pod 64bitovým Linuxem?

  3. Cross-compiler pro Linux na Mac OS X?

  1. Existuje nějaký ekvivalent vína pro spouštění aplikací pro Mac?

  2. dd výkon na Mac OS X vs. Linux

  3. Spusťte příkaz cd jako superuživatel v Linuxu

  1. Linux – Jak spustit bootloader z Linuxu?

  2. Je lepší duální bootování nebo spuštění virtuálního počítače?

  3. Android – Je možné spouštět aplikace pro Android na (normálním) Linuxu?