1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Darling: Execute Aplicações do Mac OS X em Linux !

Discussão em 'Novidades GNU/Linux & *nix World' iniciada por Arucard1983, 8 de Dezembro de 2012. (Respostas: 39; Visualizações: 13150)

  1. Arucard1983

    Arucard1983 Power Member

    Uma extraordinária novidade para quem utiliza o Linux! :o:001::D

    Foi apresentado um novo projecto open-source que pretende a execução de software do Mac OS X em sistemas Linux, de forma similar ao Wine que correr programas do Windows em Linux, ao implementar as bibliotecas respectivas no Linux.
    Este novo software foi baptizado de Darling e consiste numa implementação open-source de uma extensão do kernel Linux para compatibilidade de módulos do Darwin, e um conjunto de ABI e frameworks que as aplicações do Mac OS X utilizam. :)

    http://darling.dolezel.info/en/Darling

    Por agora a compatibilidade de software é reduzida, mas para quem queira experimentar basta (por agora) transferir o código-fonte e compilar, tendo em atenção as dependências de pacotes, obtendo um mini-Mac OS X userland open-source apto a correr algum software do Mac OS X sem necessitar de instalar uma máquina virtual com o Mac OS X (e violar os termos de contrato de licença da Apple! :002::joker:).
     
  2. Gato Preto

    Gato Preto Moderador Felino
    Staff Member

    Um projeto interessante, mas e a implementação do Cocoa, como é que eles vão desencantar isso?
     
  3. Arucard1983

    Arucard1983 Power Member

    Este projecto só tem quatro meses, mas o autor principal (
    Luboš Doležel) afirma que sem ajuda da comunidade open-source a implementação de frameworks mais complexas como o Cocoa será bastante complicada. Por agora, a sua prioridade foi criar as extensões de kernel para correr directamente (algumas) aplicações gráficas e de linha de comando (a maioria), e trabalhar na primeira fase de um cross-compiler que permita compilar programas em Objective-C em programas híbridos que seriam assim executados em Linux (com a ajuda da framework do Darling).

    Até aqui nada de novo (o Winelib também tem um fim similar). A respeito do Darling, os componentes implementados foram até ao momento (em parte!):
    Um loader Mach-O e MacBinary
    Um tradutor Objective-C Runtime
    Um instalador MacArchive
    (Futuramente Instalador dmg e CoreData)
    Core Services
    Core Security
    Apple Event
    IOKit
    LLVM-GCC

    E daí até ao Cocoa ainda faltará um bom bocado! Mas se este projecto tiver pernas para andar, será possível correr algum software do Mac OS X em Linux!
     
  4. Arucard1983

    Arucard1983 Power Member

    Ao ler com atenção o site do autor é bem provável que utilize a excelente implementação do Cocoa API utilizando o GNUstep, que permite compilar código Objective-C e Cocoa, como um dos módulos do Darling.
    Desta forma, a primeira fase é a implementação dos módulos do kernel para o suporte Mach-O Darwin, e depois a implementação das classes Cocoa API será feita ao combinar o GNUstep no projecto. (E aí deverá correr e instalar as primeiras aplicações do Mac OS X em Linux :))

    A respeito do iOS e do Carbon API, o autor considera esta parte menos prioritária, dado a necessidade de implementar emuladores ARM e PPC para a execução deste gênero de programas (embora existam programas x86 escritas em Carbon no catálogo da Apple :002:).

    Vai ser bonito (conforme os comentário do Phoronix) quando for possível instalar e correr o Final Cut Pro 7 :001:, ou o Autocad 2013 (versão Mac) :001: em Linux. :o
     
  5. SimplyFCB

    SimplyFCB Power Member

    Vai ser bonito é o processo que a Apple vai fazer em cima disto.. Eles vão arranjar qualquer coisa para meter uns extras ao bolso
     
  6. Dogzilla

    Dogzilla Power Member

    Esperemos que seja um projecto com pernas para andar para a frente.
     
  7. Arucard1983

    Arucard1983 Power Member

    Se a Apple tentasse lançar algum processo, ela simplesmente não teria qualquer cabimento legal porque:
    O Gnustep e o Darling implementaram independentemente as API do sistema Mac OS X, da mesma forma que o Wine implementou as API do Windows NT :-D
    (Então porque diabo, projectos como o Cocotron ou o GNUstep que implementaram a esmagadora parte do Cocoa API, faltando o Darling implementar o Mach-O loader, que duram desde 2005 :-D nunca foram importunados pela Apple ?)
    Algumas porções do código-base do Mac OS X é open-source e utiliza tecnologias utilizadas pelo GNU/Linux, a criação do Darling/GNUstep é basicamente o retorno do investimento ao criar pelo menos um ambiente cross-plataform para portar programas Mac OS X para Linux e vice-versa (e vários programas do Mac OS X foram portados para o GNUstep sem que a Apple mandasse ao barulho).
    O que a Apple poderia fazer em termos legais, era manter o Mac App Store fechado e autenticável pelos sistemas Mac OS X "genuínos", se bem que esta loja não tenha o monopólio absoluto da venda de software para Mac. :002:
    O objectivo do Darling é correr aplicações Mac OS X que não estejam tão dependentes da Apple, mas não deixa de ser curioso é que muitos antigos utilizadores da plataforma Mac (que mudaram devido à evolução actual da plataforma) sempre gostariam de correr determinados softwares da era Mac pré-Store em máquinas Windows/Linux (O GNUstep já foi portado para o Windows :002:, mas portar o Darling para Windows só seria possível com o muLinux com o MinGW, e se....)

    Se a Apple começasse a armar em carapau de corrida, acabaria por dar publicidade gratuita ao Linux, ou até a Canonical que poderia lançar um panfleto publicitário do gênero: "Download Ubuntu, and execute everything... For free!"
    (O mais curioso é que o autor do Darling acredita que este projecto tornaria o Linux no Desktop, um sistema operativo universal ao correr aplicações do OS X, Windows e Linux! Falta é o Android :-D:002:)
    E depois a União Europeia ou outra agência reguladora concluiriam que o Darling não violaria a propriedade intelectual da Apple, porque o projecto simplemente não usurpou nenhuma das suas patentes!

    A questão actual é que aplicações do Mac OS X valerá a pena correr no Linux com o Darling. Tirando os ports directos do Linux/X11 para Mac OS X, os jogos aparentemente seriam um grande benefício porque o OS X utiliza o OpenGL, OpenCL e OpenAL da mesma forma que o Linux (embora o OS X criou frameworks do Cocoa de ligação designadas Core Graphics, Grand Central Dispatch (Que é open-source :joker:), Core Audio, respectivamente). No entanto, uma boa parte destes ports foram feitos através do Winelib ou do Cider (uma versão proprietária do Wine, designado Transgaming Cedega), e verifica-se em muitos casos que mais valeria correr o jogo Win32 em Mac OS X pelo Wine padrão (e que já implementou 80% da DirectX 10, mas a parte que falta são as funções de inicialização que somente agora estão a ser implementadas! :)) porque têm melhor performance!
    Já os jogos nativamente desenvolvidos em OpenGL já são mais aceitáveis, mas desconfia-se que teriam melhor performance em Linux com o Darling que o sistema operativo original (Devido à aquiescência do kernel Mach, que foi ultrapassado em desempenho pelo Linux 3.x).
    Mesmo os programas compilados para consola do Darwin correm muito melhor (até várias vezes!) no Linux!

    No entanto, a primeira fase após a conclusão do kernel space (emulação do Mach no Linux) é implementar o Cocoa API (juntar o GNUstep) e torná-lo compatível com software do qual não existe equivalência para Linux (ou quando a versão Windows no Wine tende a provocar problemas), como o Final Cut Pro 7 ou até o Autocad 2013 (corre mal ou não corre de todo no Wine, actualmente :() que teria melhores hipóteses de funcionar no Linux a versão OS X. (Ou talvez corria-se as duas versões no Linux para comparação! :002:)
    Com programas do Mac OS X como o Autocad, o Photoshop (a última versão executa bem no Wine) , o SolidWorks e outros a funcionarem no Darling com Linux, isto seria quase uma grande revolução no Desktop Linux :002:.
    Isto também significa que com uma grande participação da comunidade open-source será possível correr num período relativamente pequeno de tempo o cliente Steam para Linux, OS X e Windows no mesmo sistema Ubuntu (ou outra distro Linux) em simultâneo :001:

    De qualquer forma este projecto provocou uma estranha tempestade em fóruns na Internet, do qual existem até pessoas que queriam que o Darling também suportasse aplicações PPC e o Carbon API (algo que o autor afirma que a seu tempo serão feitos, nem que se utilize no início o QEMU-PPC para este fim, ou criar um emulador userland mais optimizado, ao estilo da biblioteca Houdini que executa aplicações Android ARM em sistemas Android x86 ).

    O Darling promete bastante, e espero que tenha sucesso porque possui até um maior potencial para ser mais compatível que o Wine em software de topo :). No entanto, a primeira aplicação que deverá ter o estatuto de Platina será o compilador LLVM-GCC que permitirá compilar código para o iOS e OS X a partir de máquinas Linux comuns (porque está quase funcional), e somente este passo será fundamental para a aceitação deste novo sub-sistema de compatibilidade para o Linux.
     
  8. Dogzilla

    Dogzilla Power Member

    Mas isto ainda está numa fase bastante embrionária, correcto? Ainda não há nenhuma aplicação a correr, de facto, ou há?
     
  9. Gaugamela

    Gaugamela Power Member

    Epá tem é que haver mais gente a contribuir para esse projecto. É algo brutal. Na minha cabeça sempre fez mais sentido um Wine para Mac que para Windows e hoje em dia ainda mais sentido faz porque todas as companhias suportam MacOS práticamente ao mesmo nível que Windows.
    Vamos ver o que sai daí.
     
  10. Arucard1983

    Arucard1983 Power Member

    Até ao momento corre apenas programas simples, especialmente programas de linha de comando do Mach/Darwin sem grande problema. Programas que usam a interface gráfica do Mac OS X, até ao momento só arriscaria pequenos demos ao estilo "Hello World", mas é possível fazer um slipstream das bibliotecas do GNUstep para correr alguns programas simples. :) O autor está a tentar implementar o Cocoa API de forma controlada, tendo em conta a parte do Darwin do qual quase todo o OS X depende dele. (Outra alternativa seria o Cocotron, que também suporta boa parte do Cocoa API): http://www.cocotron.org/
    Um artigo do Phoronix exemplifica a compilação de um pequeno programa em Cocoa API no Mac OS X, e depois a sua execução do mesmo programa no Linux (repare o uso do GNUstep runtime!):

    http://www.phoronix.com/scan.php?page=news_item&px=MTI0Njc

    Entretanto, a sua maior prioridade é completar os módulos do kernel para Linux, de modo a que resto da implementação do sistema não provoque dores de cabeça...

    Para os mais curiosos, corajosos que queiram experimentar, devem visitar o site do projecto:
    http://darling.dolezel.info/en/Darling

    Mas para compilar o software deverão ainda visitar o site:
    http://www.gnustep.org/

    Portanto, só terão que transferir e compilar o GNUstep em primeiro lugar, e depois transferir e compilar o Darling para habilitar a execução de binários Darwin/Mac OS X. (Na lista de dependências do Darling existe ainda um libbsd que refere a uma camada de compatibilidade do BSD para Linux :))

    Não devemos esquecer que este projecto só tem quatro meses e ainda está por definir convenientemente a estrutura básica desta camada de compatibilidade. Ao ler os comentários e artigos escassos (aparentemente, o lançamento oficial só foi ontem!) creio que a estrutura do Darling é o seguinte:

    Linux kernel + libc + X.org/Wayland
    libbsd + Mach-O + Darwin layer (uma extensão do kernel Linux)
    App Loader
    GNUstep Cocoa API libraries (Core Data, Core Security, ... )
    Programa Mac OS X/Darwin
     
  11. limoeirodobom

    limoeirodobom Banido

    Bom projecto e daria a uma pessoa com Linux a hipótese de correr software de Mac já que de Windows tem o Wine.
     
  12. Lacustre

    Lacustre Power Member

    Thank you darling! :-D

    Bom projecto.
     
  13. Dogzilla

    Dogzilla Power Member

    E Linux ficaria um híbrido, com hipótese de correr tudo e mais alguma coisa. :D
     
  14. Arucard1983

    Arucard1983 Power Member

    Eu creio que o melhor trocadilho seria imaginar a estória de dois programadores que queriam baptizar os respectivos programas para correr programas do Windows e do OS X no Linux. Enquanto um deles fala da portabilidade desses dois programas, o outro programador meio distraído lembra-se de abrir uma garrafa de vinho tinto para um copo como o logótipo do Linux, e sugere:
    "Wine, Darling ?"
    :-D

    Anedotas aparte, eu pesquisei a história da emulação do Mac OS ao longo dos tempos, e encontrei no meio de muita confusão os seguintes projectos/programas concretos que tiveram alguma relevância.

    A execução de programas Mac OS Classic/X noutros sistemas ocorreria por três maneiras:
    1º Criar um máquina com hardware compatível para correr o sistema operativo da Apple com o menor número de modificações possível.
    Aí temos a evolução dos Mac Clones que foram até licenciados pela Apple na altura do OS 6/7 até que o Steve Jobs terminou o licenciamento a tempo de lançar o OS 8. Curiosamente, a Apple ainda participou num projecto promovido pela Datalight para portar o Mac OS 7 para PC em 1992 8|, do qual correria em cima de uma versão de 32-bit do DR-DOS (uma versão melhorada do MS-DOS que até suportava nativamente multitasking cooperativo :002:), mas passado um ano, acabou por se tornar mais uma curiosidade acessível a poucos. (A Apple abandonou o projecto devido a um estudo interno que desaconselhava seguir este caminho)
    Noutro extremo, estão os Hackintosh que correm versões modificadas do Mac OS X.

    2º Correr o sistema operativo da Apple numa máquina virtual/emulador.
    Temos os exemplos do Basilisk II, e Sheepsheaver que tentam correr o Mac OS 7/8/9 em máquinas modernas e vários sistemas operativos.
    No caso do Mac OS X PPC, o único emulador realmente funcional (e cujo desenvolvimento foi abandonado, porque a Apple mudou de arquitectura) é o PearPC que corre algumas versões do Mac OS X, e determinados sistemas Unix/Linux PPC. Este programa contêm pelo menos um excelente emulador PPC/X86 porque suporta multicore e com um i5/i7 é possível emular um G4 a 1 GHz, com melhor performance que o qemu-ppc. Curiosamente, o PearPC poderia ser utilizado legalmente caso este programa fosse executado num Mac X86, com vista a correr o software antigo.
    As versões actuais do Mac OS X correm em máquinas virtuais x86 sem grande necessidade de modificações (e problemas de licenciamento adicionais).

    3º Criar uma camada de compatibilidade das bibliotecas do Mac OS Classic/X para outros sistemas operativos.
    Existiram pelo menos três/quatro programas que contornavam o problema de licenciamento ao implementar as API, embora num dos casos foi obra da própria Apple! (E até tem reminescências do Star Trek Project :002:)
    O primeiro exemplo foi o software Executor (inicialmente proprietário, mas passado vários anos foi liberado como open-source, em 2008) que em 1990 até 1995 permitiu a instalação de algum software Mac OS 6/7 em máquinas DOS/Windows e posteriormente Linux (foi um dos primeiros programas comerciais a ser portado para o Linux :joker:). Este programa simulava o desktop do Mac OS e implementava uma parte das API do Mac OS Old World (antes do System 7.1), permitindo a execução de algum software que não necessita-se de funcionalidades adicionais que o programa não tinha. Como foi abandonado após a versão 2.1, hoje em dia não têm maior utilidade que uma mera curiosidade histórica.

    O próximo pacote foi obra da Apple (aproveitando a primeira incursão no mundo Unix, ao criar a versão AUX para determinados Mac que podiam arrancar quer o Mac OS Classic, ou lançar o Unix a partir do momento de arranque) que foi um port da versão 7.5 para vários UNIX (Linux não foi o contemplado :002:), num programa designado por Machintosh Application Environment do qual até durou três versões (até ao regresso de Steve Jobs) principais.
    O MAE era na verdade mais parecido com o Darling do que outra coisa qualquer :002:, porque consistia num conjunto de ferramentas e bibliotecas de compatibilidade que permitiam a execução de software Mac OS 7 em sistemas Unix (como o HP-UX, Solaris 9,...), contendo um emulador 68k, um modo Desktop compacto inspirado na versão 7.5, em algumas ferramentas de portabilidade (como a integração do clipboard, embora exigisse o uso de um conversor que podia ser utilizado a partir de um conjunto de utilitários situados na borda da janela do Desktop virtual:
    [​IMG]

    Com a passagem para o Mac OS X que era ele próprio baseado em Unix, derivado do OpenStep, criou pelo menos dois projectos que pretendiam compatibilizar o kernel Mach/OpenBSD (Darwin) com outros sistemas Unix/Linux.

    O exemplo mais antigo foi um projecto que criou uma camada de compatibilidade que permitiu a execução directa de programas Darwin (especialmente programas para a linha de comando) no BSD, e funcionou adequadamente até à versão OS X 10.3 (sem gráficos!), embora o projecto acabou por descarrilar dado a reduzida aceitação quer do projecto, ou do BSD em si.
    Um projecto similar para Linux foi o SoftPear que era mais um emulador PPC para correr programas Mach-O/Darwin em sistemas Linux.

    Por outro lado, surgiram dois projectos que optarem por uma segunda via: criar um cross-compiler para portar software Mac OS X (escrito em Cocoa e Carbon) para sistemas Linux/Windows: Os dois melhores exemplos são o GNUstep, Ringo e o Cocotron.
    O verdadeiro segundo exemplo (e para Linux) é o "pai" do Darling :joker:: O primeiro cross-compiler (incompleto) e Mach-O loader designado por Maloader, escrito por Shinichiro Hamaji, que seria o ponto de partida para a criação do Darling por um croata (Dolezel).

    Existindo o Darling, o GNUstep e Cocotron com o potencial para criar uma aplicação que habilite a execução de ssoftware OS X em Linux, era bem vindo se existisse maior contribuição da comunidade e um verdadeiro site para o projecto similar ao Wine (incluindo uma base de dados de aplicações!) :)
    Este programa só ganhará visibilidade quando suportar os principais programas da plataforma, como os CAD's, Photoshop e companhia limitada. Por agora, terminarei o discurso para separar do outro assunto que seriam os problemas da implementação das API. :002:
     
  15. SimplyFCB

    SimplyFCB Power Member

    Eu também espero que dê certo, embora não precise desta nova "habilidade".

    Acho que se for bem desenvolvida (tal como o wine pderia ser, mesmo nao tendo muita razão de queixa) poderá "abrir os olhos" às grandes empresas... As pessoas passavam a conhecer a soluçao LINUX para desktop e haveria muito mais interesse a nível de suporte de aplicações como Photoshop, AutoCAD, etc.

    Assim não teriamos que pagar o valor absurdo de uma licença do Windows + Office + tretas da MS ou mesmo ainda mais absurdo como dar mais 500 paus por ter uma maçã atrás...
     
  16. Arucard1983

    Arucard1983 Power Member

    A primeira grande aplicação do Darling será precisamente a compilação de software dependente do framework Cocoa/Carbon para aplicações Linux nativas, de forma mais funcional que o GNUstep, e inclusive a compilação de software Linux/OS X para binários Darwin directamente a partir do Linux (cross-compiling), o que significa que torna-se possível escrever software para o Mac OS X e iOS a partir de máquinas Linux. :)

    Outro teste que a comunidade open-source sonha é que fosse possível testar o Steam das três plataformas numa máquina Linux, do qual traduzo o seu comentário:
    "Com isso poderia usar no Ubuntu as três versões do Steam. Utilizo a versão Linux (nativa) para correr bons jogos e ajudar a comunidade FOSS (software livre e open-source), a versão OS X para solidariedade :-D e a versão Windows para o resto."
     
  17. Gaugamela

    Gaugamela Power Member

    Se existem pessoas que dão 500 paus para ter uma maçã atrás não é por causa do software. É para ter algo bonito, brilhante e que funciona sem ter que andar com mil e um tweaks.
     
  18. Arucard1983

    Arucard1983 Power Member

    Certos softwares instalados no Mac OS X podem provocar problemas de estabilidade, não é por ser um Mac que garanta estabilidade garantidamente. As últimas versões do Linux e do Windows já são tão robustas com o OS X, mas nenhum deles é à prova de tudo, basta um driver mal feito para provocar o desastre.
     
  19. Dogzilla

    Dogzilla Power Member

    Eu cá adoro Mac OS X e se não tenho um é porque o dinheiro nestes tempos não chega para tudo. Se o comprasse, seria certamente pelo meu gosto por Mac OS e não porque o portátil é bonito. Há muitos bonitos actualmente.
     
  20. Gaugamela

    Gaugamela Power Member

    Mas tu és um daqueles que conhece tecnologia. Vai perguntar a uma míuda qualquer que mal saiba mexer em computadores se gostava de ter um Mac e porquê.
    Tens imensa gente que compra Mac por ser Mac. O MacOS é interessante óbviamente. Mas comparado com Linux? Em termos visuais e de funcionalidades não fica á frente embora óbviamente tenha mais dedveloper support.
     

Partilhar esta Página