Multilib e Multiarch

1

Multilib e Multiarch: Esses dois termos são apenas sinônimos? Se não, como eles diferem?

Se eu quiser executar aplicativos de 32 e 64 bits no mesmo sistema, devo chamá-lo de Multiarch ou Multilib?

    
por SHW 24.07.2018 / 07:48

1 resposta

4

Eles são abordagens diferentes para o mesmo problema geral, com escopos um pouco diferentes: executar binários criados para diferentes arquiteturas.

Quando você recebe um binário para executar, precisa de três coisas: as bibliotecas necessárias (se houver, incluindo seu carregador dinâmico), suporte para as chamadas do sistema feitas e a capacidade de interpretar as instruções da máquina que ele contém . Multilib e multiarch abordam o primeiro.

O Multilib funciona com uma tabela de variantes conhecidas, por arquitetura. Isso abordou originalmente as variantes ABI, por exemplo, no MIPS, mas seu uso mais comum hoje em dia é o suporte a 32 bits no x86: ele normalmente define lib32 como o diretório da biblioteca de 32 bits (e essa definição é x86 -específico). Portanto, uma configuração de multilib pode fornecer o carregador de 64 bits em /lib e o de 32 bits em /lib32 . No lado do compilador, você especifica -m32 para construir um binário de 32 bits usando multilib.

O multiarch é mais geral: suas definições não dependem da arquitetura do host. Todas as bibliotecas são encontradas em um subdiretório lib correspondente à arquitetura de destino. /usr/lib/x86_64-linux-gnu/ , /usr/lib/i386-linux-gnu , etc. No lado do compilador, você usa o compilador apropriado.

Qual abordagem você usa para executar um binário de 32 bits depende da distribuição. Debian e seus derivados agora usam multiarch, outras distribuições usam multilib.

    
por 24.07.2018 / 08:34

Tags