page101
Linus Torvalds respondeu a esta questão a alguns anos atrás, quando disse o seguinte a um grupo de empresas, quando foi solicitado a explicar o processo de desenvolvimento do Kernel Linux:
“O Kernel Linux é o projeto em evolução. Não um design inteligente!”
Este é um ponto muito importante que muitos parecem não entender. Na verdade, eu até creio que não seja tão difícil entender. Contudo, alguns simplesmente não gostam de como o Kernel Linux é feito.
O Kernel não é desenvolvido com grandes documentos de projeto, ou solicitações de recursos e assim por diante. O desenvolvimento evolui ao longo do tempo, com base em necessidades descritas no momento do surgimento da demanda. Quando o desenvolvimento iniciou, só havia suporte para um tipo de processador, já que este suporte inicial era o mínimo necessário. Posteriormente, um segundo processador foi adicionado, e depois mais outro e mais outro, conforme surgiam as demandas. E cada vez que um novo processador é adicionado, os desenvolvedores adicionavam apenas o que era necessário para suportar o novo processador específico. No início do desenvolvimento do Kernel, está incrível flexibilidade de tipos distintos de processadores não estava prevista, pelo simples fato de que os primeiros desenvolvedores não tinham ideia de que isso seria necessário.
O Kernel só é alterado quando necessário, no ponto exato onde precisa ser alterado. O Kernel passou a ter suporte para processadores, para dispositivos móveis quando surgiu esta demanda. Cada vez que algo semelhante aconteceu, o código foi mesclado de volta para a árvore de desenvolvimento do Kernel, para que todos pudessem se beneficiar das mudanças, já que isso está previsto na licença do Kernel Linux. Mas um "problema" para muitos é que, devido a este estado em constante evolução, o Kernel não fornece algumas coisas que sistemas operacionais "tradicionais" fazem. Coisas como uma API em um Kernel estável.
Para aqueles que não sabem o que é uma API, trata-se da descrição de como o Kernel negocia com suas próprias instruções internas para concretizar suas operações.
Uma API descreve como as instruções interagem entre si, quais são suas funções específicas e que são necessárias para algumas tarefas específicas, e como essas funções são chamadas à execução.
ESPAÇO ABERTO
ARTIGO