quinta-feira, 22 de dezembro de 2011

Linux 3.0

Créditos: ibm.com

Cara, cadê meu script?

Engana-se, contudo, quem acha que uma mudança de número de versão só tem implicações estéticas. Os scripts usados pela infra-estrutura de gerenciamento de código do kernel dependiam do formato antigo, x.y.z.w e exigiram certo trabalho dos programadores para que continuassem funcionando no novo sistema x.y.z (a primeira versão de revisão do kernel 3.0 terá o número 3.0.1). A solução temporária para esse problema é que o Linux 3.0 informará a versão 3.0.0.
Além dos scripts, há ferramentas que dependem do sistema antigo para definir o modo como irão operar. Portanto, o kernel 3.0 deverá exigir atualizações em algumas dessas ferramentas, como as module-init-tools e o device-mapper.
Conclusão: tenha calma para atualizar seu kernel!
No entanto, há, sim, novidades deveras interessantes para todos os gostos. Após 64 dias de desenvolvimento, os 9.153 commits enviados por hackers de todo o planeta chegaram a um total de 36.795 arquivos que, juntos, compõem nosso kernel livre preferido.
 

Dom0 do Xen com um (nada) pequeno atraso

O recurso mais aguardado da versão 3.0 foi, enfim, a inclusão de todos os recursos necessários para o funcionamento do kernel Linux oficial como Dom0 sob o hypervisor Xen. Este recurso chegou, finalmente, após um atraso nada moderado de seis anos. Os motivos de tanta demora são polêmicos: o suporte a Dom0 do Xen exigia alterações em vários subsistemas do kernel, o que exigiu muito vai-e-vem de patches para manter o nível, a qualidade e o "dialeto" de cada área de interação entre os dois projetos. Ainda assim, argumentava-se que o kernel desenvolvido pela equipe do Xen funcionava a contento e não exigiria tanto diálogo. O fato é que o Linux finalmente se torna agora perfeitamente compatível com o uso como Dom0 no Xen. Ponto para a equipe do pinguim!
Por outro lado, "compatível" não significa que todos os recursos de um Dom0 estejam disponíveis no Linux. Por exemplo, o pass-through de USB ainda não foi implementado no código incluído nesta versão do Linux.
 

Btrfs e companhia

O "ZFS do Linux", Btrfs, ainda não está pronto. Porém, está consideravelmente mais rápido no Linux 3.0. Alterações no código de manipulação de inodes tornaram esse sistema de arquivos 15% mais veloz ao criar arquivos e 20% mais rápido para apagá-los. Junto a isso, agora é possível verificar a integridade de arquivos por meio de comandos de usuário usando checksums, e o código que lida com a criação de arquivos tornou-se capaz de detectar padrões causadores de fragmentação — um problema grande e frequente em sistemas de arquivos COW como o Btrfs — e evitá-los já na origem.
Com relação aos demais sistemas de arquivos, apenas Ext4 e XFS parecem receber atenção considerável dos desenvolvedores nos últimos tempos. Novidades no Ext4 reduzem o uso de memória em cenários de virtualização, e o XFS passa a trabalhar de forma mais econômica e eficiente com SSDs.
 

Colaram do Windows

O kernel Linux costumava reiniciar PCs de forma diferente de sistemas Windows. No entanto, alguns problemas detectados em certas combinações de hardware (como as de certas máquinas Apple e Lenovo) levaram os desenvolvedores a imitar o comportamento do sistema da Microsoft nesse quesito.
 

Cleancache

O cache de dados do disco na memória é um importante recurso para aumentar o desempenho no acesso a esses dados, pois a memória é algumas ordens de grandeza mais rápida do que discos mecânicos.
Com o novo recurso cleancache, o kernel passa a oferecer um cache com potencial para persistir na memória durante mais tempo e melhorar o desempenho do sistema como um todo, além de poder residir em dispositivos de armazenamento compactados. Curiosamente, a permanência desse cache na memória é imprevisível e praticamente incontrolável, mas seus resultados já se mostraram muito benéficos.
 

Rede

O principal avanço na área de redes no kernel 3.0 foi a inclusão de um compilador JIT para o Berkeley Packet Filter (BPF), capaz de acelerar significativa a captura de pacotes por meio da geração de código de assembler.
Nas redes wi-fi, finalmente os drivers para chips Ralink contemplam tudo que os drivers rt2860sta e rt2870sta faziam quando foram incorporados à árvore staging. Além disso, foi incluído o driver rtl8192se para chips PCIe desse modelo.
Além disso, uma nova chamada de sistema, a sendmmsg(), já se mostrou capaz de melhorar o throughput no envio de pacotes UDP em 20%. Com princípio semelhante ao da chamada recvmmsg() inaugurada no kernel 2.6.33, uma única chamada a sendmmsg() pode substituir múltiplas chamadas a recvmsg(), o que explica o ganho de velocidade.
 

Vídeo

Como de costume, a versão mais recente do kernel traz suporte novo ou melhorado a chips de vídeo: as GPUs embutidas em processadores AMD Llano e Intel Ivy Bridge já contam com suporte por parte do DRM, e o driver Nouveau também recebeu melhorias no suporte a tecnologias de alternância de GPUs.
 

Hardware é melhor que software

Um recurso antes fundamental para aumentar o desempenho de aplicativos, o prefetch, passa agora a ser desativado por padrão no kernel Linux. O motivo: processadores modernos já são capazes de realizar todo o prefetching sozinhos, sem ajuda do sistema operacional, e de forma mais eficaz. Com o prefetch ativado no hardware e no sistema operacional, o desempenho poderia até piorar.
 

Ajuda da Microsoft

O driver do kernel Linux para o hypervisor Hyper-V da Microsoft recebeu inúmeras alterações no Linux 3.0. Foram tantos changesets enviados pela empresa que seu desenvolvedor K. Y. Srinivasan ocupou a primeira colocação em número de changesets e a Microsoft ficou na sétima posição no ranking de empresas que enviaram changesets (e décima-sétima no número de linhas alteradas).
A ajuda da empresa chefiada por Steve Ballmer foi recebida e utilizada, mas o editor do site LWN não poupou críticas à empresa em seu relatório dos maiores contribuidores do kernel: "é impressionante ver quanta faxina é necessária para um código de menos de 15.000 linhas", comentou ao se referir à limpeza de código que respondeu pela maior parte dos envios de código da Microsoft.
 

Conclusão

No momento em que escrevo este post, meu kernel 3.0 está em processo de compilação. Caso eu encontre problemas em seu uso, estejam certos de que escreverei aqui um alerta a esse respeito.
Até a próxima! E que não haja problemas! :)
 

Links interessantes

Estes links forneceram informações valiosas para este post:

Gostou? Então copie esse post para seu Blog:

0 comentários: