O que é MLFS (Multilib-LFS)?
Multilib-LFS é uma variante do livro LFS. Essa variante constrói um sistema o qual é apto a executar binários de 32 bits.
Isso parece trivial, porém não é. Hoje em dia, quase todas as CPUs em nossos computadores são de 64 bits, e a maioria delas é compatível com Intel. Isso já aconteceu antes, muitos anos atrás, quando CPUs de 16 bits (8086) eram comuns e novas CPUs de 32 bits estavam surgindo (80386). Comum a todas essas CPUs é que elas são aptas a executar instruções de máquina de arquiteturas anteriores, significando que uma CPU de 32 bits consegue executar instruções de 16 bits, uma CPU de 64 bits consegue executar instruções de 32 bits, e assim por diante. O problema é que o formato do binário no qual essas instruções são armazenadas difere.
Dado que essa arquitetura de CPU tem existido por décadas agora, também existe um monte de software escrito para ela. Infelizmente, alguns desses softwares estão disponíveis somente em um binário pré-compilado, e nenhum código-fonte está mais disponível. Isso pode ser devido a vários motivos, tais como o código-fonte se perder ou nunca ser publicado devido a problemas de licenciamento ou porque o(a) criador(a) não quis liberar o código-fonte. Nesses casos, porém, o binário ainda está disponível.
Dado que o formato dos binários de 64 bits e 32 bits é diferente, esses programas antigos não podem ser executados em sistemas modernos. É aqui que os sistemas multilib entram em ação e, portanto, o Multilib-LFS. Os sistemas multilib fornecem o ambiente para que os binários de 32 bits também possam ser executados em um SO de 64 bits. Isso precisa ser suportado no núcleo, porém também precisa que várias outras bibliotecas centrais estejam disponíveis em versões de 32 bits.
Todavia isso não é tudo. Existe outra arquitetura que está um pouco entre 32 e 64 bits. Ela é chamada x32. Ou seja, os binários operam com o conjunto completo de instruções de uma CPU de 64 bits, porém o espaço de endereço é limitado a 32 bits (~4 GB). Executar tais binários ou precisa de um sistema construído explicitamente para x32 ou um sistema multilib que seja capaz de executar esses binários.
O livro Multilib-LFS é baseado no livro LFS real, mas tem algumas extensões nas instruções. Na maioria dos casos, essas extensões são repetições das instruções de construção, entretanto apenas em outro modo (m32 e (ou) mx32).
Por que eu quereria um sistema MLFS?
Usualmente, não existe necessidade de executar um sistema multilib. Porém podem existir circunstâncias nas quais você precise de um:
Software antigo disponível somente como binário
Pode existir software que você queira usar, onde esse software é de 32 bits e não existam fontes disponíveis para recompilá-lo. Mesmo quando o código-fonte esteja disponível, pode não ser possível recompilar devido a dependências não resolvíveis para outros pacotes (antigos). Um controlador de impressora disponível somente como binário de 32 bits foi um dos motivos para iniciar o projeto mlfs.
Outros softwares exigem multilib
Para virtualização (aqui VirtualBox) m32-multilib é nomeado como um pré-requisito. Quando você quer instalar o VirtualBox em um sistema LFS para ser teu dispositivo de VM, somente quatro pacotes adicionais não-BLFS são necessários. Se você quer reconstruir as adições de convidado de 64 bits e 32 bits, um SO multilib é exigido para construí-las.
Também, o GLFS (Gaming LFS) depende do multilib.
Leia online
Existem três versões do Multilib-LFS online:
- MLFS com extensões m32 (provavelmente o que você quer)
- MLFS com extensões mx32
- MLFS incluindo ambas extensões
Limitações
O MLFS é difícil de testar, a menos que existam binários antigos disponíveis para uso. Quando tal binário for executável, infelizmente isso não significa que qualquer outro desses binários executará, também. Podem existir pacotes de biblioteca do BLFS exigidos como dependências naquele ambiente multilib particular. Nem o MLFS nem o BLFS cobrem isso no momento (não existe MBLFS), mas o MLFS deveria dar para o(a) usuário(a) uma ideia de como construir versões multilib de bibliotecas.
Agradecimentos para
- William Feely que iniciou um projeto similar há uma década
- DJ Lucas, Xi Ruoyao, Douglas R. Reno e muitos(as) outros(as) mais