Existe uma maneira de executar um binário Linux no macOS?

16

Existe uma maneira de executar um binário Linux no macOS? Eu tentei rodar um binário, mas ele disse que não é executável.

Saeid
fonte
Isso não vai funcionar. O kernel OSX é um pouco diferente de um kernel Linux.
ott--
Bem, o OS X não usa binários elf, por isso é um pouco como tentar executar o Windows .exe. No entanto, uma breve pesquisa encontra o seguinte: osxbook.com/software/xbinary Se você pode recompilar seu código, não há problema.
orion 29/06
XBinary requer um programa que saiba como executar seu binário; por si só não funciona nada.
precisa saber é o seguinte

Respostas:

8

Essas respostas estão meio corretas, porque a virtualização é uma escolha, mas existe outra. Posso apresentar ...

História

  1. Primeiro, houve o UNIX, por volta de 1972
  2. Em seguida, a Linha do tempo dividida
    • Em 1977, por US $ 90, Bob Fabry e outros compilaram / construíram as primeiras versões do BSD, abreviação de Berkeley Systems Distribution.
    • Em 1991, Linus Torvalds publicou em um Newsgroup , sobre o software que ele usou de Richard Stallman, que iniciou o GNU em 1983, e o Linus'es UNIX nasceu.
    • A Apple readquiriu o NeXT Software em 1996, depois que Steve Jobs foi demitido da Apple em 1984 e usou o software e as pessoas para criar o OS X. O OS X é o Darwin OS + o NeXT Desktop Environment. E agora voltamos ao Bullet # 1, já que Darwin é um fork do BSD de código fechado. Para o Projeto Open Source, consulte PureDarwin . Para a página oficial do desenvolvedor da Apple, consulte Apple Open Source .

Como podemos usar isso

Os BSDs tradicionalmente usam o sistema de portas para gerenciamento de pacotes. Os mais utilizados são os portos do FreeBSD . Portas são pacotes instalados diretamente da fonte. Como os mesmos aplicativos Linux vêm das mesmas fontes , você pode executar um aplicativo Linux se a porta existir. Não use essas portas em um Mac, porque ...


Como todas as interfaces gráficas da Apple são escritas usando a API Cocoa - WikiEntry , empacotada com o XCode - OS X para desenvolvedores , as portas podem ser ajustadas para aproveitar isso:

  1. Instale o XCode para sua versão do OS X.
  2. Empacotado dentro do XCode está a versão da Apple do GCC Compiler, e todas as outras ferramentas associadas. Para atualizar as ferramentas, consulte esta postagem no StackOverflow . As ferramentas dependem da versão do sistema operacional, ou seja, não são compatíveis com versões anteriores , pelo que sei (em resumo, não instale o XCode para 10.8 no 10.6, etc.)
  3. Após a instalação do XCode, você agora tem um compilador e pode acessar a página MacPorts e procurar a porta que precisa instalar, depois de instalar o instalador do MacPorts .pkg

Embargo

O sistema de portas não faz necessariamente a verificação de dependência, a menos que a porta tenha sido bem escrita. Eu toquei levemente no problema no que elibc_FreeBSD significa nas sobreposições do gentoo portage?

eyoung100
fonte
17

Recentemente, comecei a usar o Noah para executar binários Linux no macOS. Você pode instalar usando homebrew ( brew install linux-noah/noah/noah). Então você deve conseguir fazer isso:

noah linux_binary

Na minha experiência, o comportamento do binário corresponde ao que vejo na minha máquina Ubuntu.

snd
fonte
embora o comando funcionou e nenhum erro fez aumentam, meus binários não funcionam como esperado
techkuz
2

A única maneira de saber que isso pode ser feito através de algum tipo de virtualização . Por exemplo, você pode usar o vagrant, que é um tipo de invólucro em torno do VBox da Oracle ou do vmplayer da VMware. A outra coisa que às vezes é feita é colocar isso em um contêiner, como a janela de encaixe .

rochoso
fonte
2

Emulação de Hardware

Não diretamente! Sim, como disse rochoso, você precisa virtualizá-lo com o VirtualBox , VMWare Fusion , que corresponderá ao seu tipo de CPU.

Há também o Qemu , que virtualiza diferentes tipos de CPU, como Intel ou Power, etc.

Emulação de Software

Também há emulação da camada de software, com programas como o WiNE e meu próprio programa de emuladores (WiP). Esses dois emulam parcialmente o sistema operacional Windows, convertendo as chamadas do sistema para POSIX.

A maioria dos aplicativos Linux será executada no OSX com uma recompilação de origem.

bobbyjo
fonte
Corrigi seus links para você. Bem-vindo à U & L.SE.
eyoung100