20 Aplicativos de 32 bits 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 desenvolvido para que os aplicativos de 32 bits existentes sejam executados no ambiente de 64 bits “out-of-the-box.” 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. Infelizmente, os nomes das versões de 32 e 64 bits dessas bibliotecas são idênticos. Eles devem ser diferenciados uns dos outros de outra forma.
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 dois ambientes de 32 e 64 bits.
Todos os arquivos de objetos e todas as bibliotecas de 64 bits estão localizados em diretórios denominados lib64
. Os arquivos de objeto de 64 bits que normalmente estão 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 LSB (Linux Standards Base — Base de Padrões Linux) e com o FHS (File System Hierarchy Standard — Padrão de Hierarquia de Sistema de Arquivos).
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.
Alguns 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.