O Kernel do Ubuntu

O Kernel do Ubuntu, continua Kernel Linux, sempre e para sempre.

Eu andei lendo algumas informações na internet de notícias que me preocuparam bastante. O assunto agora é sobre o kernel que acompanha o Ubuntu 12.04 com o nome de Precise Pangolin, sendo um novo kernel e que a Canonical estaria deixando o kernel Linux de vez e procurando algum tipo de autonomia de núcleo como acontece com o hurd, amoeba, minix e tantos projetos que existem por ai.

Antes de começar a falar sobre isso, vamos entender o que é um kernel.  O kernel é o núcleo do sistema operacional responsável por gerenciar os recursos do sistema (a comunicação entre componentes de hardware e software), dizendo ao sistema operacional como ele deve se comportar e com a comunicação de todos os dispositivos, divido por micro-servidores e interligado e por protocolos, constituído por camadas. No caso do Kernel Linux, ao contrario do micro kernel de vários UNIX e também o que ocorre no Windows, ele acompanha drivers em seu núcleo para ligar componentes físicos ou lógicos. Ao contrário do kernel UNIX que geralmente é criado para uma arquitetura específica, como o caso do AIX que roda somente em arquitetura POWER, HP-UX para PA/Itanium e como Solaris (em certo momento), para SPARC. O kernel Linux ele é portavel tanto para todas as arquiteturas ja mencionadas como principalmente para o padrão IBM PC, ou x86. O Linux é um kernelzão que já acompanha todos os drives, sendo módulos, porque fazem parte do seu núcleo e atualizado de acordo com o seu desenvolvimento. Isso faz com que o poderoso mundo Linux rode em qualquer arquitetura e suporte todos os hardwares do mercado sem a necessidade de instalação de drivers adicionais (que também pode ser instalado). Dentro do kernel é possível definir o que é carregado como módulo, atraves de uma imagem modular initrd ou micro-kernel monolítico, baseado em uma única compilação como builtin e imagem vmlinuz. Ambos, carregados e armazenados no diretório /boot.

O kernel é dividido em camadas separadas por aplicação e hardware, como vc pode visualizar na imagem abaixo.

 

O que define se um sistema operacional é Linux ou não é o seu núcleo, o kernel Linux é oferecido pelo tio Linus no site http://www.kernel.org e seu source totalmente disponibilizado para empresas e pessoas como vc. Muitas empresas como a Red Hat e a Novell (ou SUSE), tem disponibilizado distribuições totalmente corporativas, o que eles chamam de enterprise. Essas distribuições também acompanham o kernel Liniux, com algumas modificações. Por exemplo, o RHEL 5.x companhava o kernel 2.6.18.x, que suportava varios tipos de controladoras hba do mercado que o kernel opensource oferecido em kernel.org não suportava. Porque? A Red Hat adicionava alguns módulos que somente eram oferecidos em versões superiores e homologavam somente para o RHEL na versão do kernel que o acompanhava, sendo, o 2.6.18. Isso não significa que a Red Hat tem o seu proprio kernel, o fato da Red Hat cobrar pelo RHEL é somente para a utilização do seu suporte que é baseado em assinaturas anuais (ou de 3 anos ou mais) e para que o administrador Linux possa utilizar dos seus recursos adicionados ao yum (como o yum rhn plugin), para atualizações do repositório RHN ou Red Hat Network, que não é configurado pelo /etc/yum.repos.d/, e sim por plugins que estão com a trademark Red Hat. Como acontece no SuSE Enterprise Linux, o SEL, que é autorizada uma atualização por repositórios específicos do yast.

