next up previous contents
Next: Histórico Up: relatorio Previous: Cooperação   Sumário

Desafios e Dificuldades

O grupo tinha noção do desafio que seria abraçar esse projeto. De fato, mexer com um programa altamente complexo como o kernel de Linux não é uma tarefa fácil. Somente a parte de memória de aproximadamente 10 mil linhas, sem contar os arquivos de cabeçalho (header), que contêm, além de protótipos de funções exportáveis, definições de constantes e de macros. Esse código está em constante desenvolvimento, o que acaba impedindo o surgimento de livros ou documentações muito profundas a seu respeito. Muitas vezes, devido ao modo de programar do seu desenvolvedor, nenhuma linha de comentário é incluída no código-fonte.

Além disso, o kernel é o parte principal do software para o funcionamento de um computador, logo ele precisa ser altamente eficiente. Algo ineficiente nele, pode atrasar exponencialmente o funcionamento de toda a camada de programas que está rodando por cima. Como a eficiência é altamente priorizada, muitas partes desse código tornam-se totalmente inteligíveis. Ainda mais quando se usa otimizações de assembler com otimizações do próprio compilador que se utiliza com o kernel, o GNU gcc.

Mais um desafio, além da falta de livros e documentação, é que poucas pessoas entendem o código da maneira aprofundada que foi necessitada durante o projeto. E entre elas, são poucas as que se disponibilizam a nos ajudar. Fizemos algumas tentativas de resolução de dúvidas ou requisição de comentário (RFC, request for comment), mas apenas uma das dúvidas foi-nos tirada completamente pelo Stephen Tweddie. Em outra ocasião, Marcelo Tosatti deu-nos a sua opinião o que gerou uma saudável discussão sobre a estrutura utilizada para a implementação do cache comprimido.

Dificuldades? Você sentirá um pouco delas pelo histórico. O que é possível adiantar é que a demora e dificuldade no entedimento do código foram as principais dificuldades num primeiro momento. Depois, a dificuldade de se encontrar bugs na programação do kernel e de se testar foram fatores que tenderam a desanimar um pouco o grupo, mas felizmente foi tido sucesso até o momento de feitura dessa monografia.


next up previous contents
Next: Histórico Up: relatorio Previous: Cooperação   Sumário
Rodrigo Souza de Castro 2000-12-18