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:
0 comentários:
Postar um comentário