quinta-feira, 15 de novembro de 2007

postheadericon Kernel 2.6.23: velocidade versus qualidade

Está sendo produzido código para o Linux a uma média de 2 mil linhas por dia, apesar do objetivo de Linus Torvalds de limitar a quantidade que é inserido no kernel, a fim de mantê-lo tão eficiente quanto possível. O kernel modular do Linux é o núcleo do sistema operacional, que lida com todas as tarefas de propósito geral, tais como gerenciamento de memória, solicitações para a CPU, e entrada/saída. A mais recente versão do Linux - kernel 2.6.23 , ocorrida apenas três meses depois da última atualização - refletiu um grande número de mudanças.

Ele é cercado por centenas de pacotes adicionais que realizam funções mais especializadas, como traduzir arquivos entre Linux e Windows, e configurar arquivos para serem exibidos em um Web server Apache. Mas o kernel precisa aumentar para lidar com maior funcionalidade, mais dispositivos de hardware e mais usuários. O que começou em 1991 como um conjunto de 10.250 linhas de código criadas como hobby, atualmente, totaliza mais de 8 milhões de linhas.

Alguns acreditam que o kernel, com uma freqüência de 86 linhas de novo código por hora, está excedendo o limite de velocidade do desenvolvimento de software. Um importante mantenedor, Alan Cox, foi avisado de que algumas mudanças no driver de dispositivo deveriam ser submetidas a mais testes, antes de serem incorporadas no kernel.

Andrew Morton, um habilidoso programador, conhecido como "o coronel do kernel", depois que Torvalds o nomeou gerente-geral, tem falado abertamente sobre o problema dos bugs não resolvidos do Linux. "Eu gostaria que as pessoas dedicassem mais tempo solucionando esses problemas e menos tempo desenvolvendo novos recursos", de acordo com Morton. "Essa é minha opinião."

Mas Torvalds indicou, na Linux Kernel Summit (Conferência sobre o Kernel do Linux), realizada recentemente em Cambridge (Inglaterra), que ele pensa ter sido cuidadoso demais no passado. Demoradas inovações no kernel causam bloqueios de registro (logjams) em direção à origem (upstream), enquanto as adições esperam ter sua chance de serem inseridas no kernel.

Os colaboradores perdem o interesse, se não existe um retorno imediato por parte dos mantenedores do kernel e de seus confiáveis desenvolvedores especializados. (Torvalds não respondeu ao pedido para realizar uma entrevista.)

Ao errar por ter acelerado o desenvolvimento do Linux, Torvalds está contando com o princípio básico do código aberto, de que muitos usuários testando lançamentos freqüentes tornam a probabilidade de encontrar defeitos maior do que um processo de teste mais estruturado.

Os bugs do Linux surgem, constantemente, de forma inesperada, à medida que se descobre que as adições ao kernel não funcionam em determinado hardware ou entram em conflito com outro software, tanto dentro como fora do kernel. Espera-se que os desenvolvedores que encaminham código solucionem os bugs à medida que eles surgem, mas geralmente isso não acontece.

Na conferência, Morton declarou que queria indicar "uma pessoa temível" para ser o "controlador de bugs" do kernel, alguém para identificar fontes de bugs e "excluir os desenvolvedores que não solucionarem os bugs", conforme o relato do desenvolvedor do kernel, Jonathan Corbet, publicado pela Linux Foundation.

Natalie Protasevich foi nomeada a "controladora de bugs", e Morton afirma que ela trouxe mais disciplina ao processo de eliminação de bugs, mesmo que ela deixe de corresponder à descrição de Morton, como tendo o temperamento ideal. Havia mais de 1,5 mil bugs no banco de dados Bugzilla do kernel; e esse número caiu para 1,4 mil.

"Esta se torna uma atitude de equilíbrio muito sofisticada entre o rápido desenvolvimento e a completa revisão de código", esclarece Dirk Hohndel, que lidera o setor de tecnologia referente ao Linux e ao código aberto, na Intel. Contudo, mesmo em seu ritmo descontrolado, nem todos os recursos que os desenvolvedores querem incluir - ou que as companhias exigem - são inseridos diretamente no kernel.

O processo pode ser frustrante para os clientes corporativos do Linux. Na Amadeus, uma empresa européia de serviços de viagens, o Linux é fundamental para sua estratégia de reduzir em 10% seus custos de infra-estrutura, comenta Fred Bessis, vice-presidente de tecnologia e planejamento estratégico da Amadeus, ao desativar gradativamente sistemas de mainframe e executar Linux "em hardware de baixo custo".

Já com dez anos de experiência no uso de Linux, sabe-se o que está sendo implementado, incluindo a observação de novos recursos potencialmente úteis, que serão gradualmente acrescentados nas edições corporativas.

Holger Weisbrodt, programador de sistemas sênior, na Amadeus, observa que novos hardwares e drivers começam a funcionar rapidamente no kernel, mas novas ferramentas de diagnóstico e de depuração estão "demorando muito para operar corretamente". Ele gostaria que fosse dada maior ênfase às ferramentas de depuração em geral.

A mais recente versão do Linux mostra este imprevisível processo em funcionamento com dois novos recursos, um novo scheduler e virtualização aperfeiçoada, que utilizam caminhos muito diferentes para o kernel, cada um com seus próprios riscos e complicações.

0 comentários: