executar aplicativos do Mac OS X no Linux

13

De acordo com este artigo da Wikipedia :

OS X é uma série de sistemas operacionais de interface gráfica baseados em Unix , desenvolvidos e comercializados pela Apple Inc.

então eu estava pensando:

  • existe algum aplicativo semelhante ao Wine, mas executa aplicativos Mac?

  • é possível executar aplicativos do Mac OS X em uma máquina Linux ?

0x0584
fonte
2
A única maneira seria criar uma VM do OS X (por exemplo, usando kvmou Virtualbox). Infelizmente, haveria problemas de licenciamento ao fazer isso - a Apple não quer que você execute o SO em hardware que não seja da Apple. Eu acho que eles nem vendem mais o OS X em DVD (você deve obter o OS X com o seu Mac e atualizá-lo pela Internet quando eles pedirem).
21716
obrigado! devo configurar a máquina virtual antes de instalar?
0x0584

Respostas:

17

Darling ( link ) é um projeto que visa se tornar análogo ao vinho. Atualmente, ele executa apenas alguns programas OSX de linha de comando. Em meados de 2019, ele pode executar muitos programas de linha de comando e, de acordo com a página inicial, parece estar se aproximando do ponto em que também pode executar algum software gráfico rudimentar. Provavelmente ainda não executará o que você deseja, a menos que seja baseado em texto.

Enquanto os desenvolvedores do programa OS X liberarem seu código-fonte e usarem bibliotecas de plataforma cruzada (como QT, GTK, X11, GNUStep ou WxWidgets), você poderá recompilar um programa OS X para Linux. OS X e Linux são muito mais compatíveis no nível da API do que no nível ABI.

O GNUStep implementa as APIs de cacau do NeXTStep e do OS X. Estava chocantemente completo quando eu tentei, em termos de quanto ele parecia capaz de fazer e de quão pouco parece usá-lo na natureza. O GNUStep funciona apenas no nível do código-fonte (API), por isso funciona se um programa é de código aberto e usa o Cocoa GUI da Apple (NÃO "Aqua", que é proprietário). Depende da capacidade de compilar e vincular o código.

Pense na API, ou na interface de programação de aplicativos, como algo como o painel de um carro - tudo é visível para o motorista do carro, e você pode entrar no carro de outra pessoa e encontrar o painel diferente com a mesma facilidade.

Pense na ABI, ou Application Binary Interface, como o motor do carro - pode variar muito entre marcas e modelos, e você provavelmente não poderá trocar seu motor Chevy em um Volvo com muita facilidade.

Darling, nessa analogia, colocaria o motor Chevy no chassi de um Volvo, e compilar a partir da fonte seria como sair do seu Chevy e entrar no Volvo. Um é muito mais simples de fazer do que o outro da perspectiva dos programadores.

Mas a Apple tem algumas bibliotecas proprietárias de interface do usuário que ninguém mais possui também. Se o desenvolvedor usou um desses (como o Aqua), você terá que esperar e torcer para que Darling cresça como o Wine ou faça você mesmo. Se não houver código-fonte divulgado, seria como se o motor fosse tão grande que não cabesse no compartimento do motor da Volvo ou fosse projetado para conectar-se a um carro com tração dianteira onde seu Volvo era com tração traseira. A menos que alguém seja um maníaco absolutamente insano (da melhor maneira possível) que tenha meses de tempo livre e uma quantidade ridícula de dedicação, não é provável que isso aconteça.

Além disso, o GNUStep não é 100% completo em termos de cobertura das APIs do cacau, portanto, provavelmente ainda será necessário um pouco de troca de sapato para programas complexos. E o GNUStep não fornece um sistema de compilação equivalente ao xcode - ou seja, se o desenvolvedor original usou exclusivamente o sistema de "compilação" do XCode IDE, você poderá escrever makefiles para ele. Essa foi a parte mais frustrante para mim, pois, embora tenha experiência em compilar e vincular software, é difícil extrair informações úteis de um formato como um .xcodeproj com o qual não tenho experiência anterior em back-end.

Wyatt8740
fonte