A Canonical ainda é uma das mais fieis ao kernel Linux, tanto que o proprio kernel upstream ja oferece total suporte e compatibilidade para trabalhar com processos que fazem chamadas a vários tipos de metodologias de inicialização do sistema que o proprio Ubuntu ja possui. Vale lembrar que os diretórios /etc/event.d, do upstart antes das versões do Ubuntu 10.04 e os atuais métodos pelo /etc/init/, fazem parte do upstart (http://www.aprigiosimoes.com.br/2011/09/03/upstart/), que hoje é o novo processo de inicialização do Ubuntu, copiado (não queria falar isso), pelo Red Hat Enterprise 6, pois ja acompanhava o Fedora e até mesmo por outras distribuições. Até a Red Hat esta usando o upstart, mantido pela Canonical.

A Canonical, como qualquer empresa, está oferecendo módulos adicionados no kernel por causa de suas distribuições de cloud e até mesmo suporte. Não há nada de heresias e rebelião da mesma, quanto a isso. Qualquer pessoa que compila uma imagem do kernel na sua distribuição, como eu mesmo faço isso, pode colocar o nome que quiser na imagem de entrada e módulos, initrd ou imagem do kernel, cujo o nome padrão é vmlinuz. O kernel do meu Ubuntu, por exemplo, não é o mantido pela Canonical, eu mesmo recompilo o kernel linux, baseado nos sources do Linus e coloco o nome poder, sendo um exemplo, 2.6.32.poder, rs, que voce mesmo pode alterar no arquivo Makefile do diretório /usr/src/linux-versão-source. Quando o processo do “make all” finalizar, o nome do atributo de leitura EXTRAVERSION, irá conter o nome do novo mantedor. Na figura abaixo segue o menuconfig do kernel, que é o mesmo em QUALQUER distribuição Linux.

Mas entenda, que ter uma distro totalmente voltada a fins corporativos não é só isso!!!! Eu amo o RedHat Enterprise Linux (CentOS é a minha distro favorita), uso também o Fedora em meu notebook, mas quando se fala em soluções agregadas a tecnologias atuais de virtualização, cluster, storage e banco, sem duvida.. RedHat atende muito mais. Entende que uma subscription vai muito mais alem de uma simples “assinatura”, mas a possibilidade de vc usar uma distro como a redhat e sua marca, suse e sua marca a nivel corporativo?

Porque as empresas fazem isso?

Apenas por questões de suporte a distribuição. Se voce recompilar o kernel que acompanha o Red Hat Enterprise Linux, ou SuSE Enterprise Linux, vc PERDE o suporte. Porque? Foge dos padrões de homologação do mantedor. Imagine vc desativar o suporte a controladora XX no kernel e ligar para a Red Hat e reclamar que a mesma não funciona. A primeira coisa que eles vão verificar é se a distribuição foi modificada e saiu dos padrões de suporte da empresa, com isso, vc perde o suporte. Isso é algo completamente normal pois a empresa não é obrigada a se responsabilizar pelo administrador local.

O Debian possui uma imagem mantida pela comunidade, mas totalmente fiel ao encontrado no kernel.org, assim como o Fedora. O Ubuntu possui o mesmo kernel, mas agora com algumas modificações para o maior e melhor suporte da empresa aos usuários com a diferença de que a Canonical não cobra isso dos usuários, como a Red Hat e a Novell fazem pelo seu TRADEMARK.

Vc tem total liberdade em recompilar o kernel Linux, até porque isso, ao meu entendimento é um pré-requisito de todo usuário e administrador Linux. A Canonical continua fiel a comunidade Linux e oferece um kernel atualizado de 6 em 6 meses totalmente fiel ao Linux e contribuindo cada dia mais para o padrão Linux-Like.

O kernel Linux é o mesmo, e o mesmo não acontece com o FreeBSD, OpenBSD e netBSD, que possuem outro kernel e não tem nada haver com Linux, nada haver mesmo!

Já o Android, possui um kernel totalmente modificado para atender a arquitetura arm, porém ainda Linux. Instale o terminal android e execute o comando lsmod para vc entender o que eu estou falando. É lógico que um kernel para mobile, é oferecido de forma menor e não possui os mesmos módulos encontrados no kernel oferecido a distribuições para x86, ele possui serviços e servidores diferentes, como o servidor X que definem e exigem outros tipos de módulos. É claro!

Linux é o poder.

@aprigiosimoes

 

Powered by Moblie Video for WordPress + Daniel Watrous