Revista Do Linux
 


    
EDIÇÃO DO MÊS
 CD do Mês


 Capa
 Entrevista
 Distro
 Redes
 Utilitários
 Software
 Entrevista
 Estudo de Caso 1
 Estudo de Caso 2
 Programação
 Tecnologia
 Sistema
 Desenvolvimento
assinantes
 

Linux Standard Base

Sem padrões não podemos progredir

O sistema operacional Linux foi construído a partir do trabalho de voluntários, como é costumeiro (embora não regra geral) em projetos de software livre, durante muito tempo não houve uma orientação bem definida sobre como deveria ser o sistema padrão - cada distribuição do sistema adotava seus próprios critérios em uma série de aspectos, desde a localização dos arquivos do sistema, até a seqüência de inicialização da máquina, passando por vários outros itens críticos, como as versões das bibliotecas de suporte do sistema e o método utilizado no gerenciamento de pacotes de software.

Conseqüência da liberdade do projeto, esta falta de padronização ajudou a levar à diversidade de distribuições de Linux que conhecemos hoje, o que foi providencial na disseminação do sistema em seus primeiros anos de vida.

Entretanto, a mesma diversidade criava problemas para a comunidade Linux ao longo de todo o seu desenvolvimento. Entre outras questões, durante muito tempo era difícil obter versões pré-compiladas de aplicativos, exceto se elas tivessem sido preparadas especificamente para a distribuição de Linux que você estivesse utilizando. Embora hoje seja quase sempre trivial utilizar pacotes do Mandrake no Conectiva, do RedHat no SuSE, e assim por diante, houve um tempo que isto era muito mais raro, e de todo usuário de Linux era exigido o conhecimento da instalação de programas a partir da compilação de seu código-fonte, o que até certo ponto se constituía numa grande barreira ao uso e adoção do Linux.

Ainda hoje encontramos situações onde softwares de grande apelo junto a segmentos da comunidade usuária (como o ambiente de desenvolvimento Kylix ou o gerenciador de bancos de dados Oracle) suportam apenas um subconjunto das distribuições. Isso não significa que eles não possam ser instalados em outras distribuições (ainda que às vezes esta operação exija truques e malabarismos indesejáveis), mas que o seu fornecedor ou produtor não estava apto a suportar seu uso em todas as variantes possíveis de Linux. Garantir e suportar o uso tem um custo, e muitas vezes não é economicamente viável diversificar este suporte.

O desenvolvimento da comunidade Linux, a entrada de participantes de maior porte no mercado criado em torno deste sistema operacional e o surgimento de interesse pela distribuição de aplicações e serviços baseados no Linux, portanto, criaram a necessidade de convergência em torno de um padrão, sem restringir a possibilidade de diferenciação entre as distribuições - mantendo assim a liberdade, sem permitir a fragmentação do Linux em uma série de alternativas incompatíveis entre si.

O LSB

Esta necessidade levou à criação do Linux Standard Base (LSB), que visa desenvolver e promover um conjunto de padrões para aumentar a compatibilidade entre as distribuições de Linux, permitindo assim que softwares aplicativos possam rodar em qualquer sistema em conformidade com o padrão.

O LSB é dividido em três componentes principais: a especificação do sistema, as ferramentas de teste e um exemplo de distribuição para referência.

A especificação do sistema define a chamada BIA (Binary Application Interface), que é o ambiente que toda aplicação desenvolvida, levando em conta o LSB, deverá esperar encontrar em qualquer distribuição de Linux, incluindo o nome e localização dos arquivos, versão das bibliotecas, e diversos outros fatores. Assim, obtemos as seguintes vantagens:

  • os aplicativos podem ser suportados em todas as distribuições de Linux que respeitem o padrão;
  • os profissionais da área de suporte e administração de sistemas encontram menos surpresas ao trabalhar com diferentes distribuições;
  • a literatura, os cursos e treinamentos básicos não precisam ser segmentados por distribuição.

O LSB não é uma tentativa ou um projeto acadêmico: a versão 1.0 da especificação foi lançada em 2001 (a versão 1.1 foi lançada no início de 2002), e os principais participantes do mercado Linux, incluindo as principais distribuições do mundo todo, os desenvolvedores de aplicativos e as empresas de suporte, já o adotam ou estão em pleno processo de adaptação para adoção.

Definições

A especificação completa da LSB é do interesse não apenas dos distribuidores de Linux e dos desenvolvedores de aplicações (para os quais se trata de leitura obrigatória), mas também dos administradores de sistema, usuários avançados e da comunidade Linux em geral, até mesmo por se tratar de um projeto aberto à comunicação com os usuários.

A versão corrente da especificação pode ser encontrada no site www.linuxbase.org. Atualmente ela define itens tais como as bibliotecas do sistema, comandos disponíveis, a localização dos arquivos (definida pelo FHS - www.pathname.com/fhs), a inicialização e processos associados, a shell, usuários e grupos, o gerenciamento de pacotes, o formato dos arquivos executáveis e outros.

