Finalmente foi lançado o kernel Linux 3.0. Esta versão, tão ansiosamente
aguardada por tantos milhões de administradores de sistema e usuários em todo o
planeta, destaca-se de todas as anteriores por...
...apenas um número de versão. :)
É isso aí,
nada de
extraordinário mudou no Linux desde a versão anterior, a de número
2.6.39.
A alteração no número da versão se deve unicamente ao
humor
do senhor Linus Torvalds e dos hackers que o acompanham nessa jornada.
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).
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.
Nenhum comentário:
Postar um comentário