O que permite ao BSD executar binários do Linux, mas não vice-versa?

41

O que permite que o BSD execute binários do Linux (e outros semelhantes ao Unix), mas o Linux (e outros semelhantes ao Unix na maior parte) não podem executar binários do BSD?

    
por No Time 08.12.2014 / 03:13

1 resposta

56

Forças de mercado.

Existem muitos mais programas direcionados especificamente no Linux do que no * BSD. Muitos softwares código-fonte são portáteis o suficiente para serem compilados em ambos, mas muitos produtores de software que enviam binários do não se preocupe em fazê-lo para os BSDs, uma vez que eles têm compartilhamentos de mercado menores do que o Linux, em geral. ¹

Se um software está disponível apenas em formato binário para um sistema operacional diferente, a emulação ABI é uma maneira de fazê-lo funcionar, que é o que os BSDs fazem.²

Era uma vez, quando o x86 Unix detinha uma maioria de mercado sobre o Linux, o recurso iBCS foi adicionado ao Linux para permitir que ele execute binários criados para o SCO Unix e outros. O interesse neste recurso diminuiu à medida que a participação de mercado do Linux aumentou, de modo que foi permitido que ele caísse em desuso durante o Linux 2.3. série de desenvolvimento .³ Os processos da SCO ajudaram a liberar esse recurso do Linux, mas Eu acredito que isso é secundário para a perda da força de mercado que deu origem ao recurso.

Não há nenhuma razão técnica pela qual o Linux não possa, algum dia, obter um recurso semelhante ao iBCS para executar binários BSD, mas não é provável, a menos que as posições de mercado do BSD e do Linux mudem por algum motivo.

Hoje, há pouca necessidade de tal coisa. Quantos programas binários apenas para o BSD você conhece, que também não são construídos para o Linux? Deve haver alguns, mas eu acho que a maioria deles é para BSDs embarcados, como Junos . Tal recurso não será criado se não permitir que um conjunto importante de programas seja executado no Linux que, de outra forma, não seria executado.⁴

Notas de rodapé:

  1. Eu não estou contando o OS X como um BSD aqui, já que esse é um problema de compatibilidade binária separado. O FreeBSD, o OpenBSD e o NetBSD usam o ELF no x86, enquanto o OS X usa um formato executável totalmente diferente . A ligação dinâmica também é muito diferente no Mac OS X do que nos BSDs x86 tradicionais.

    Veja esta pergunta para mais informações sobre a compatibilidade binária do Linux® OS X.

  2. FreeBSD ; OpenBSD ; NetBSD

  3. Tal como acontece com certas espécies de tubarão , o software que pára de avançar morre. Chamamos esse fenômeno de bit-rot ao invés de asfixia quando isso acontece com o software, mas a causa e o efeito são os mesmos.

  4. Contraste NDISwrapper , que permite ao Linux executar drivers de placa de rede somente binários escritos para o Windows XP. Uma necessidade é identificada e uma necessidade é preenchida. Onde isso é necessário para executar binários somente do BSD?

por 08.12.2014 / 03:27

Tags