20 Aplicativos de 32 e 64 bits em um ambiente de sistema de 64 bits #
O SUSE® Linux Enterprise Desktop está disponível para plataformas de 64 bits. Os desenvolvedores não portaram todos os aplicativos de 32 bits para os sistemas de 64 bits. Este capítulo apresenta uma breve visão geral da implementação do suporte a 32 bits em plataformas de 64 bits do SUSE Linux Enterprise Desktop.
O SUSE Linux Enterprise Desktop para plataformas de 64 bits AMD64 e Intel 64 foi projetado para que aplicativos existentes de 32 bits sejam executados no ambiente de 64 bits “pronto para uso.” Este suporte significa que você pode continuar a usar os aplicativos de 32 bits de sua preferência sem esperar que uma porta de 64 bits correspondente se torne disponível.
O SUSE Linux Enterprise Desktop não suporta compilação de aplicativos de 32 bits. Ele apenas oferece suporte em tempo de execução para binários de 32 bits.
20.1 Suporte em tempo de execução #
Se um aplicativo estiver disponível para ambos os ambientes de 32 e 64 bits, a instalação das duas versões poderá causar problemas. Nesses casos, escolha a versão que será instalada para evitar possíveis erros de tempo de execução.
Uma exceção a essa regra é o PAM (módulo de autenticação conectável). O SUSE Linux Enterprise Desktop usa o PAM no processo de autenticação como uma camada mediadora entre o usuário e o aplicativo. Sempre instale as duas versões do PAM em sistemas operacionais de 64 bits que também executam aplicativos de 32 bits.
Para a execução correta, cada aplicativo requer uma variedade de bibliotecas. Como os nomes são idênticos para as versões de 32 bits e de 64 bits dessas bibliotecas, eles devem ser diferenciados de outra maneira.
Para manter a compatibilidade com as versões de 32 bits, as bibliotecas de 64 e 32 bits são armazenadas no mesmo local. A versão de 32 bits de libc.so.6
está localizada em /lib/libc.so.6
nos ambientes tanto de 32 quanto de 64 bits.
Todos os arquivos de objetos e as bibliotecas de 64 bits estão localizados em diretórios chamados lib64
. Os arquivos de objetos de 64 bits normalmente encontrados em /lib
e /usr/lib
agora estão em /lib64
e /usr/lib64
. Isso significa que há espaço disponível para as bibliotecas de 32 bits em /lib
e /usr/lib
, permitindo que o nome de arquivo de ambas as versões permaneça inalterado.
Se o conteúdo dos dados dos subdiretórios de 32 bits em /lib
não depender do tamanho da palavra, ele não será movido. Este esquema está em conformidade com a Base de Padrões Linux (LSB, Linux Standards Base) e com o Padrão da Hierarquia do Sistema de Arquivos (FHS, Filesystem Hierarchy Standard).
20.2 Especificações do kernel #
Os kernels de 64 bits para AMD64/Intel 64 oferecem uma ABI (application binary interface – interface binária de aplicativo) de kernel de 32 e 64 bits. A de 64 bits é idêntica à ABI do kernel de 32 bits correspondente. Isso significa que a comunicação entre os aplicativos de 32 e 64 bits com kernels de 64 bits é idêntica.
A emulação de chamada do sistema de 32 bits para os kernels de 64 bits não suporta todas as APIs usadas pelos programas do sistema. Isso depende da plataforma. Por essa razão, alguns aplicativos, como lspci
, devem ser compilados.
Um kernel de 64 bits apenas pode carregar módulos de kernel de 64 bits. Você deve compilar os módulos de 64 bits especificamente para os kernels de 64 bits. Não é possível usar módulos de kernel de 32 bits com kernels de 64 bits.
Determinados aplicativos requerem módulos separados carregáveis pelo kernel. Se você pretende usar um aplicativo de 32 bits em um ambiente de sistema de 64 bits, contate o provider do aplicativo e a SUSE. Verifique se a versão de 64 bits do módulo carregável pelo kernel e a versão compilada de 32 bits da API do kernel estão disponíveis para esse módulo.