sexta-feira, 6 de janeiro de 2012

AS NOVIDADES DO KERNEL LINUX 3.2

Após dois meses de desenvolvimento, Linus Torvalds lançou a versão 3.2 do kernel Linux. Com esse lançamento os desenvolvedores do kernel retornaram ao seu cronograma e velocidade de trabalho usuais, que foi reduzido desde a invasão que aconteceu no site kernel.org e atrasou o lançamento do Linux 3.1 em algumas semanas. Como consequência, a versão 3.2 do kernel traz mais mudanças que o habitual, já que os desenvolvedores tiveram mais tempo para preparar as mudanças de código que seriam incluídas no Linux 3.2.
A versão 3.2 contou com 11881 contribuições de código. Ao todo o kernel já conta com quase 15 milhões de linhas de código. Essa nova versão do kernel integrará a vindoura versão 12.04 LTS da distribuição Ubuntu Linux.
Uma versão "vanilla" do kernel pode ser baixada no site kernel.org, em breve ela também estará disponível em todos osespelhos do servidor. O código-fonte é disponibilizado como um arquivo tar, comprimido com Gzip, Bzip2, ou XZ. A autenticidade da tarball pode ser verificada com o arquivo de assinatura que o acompanha.

Gráficos

O RC6 já se encontra presente em diversas GPUs da Intel, em especial nos chips Sandy Bridge, e é um recurso para economia de energia, podendo diminuir o consumo de um sistema em alguns watts, uma qualidade que pode representar uma grande diferença para o tempo de vida de baterias em notebooks e netbooks. A partir da versão 3.2 do kernel, o driver DRM/KMS para o chipset gráfico da Intel fará uso desse recurso por padrão. Contudo, alguns problemas foram encontrados com a ativação do RC6 nos chips Sandy Bridge, fazendo com que os desenvolvedores desabilitassem seu uso no kernel, os interessados em usar o recurso podem ativá-lo com o parâmetro de inicialização i915.i915_enable_rc6=1.
O novo driver Nouveau que integra o kernel 3.2 agora já é capaz de usar as funções de aceleração gráfica disponível com os firmware autogerados nos núcleos Fermi NVC1NVC8 e NVCF, o que efetivamente faz com que esse kernel seja o primeiro a suportar os chips gráficos mais recentes lançados pela Nvidia, sem a necessidade de um driver proprietário.

Rede e conectividade

Os chips Brcmsmac and Brcmfmac da Broadcom foram o motivo de uma pequena disputa que estava acontecendo no espaço de staging do desenvolvimento do kernel, uma corrida entre a Broadcom e desenvolvedores independentes para a criação de um driver aberto que seria integrado ao kernel. O lançamento do novo kernel trouxe um desfecho à disputa, com o driver Brcm80211, desenvolvido pela Broadcom, sendo integrado ao subsistema de rede da versão 3.2. Nessa nova versão também foi incluído o driver Ath6kl, para placas usando o chip Atheros AR6003.
Além disso, o recurso PRR, ou Proportional Rate Reduction, foi incluído no conjunto de comunicação TCP do kernel 3.2. Idealizado por um funcionário do Google e descrito em um esboço IETF, esse algoritmo foi desenvolvido para adaptar a taxa de transmissão de um sistema à taxa de recepção que podem ser processadas pelo recipiente, prevenindo sobrecargas iminentes de dispositivos, como roteadores, e permitindo que a velocidade máxima de transmissão seja retomada assim que possível. A presença desse algoritmo intermediando a comunicação TCP melhora também o tempo de resposta HTTP em até 10 por cento.

Sistemas de arquivos

Os desenvolvedores acrescentaram à essa versão do kernel várias correções ao sistema experimental Btrfs, em especial para problemas que poderiam levar à corrupção de partições no evento de falhas gerais do sistema e quedas de energia. Se o nó raiz, um componente chave do Btrfs, estiver danificada, a nova opção de montagem -o recovery pode ser usada para instruir o sistema de arquivo para usar um nó raiz alternativo.
O sistema de arquivos Ext4 também recebeu atenção na versão 3.2 e agora suporta a alocação de grandes blocos (big block allocation). A técnica, conhecida como bigalloc, reúne os blocos de 4 KB usados para armazenar dados em conjuntos de até 1 MB. Isso reduz o overhead administrativo quando se escrevem arquivos muito grandes e, em alguns casos, melhora o desempenho do sistem de forma significativamente. Além disso, mudanças no código do sistema de arquivos CIFS para acessar compartilhamentos Samba ou Windows deve melhorar também a transmissão de dados em certas situações.

Infraestrutura

O código writeback agora acelera programas que geram grandes volumes de dados para uma escrita em mídias de armazenamento mais eficiente. Isso deve garantir que o sistema reaja mais rapidamente à interação do usuário e não fique sobrecarregado ao tentar realizar o cache de grandes volumes de dados, como pode acontecer com o dd quando escrevendo em um disco muito lento. Torvalds ressaltou que apesar de ser uma mudança pequena, ela teria o potencial de ser percebida pela maioria dos usuários. Contudo, existem ainda alguns casos, em que o gerenciamento de memória está ocupado, que o sistema parecerá estar respondendo de forma muito lenta. Uma correção para um problema frequente envolvendo as THP (huge transparent pages) também foi desenvolvido pelo hacker Mel Gorman.
Com a ajuda do novo controlador de banda CFS e a infraestrutura de control groups (cgroups), é possível limitar o tempo de grupo de processos da CPU. Com isso operadores de servidores de nuvem podem garantir que os usuários não consumammais recursos da CPU da pelo qual pagaram. O kernel agora tentará se marcar como TAINT_OOT_MODULE (tainted: out of tree module) quando carregar módulos que não são parte do kernel oficial do Linux. Isso permitirá que desenvolvedores rapidamente reconheçam que estão lidando com esse tipo de ambiente. Esses módulos possuem uma péssima fama entre os hackers do kernel e podem ocasionalmente causar problemas em áreas que em uma primeira vista não estariam relacionadas com eles.
Em combinação com um chip de segurança TPM, o módulo de verificação expandida (extended verification module, EVM) é agora capaz de detectar modificações nos sistemas de arquivos, garantindo que nenhum código malicioso seja carregado durante a inicialização do sistema. Diversos drivers para a tecnologia de virtualização Hyper-V saíram também da área de staging para integrar o kernel. Os programadores da Microsoft estão realizando diversas mudanças e melhorias nos drivers para o núcleo da tecnologia Hyper-V, permitindo que o Linux possa ser virtualizado sob esse sistema, e os poucos drivers que restaram, como mouse, rede e hardware de armazenamento, logo devem sair da área de staging para integrar o futuro kernel 3.3.

Arquitetura

Várias correções permitem que o Linux 3.2 evite alguns efeitos negativos de desempenho causados por uma peculiaridade de instrução do cache L1 dos processadores AMD Bulldozer. Essas correções também foram apresentadas para as séries estáveis dos kernels 3.0 e 3.1, mas ainda não foram integrados.
Além disso, o Linux agora suporta a arquitetura de CPU do Qualcomm Hexagon. Outra novidade é o suporte ao gerador de números aleatórios dos vindouros processadores Ivy Bridge, que agora podem ser endereçados através da instrução x86 RDRAND.

Nenhum comentário:

Postar um comentário