O Kernel é um componente essencial do Sistema Operacional, muitas vezes encarado como "O cérebro do S.O". Na verdade ele é o grande responsável por fazer a interação entre as camadas de hardware e software. Traduzindo, é o Kernel que gerencia os recursos do sistema e permite que os programas façam uso deles.
Basicamente o kernel começa a funcionar assim que o computador é ligado; nesse momento ele inicia a detecção de todo o hardware indispensável ao funcionamento da máquina (placa de vídeo etc). O Sistema Operacional é carregado em seguida espera que o usuário faça seu login, feito isso o Kernel passa a administrar as principais funções dentro do S.O.: isso inclui o gerenciamento da memória, dos processos, dos arquivos e de todos os dispositivos.
Dessa forma o Kernel pode ser descrito como um grande organizador: é ele o responsável por garantir que todos os programas terão acesso aos recursos de que necessitam (memória RAM, por exemplo) simultaneamente, fazendo com que haja um compartilhamento concorrente - mas sem oferecer riscos à integridade da máquina.
Lançado o Kernel 2.6.35
No dia 01 de agosto de 2010, Linus Torvalds enviou um email para a comunidade
Linux anunciando a versão estável do Kernel 2.6.35. O apoio de grandes empresas como Intel, AMD e Google tem produzido bons resultados. Das inúmeras novidades, irei destacar apenas as seguintes mudanças:
- Divisão transparente de carga de rede entre CPUs;
- Melhorias diversas na rede;
- Melhorias no BTRFS;
- Melhoramentos gráficos;
- Concatenação de memória;
- Virtualização;
- Frequência de CPUs;
- Raid Linux.
Vamos saber mais sobre cada uma dessas mudanças.
Divisão transparente de carga de rede ente CPUs
Em parceria com o Google, o kernel do Linux oferece duas novas funções chamadas de Receive Packet Steering (RPS) e Receive Flow Steering (RFS) que têm por objetivo dividir o processamento dos pacotes de redes entre os processadores disponíveis no sistema. Em testes iniciais de desempenho, esta mudança produziu ganhos de até 17% em transferência de grandes volumes. Com o aumento constante da banda das redes de datacenters e provedores, otimizações como esta são sempre muito bem-vindas.
Melhorias diversas na rede
Além da divisão de carga ser feita de modo paralelo, aproveitando todas as CPUs presentes no sistema, foram adicionadas algumas melhorias ao suporte de IPV6, tunelamento (L2TP versão 3) e roteamento de pacotes nesta versão do kernel.
Melhorias no BTRFS
Para quem não sabe o que é BTRFS (lê-se Better FS), ele é um sistema de arquivos que utiliza o princípio Copy on Write, e que tem produzido grande euforia entre membros da comunidade Linux, pois, em alguns casos oferece ganhos de desempenho sensíveis frente a sistemas tradicionais, como o EXT4 ou XFS. Algumas distribuições voltadas para o consumidor final já anunciaram que a migração para este sistema será feita nas próximas versões, como o Ubuntu e o Meego (este já disponível para download).
Este sistema de arquivos tem suporte desde a versão 2.6.29 do kernel Linux. A novidade agora é que foi adicionado suporte para I/O direto, ou seja sem passar pelo cache do disco, uma técnica muito usada em softwares de grande porte que fazem seu próprio cache, como grandes bancos de dados por exemplo.
Melhoramentos gráficos
O suporte a decodificação de vídeo em alta definição no formato H264 presente no chipset Intel G45, agora está presente no kernel Linux. Para os usuários de placas AMD/ATI foi adicionado suporte inicial ao gerenciamento de energia das Radeon, além de implementar novas funções necessárias para o suporte das GPUs Evergreen.
Concatenação de memória
Foi adicionado um mecanismo que permite a concatenação de blocos fragmentados de memória. Com este recurso, a alocação de grandes blocos de informação se tornará mais fácil para o sistema, uma vez que este enxergará apenas um grande bloco vazio disponível para seu uso.
O mecanismo funciona através de dois scanners, um deles monitora blocos de memória usados e que podem ser movidos, e o outro procura por espaços livres no final que podem receber as informações a serem movidas. Este sistema não ficará ativo o tempo todo, será carregado principalmente quando o sistema encontrar dificuldades para alocar informação na memória.
Virtualização
A virtualização completa de um hardware é uma das abordagens usadas por hypervisors. O problema é que algumas requisições de I/O, como placas de rede e o acesso ao HD, poderiam apresentar melhor desempenho se fossem passadas diretamente ao hardware, ao invés de serem processadas pelo hipervisor. O Virtio é um padrão para virtualização de placas de rede e acesso ao HD, no qual a máquina virtual sabe que está hospedada em um hardware compartilhado e colabora com o sistema hospedeiro, aumentando o desempenho como um todo.
Nesta versão do kernel, foi adicionado o ioctl para discos rígidos, um recurso que aumentará o desempenho de máquinas virtuais que fazem muito acesso ao disco, como no caso de um banco de dados. Também foram adicionados alguns recursos ao Kernel-base Virtualization Machine (KVM) do Linux, como o SVM que permite a melhor execução de máquinas virtuais do Windows Seven 64 bits.
Frequências das CPUs
Os processadores AMD Bulldozer contarão com um recurso de aumento automático da frequência individual dos núcleos de processamento (cores) quando estiverem em uso intenso. O Kernel 2.6.35 traz suporte nativo a esta nova função, e para os novos processadores Intel Atom e Core i3, i5 e i7, a novidade é o suporte nativo e otimizado no driver cpuidle.
Raid Linux
A migração de unidades RAID agora pode ser feita de várias maneiras:
- Raid 0 para Raid 4 e 5;
- Raid 4, 5 e 10 para Raid 0;
- Raid 5 para Raid 4.
Referências
Fontes de pesquisa:
Para obter um novo Kernel acesse
http://www.kernel.org, você pode baixar a versão mais recente, onde poderá encontrar tanto a versão instável (sendo ímpar o 2º número da versão, como em 2.5.x), quanto a versão estável (sendo par o 2º número da versão, como em 2.6.x).
Este artigo apresenta de forma resumida algumas das várias mudanças do Kernel Linux.
Agradeço a todos pela atenção.
Viva o Linux, porque nós amamos a Liberdade!