O que é o Kernel?

Atenção, este texto/vídeo não tem como objetivo esgotar as informações sobre kernel. Ele foi criado para possibilitar que leigos possam compreender o que é e para que serve o kernel. Por isso essas informações aqui passadas são as mais simples possíveis. Para melhor entendimento, consulte a literatura sobre os sistemas operacionais Linux e Android disponíveis.

O Kernel é possivelmente a parte mais importante do sistema operacional. Ele está presente em sistemas operacionais como o Windows, o Linux, o iOS e no Android. É a parte do sistema operacional "mais próxima" do hardware.

Um pouco de história

Todas as vezes que nos referimos ao Linux, estamos nos referindo ao kernel Linux e não ao sistema operacional em si. O nome correto do sistema operacional é GNU/Linux (GNU é uma sigal que signfica "GNU is not Unix" ou "GNU não é Unix" de forma a diferenciá-lo da plataforma que a originou). E o Kernel Linux foi criado pelo então estudante de Ciências da Computação da Universidade de Helsinki (Finlandia), Linus Torvalds.

Posteriormente passou a contar com a contribuição de vários programadores voluntários através da Usenet (uma espécie de sistema de listas de discussão existente desde os primórdios da Internet). Se você é do tempo das BBS, video texto, conheceu o início da Internet...bem, vou parar por aqui senão vão começar a me chamar de "velho".

Linus Torvalds começou o desenvolvimento de seu Kernel em um projeto particular devido ao seu interesse pelo Minix (uma miniatura do Sistema Operacional UNIX desenvolvido por Andrew S. Tanenbaum). Seu objetivo era, segundo suas próprias palavras, criar "um Minix melhor que o Minix" ("a better Minix than Minix"). E depois de algum tempo de trabalho no projeto, uma mensagem para o comp.os.minix registra o nascimento do Kernel Linux (clique aqui para ouvir o próprio Torvalds pronunciando a palavra Linux):

"Você suspira pelos bons tempos do Minix-1.1, quando os homens eram homens e escreviam seus próprios "device drivers"? Você está sem um bom projeto em mãos e deseja trabalhar num S.O. que possa modificar de acordo com as suas necessidades? Acha frustrante quando tudo funciona no Minix? Chega de noite ao computador para conseguir que os programas funcionem? Então esta mensagem pode ser exatamente para você. Como eu mencionei há um mês atrás, estou trabalhando numa versão independente de um S.O. similar ao Minix para computadores AT-386. Ele está, finalmente, próximo do estado em que poderá ser utilizado (embora possa não ser o que você espera), e eu estou disposto a disponibilizar o código-fonte para ampla distribuição. Ele está na versão 0.02... contudo eu tive sucesso ao executar bash, gcc, gnu-make, gnu-sed, compress etc. nele."

Esta mensagem foi enviada em 5 de outubro de 1991 (nessa época eu nem tinha idéia do que seria um computador e nem fazia idéia de que um dia estaria escrevendo este artigo a partir de um dispositívo móvel de comunicação pessoal ultraportátil..sim do meu phablet!).

O "pai do Linux", Linus Torvalds, havia inicialmente batizado seu Kernel de Freax (uma mistura dos termos "Free" ou "Freak" e "Unix"). Considerou a hipótese de batizá-lo de Linux, porém achou a idéia um tanto egoísta e preferiu dar outro nome (isso é que é ter o espírito do Android em seu cerne, literalmente!). E o ome Freax foi mantido por pelo menos meio ano até que Ari Lemmke, administrador do site "ftp.funet.fi" modificou o nome, sem avisar a Torvalds, que posteriormente consentiu com a mudança (e vamos ser francos, Linux ficou muito melhor que Freax).

O mascote

A ideia da mascote do GNU/Linux veio do próprio Linus Torvalds. Alguns alegam que o nome deriva de Torvalds Unix, um nome sugerido por James Hughes. Porém, a história oficial é que o mascote oficial do GNU/Linux, batizado de Tux, um pinguim gorducho com ar satisfeito e saciado foi criado por Larry Ewing em 1996 em um concurso de logotipos para Linux. O logotipo vencedor foi criado usando o GIMP (um pacote de software livre de edição gráfica) e foi lançado por ele sob as seguintes condições:

A autorização para o uso e/ou modificação desta imagem é concedida desde que me reconheça lewis@isc.tamu.edu e o GIMP, caso alguém pergunte.

Segundo Jeff Ayers, Linus Torvalds tinha uma "fixação por aves marinhas gordas e desprovidas da capacidade de vôo!" e Torvalds dizia que contraiu uma "pinguinite" após ter sido gentilmente mordiscado por um pinguim. Segundo torvalds "a pinguinitie faz com que passemos as noites acordados só pensando em pinguins e sentindo um grande amor por eles". Apesar de ser uma piada criada pelo "pai do kernel Linux", ele foi mesmo mordido por um pequeno pinguim numa visita a Canberra.

O pinguim Tux tornou-se um ícone para a comunidade Linux e Open Source, com um grupo de utilizadores de linux britânico adotando um pinguim no Jardim Zoológico de Bristol.

Kernel poderoso

As solicitações de atividades feitas pelo usuário (ao jogar, ao utilizar algum aplicativo, ao telefonar, etc) são identificadas pelo sistema operacional e essas requisições são feitas ao kernel que as realizará da melhor forma possível (fazendo com que o hardware responda, utilizando mais ou menos memória RAM, mais ou menos clock do CPU, etc). Hoje o Linux é um sistema estável e consegue reconhecer muitos periféricos sem a necessidade de se instalar os drivers de som, vídeo, modem, rede, entre outros.

Estas informações relacionadas ao uso de periféricos, também estão contidas no kernel de seu Android e é exatamente por causa disso que você pode conectar seu smartphone no cabo MHL HDTV ou a um fone bluetooth ou até mesmo a um teclado. Determinadas rotinas também estão ali contidas e desta forma, diferentes  desenvolvedores não precisarão criar essas rotinas cada vez que criarem algo novo, pois elas já estarão ai contidas, poupando tempo, espaço e velocidade.

Sem o kernel, a utilização dos nossos smartphones voltaria aos primórdios onde tinhamos os hoje horripilantes celulares gigantes (que chamo carinhosamente de "tijolares") que serviam apenas para realizar ligações telefônicas. É o nosso sistema operacional (o kernel está incluído nele) que faz nossos celulares serem muito mais do que apenas telefones móveis, mas sim smartphones e portanto pequenos computadores de bolso.

É por este motivo que vários desenvolvedores para o Android criam e vários usuários do Android trocam seus kernels o tempo todo. Estamso sempre em busca da melhor combinação em termos de desemepnho, economia e estabilidade.