O enfoque dos padrões é prático, levando em conta o que já existe hoje ou está sendo ativamente desenvolvido, e não se prendendo exclusivamente à compatibilidade com outros padrões (como o POSIX) - o que chama a atenção principalmente quando se nota que nomes tradicionais do mercado Unix, como a HP, a Compaq (Digital), a IBM, a SGI e o próprio Open Group estão listados como contribuintes ou patrocinadores do projeto, ao lado de nomes conhecidos exclusivamente do mercado Linux como Red Hat, SuSE, Caldera, Debian, Conectiva e Turbo Linux.

As vantagens

Já foi visto que o LSB não restringe a liberdade de cada distribuição fazer as coisas a seu modo - ele apenas estabelece um núcleo de recursos e capacidades que deve ser suportado.

Desfeitos os temores de que todas as distribuições teriam que ser idênticas resta analisar as vantagens. A principal é óbvia: veremos menos aplicativos que exigem uma distribuição ou versão específica de Linux, já que eles poderão aceitar e suportar qualquer distribuição que implemente o LSB.

Além disso, desenvolver e portar software para Linux será uma atividade menos custosa, pois não apenas existirá uma interface unificada, como ainda esta interface contará com documentação atualizada e voltada para os desenvolvedores de aplicações - o que não se pode afirmar da maior parte das distribuições de hoje.

Além da interoperabilidade de aplicativos, pode-se mencionar outros ganhos secundários, como manuais, cursos e publicações independentes de distribuição sem perder o enfoque prático, e a formação de profissionais sem as barreiras mentais que o atual culto às diferenças entre as distribuições acaba por provocar.

Como membros da comunidade Linux, cabe a nós exigir de nossos distribuidores que adotem integralmente os padrões da LSB. Além disso, aqueles entre nós que são desenvolvedores, precisam ler atentamente o padrão, pois ele estabelece alguns pontos (como por exemplo a maneira correta de incluir uma tarefa para execução automática pelo cron) que não são trabalhosos para atender e levam a softwares de maior qualidade compatíveis com os padrões existentes.

Resultado

A convergência das tecnologias é um processo natural em qualquer mercado e faz parte do desenvolvimento de qualquer sistema. Num mercado onde há liberdade de uso do software, como é o caso do Linux, essa convergência é ainda mais natural - basta ver o exemplo da Conectiva adotando o apt, gerenciador de pacotes tradicionalmente associado ao Debian: as boas idéias de uma distribuição podem ser livremente utilizadas por todas as outras.

O LSB, além de acelerar esse processo de convergência, torna-o uma atividade ordenada, e facilita a vida não apenas dos desenvolvedores de aplicações, mas de todas as empresas ou pessoas que suportam, administram ou operam sistemas baseados no Linux. Trata-se de uma excelente idéia, e precisamos fazer nossa parte: adotá-la, divulgá-la e exigir que nossos fornecedores façam o mesmo (ressalva importante à absoluta maioria dos distribuidores de Linux já adotam o padrão, ainda que não constem como participantes do seu desenvolvimento).

E da próxima vez que você ouvir falar na antiga lenda da impossibilidade de compatibilização, ou do processo de fragmentação que levaria inevitavelmente ao fim do Linux (como a “concorrência” periodicamente apregoa em press releases rapidamente disseminados por parte da imprensa), lembre-se de mencionar o LSB e os seus efeitos.

Palavra de quem defende

O atual FUD: “O Linux está seguindo o mesmo caminho do Unix, fragmentando-se e tornando-se incompatível com cada 'player´ buscando diferenciação” foi comentado por Arnaldo Carvalho de Melo, diretor de Tecnologia da Conectiva.

“Não... uma feature desenvolvida por um Unix proprietário, para diferenciá-lo dos demais, não podia ser livremente copiada pelos concorrentes, o que não acontece com software de livre distribuição, onde o que for melhor vai sendo adotado pelos `players´ e desta forma ocorre algo diverso do que nas Unix Wars: uma convergência para um conjunto comum de melhores características.”

Benefícios para todos

Adotar um padrão comum à máxima extensão possível só trará benefícios. Essa é a opinião de Eduardo Maçan. Para ele, o LSB está evoluindo e a maioria das grandes distribuições o vem implementando desde as primeiras versões da especificação. “O mais interessante é que a especificação tem se mostrado tão clara e inteligente que está influenciando Unixes comerciais”, comenta. Maçan explica também que os desenvolvedores e empresas que usam o Linux devem forçar a padronização das distros. “Seguindo a estrutura proposta pelo LSB, você estará fortalecendo ainda mais o padrão, principalmente se outros Unixes também usam seu software”, conclui.


Augusto Campos -brain@matrix.com.br


A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux