:::: MENU ::::

domingo, 15 de abril de 2012


Copiado do blog DeveloperWorks, da IBM https://www.ibm.com/developerworks/mydeveloperworks/blogs/752a690f-8e93-4948-b7a3-c060117e8665/entry/as_novidades_do_linux_3.3?lang=pt_br
No último dia 19 (ainda dia 18 nos EUA), Linus Torvalds apresentou ao mundo a aguardada versão 3.3 de seu kernel livre. O primeiro kernel do ano mantém o codinome que já dura algumas versões, Saber-toothed Squirrel(esquilo dentes-de-sabre) e levou 74 dias para ficar pronto (contados a partir do lançamento da versão 3.2). As alterações nesse tempo foram muitas: os mais de 10.000 commits resultaram, pela primeira vez, num total superior a 15 milhões de linhas de código (viva!) distribuídas em 38.082 arquivos.
 

Principal novidade: Android

imagem O que mais chama a atenção no Linux 3.3, no entanto, está fora das tradicionais arenas de servidores e desktops: a reincorporação de partes do código do Android após alguns anos de separação. Se você tem como objetivo criar um mod para dispositivos equipados com Android, esta nova versão do kernel certamente será de grande ajuda — aguarde também as próximas versões!
 

Demais novidades

No entanto, o Android não é a única novidade significativa. Na área de rede, o Linux 3.3 traz avanços interessantes, como o suporte a teaming de interfaces, o combate ao bufferbloat, limitações de rede pelo subsistema cgroups e a inclusão do projeto Open vSwitch. A área de armazenamento também traz novidades no Btrfs e no Ext4.
 

Teaming de interfaces de rede

Quem necessita de alta disponibilidade ou tolerância a falhas na infraestrutura de rede certamente utiliza o módulo bonding do kernel Linux. No entanto, os desenvolvedores do kernel estavam descontentes com a manipulação, o gerenciamento e o desempenho desse recurso. Por isso, criaram o teaming (algo como "criação de equipes") de interface de redes, já anunciado como "um substituto para o bonding rápido, escalável, limpo e controlado pelo espaço de usuário". Isto significa que a criação e manipulação de agrupamentos (teams) de interfaces de rede passará a ser realizado pelo utilitário ip (do pacote iproute2), da seguinte forma:
  ip link add link [ MAC ] [ NAME ] type team
Além do ip, há uma nova biblioteca chamada libteam para interação com o espaço de usuário.
 

Bufferbloat, a ameaça

O fenômeno conhecido como bufferbloat (que pode ser entendido como "excesso de buffers") vem ganhando atenção da mídia técnica em decorrência de seus efeitos altamente maléficos para todos os sistemas conectados em rede. A principal consequência do fenômeno é a enorme latência no tráfego de pacotes de redes pelos mais diversos tipos de aparelhos, desde sistemas operacionais de desktops até os servidores, passando por todos os roteadores no meio do caminho, estejam eles equipados com Linux ou não.
O renomado programador Jim Gettys chegou a montar um vídeo demonstrativo do bufferbloat para explicar a todos a gravidade do problema.
O Linux 3.3, por sua vez, também entrou de cabeça nessa briga com a inclusão dos byte queue limits (limites de filas de bytes). Com eles, torna-se possível limitar o total de bytes que o sistema inclui nos buffers dos dispositivos de rede, o que, por sua vez, permite que pacotes de maior prioridade "furem a fila" e sejam encaminhados ao dispositivo antes dos demais pacotes. Este é um primeiro passo para alcançar um melhor uso dos buffers de rede sem prejudicar a qualidade (e as diferenças!) dos serviços de rede utilizados.
Outro passo significativo é a definição de prioridades de rede por processo, também incluída no kernel 3.3. O subsistema cgroups passa agora a contar com um novo recurso: prioridade de rede. Desta forma, é possível determinar, para cada processo ou grupo de processos, a prioridade dos pacotes que ele envia pela rede. Da mesma forma, é possível definir um tamanho máximo (em bytes) dos buffers TCP para cada cgroup.
Em conjunto, esses recursos permitem determinar que certos serviços de rede terão acesso preferencial à rede, tanto em termos de throughput quanto de latência.
 

Open vSwitch

Em configurações de rede simples, a atual infraestrutura de bridge do kernel Linux dá conta do recado. No entanto, para configurações mais avançadas ou detalhadas, há um grande espaço que os bridges não cobrem.
É nessas situações, geralmente em grandes ambientes de virtualização, que o projeto Open vSwitch tem muito a acrescentar. Embora já exista há alguns anos, somente agora esse código foi incluído no kernel Linux, o que deve elevar drasticamente seu uso.
É uma boa hora para começar a ler a documentação e descobrir como o Open vSwitch pode melhorar sua vida com sua operação nas camadas 2, 3 e 4.
 

Economia de energia em laptops

O recurso RC6 das GPUs Intel incluídas nos processadores mais recentes do fabricante não vinha sendo usado corretamente pelo kernel, o que resultava em diversos problemas de estabilidade — e consequentemente, na desativação desse recurso no kernel. O Linux 3.3 finalmente tratou as particularidades existentes; no entanto, ainda traz o recurso RC6 desativado por padrão (permanece necessário o uso do parâmetro de kernel i915.i915_enable_rc6=1). O resultado é uma economia de 3 a 5 Watts quando em estado ocioso.
Além disso, o uso correto do ASPM (active state power management) para gerenciar o uso de energia por dispositivos — já portado para os kernels 3.2.5 e 3.0.20 — está incluído também no Linux 3.3.
 

Btrfs e Ext4

A grande novidade no Btrfs, o próximo sistema de arquivos padrão do Linux, é a capacidade de alterar o layout de RAID sem interromper o uso do sistema. Por exemplo, quando se usa o Btrfs em modo RAID 0 (striping), o sistema distribui dados e metadados pelos discos utilizados. Caso seja adicionado um novo disco ao volume Btrfs, o sistema executa uma ação chamada balance para redistribuir dados e metadados levando em conta o novo disco. No Linux 3.3, o Btrfs alterou a forma como o balance é realizado e agora passa a permitir até a alteração do nível de RAID (desde que ambos os níveis utilizem striping, como ocorre nos níveis 0, 5 e 6).
O Ext4 também sofreu uma alteração benéfica em seus algoritmos: o redimensionamento de um sistema de arquivos Ext4 agora está estupidamente mais rápido (num teste simples e realista, foi de 5 minutos para menos de 5 segundos, por exemplo), como mostra Yongqiang Yang num e-mail para a lista de desenvolvedores do Ext4.
 

NVMe: acesso direto a Flash via PCI Express

Se você possui um dispositivo de armazenamento SSD acessível diretamente via PCI Express, você tem — além da minha inveja — um motivo para comemorar a chegada do Linux 3.3: ele traz o driver NVMe para esse novo padrão de acesso. Vale lembrar que esse mesmo protocolo também será usado pela próxima versão do padrão SATA, o SATA Express.
 

Suporte a EFI

Se você precisa carregar o Linux numa máquina com inicialização via EFI, o kernel 3.3 é para você: ele pode ser carregado diretamente pela EFI, pois passa a ser reconhecido como um carregador de EFI como qualquer outro.
 

Futuro: kernel 3.4 e além

A chegada da ABI x32 está cada vez mais próxima e pode ocorrer a tempo para o kernel 3.4. Com essa nova ABI proposta por desenvolvedores do kernel e do GCC, entre outros, programas feitos para a arquitetura x86 de 32 bits poderão ser recompilados de forma "limpa" para a ABI x32 e abandonar completamente o modo de compatibilidade da arquitetura x86-64.
Um novo módulo de segurança chamado Yama, de autoria de um desenvolvedor da Canonical, deve estrear em breve, ajudando o processo de hardening do sistema.
O sistema de arquivos Btrfs caminha inexoravelmente para o uso como padrão no Linux. Um de seus principais patrocinadores, a Oracle, já anunciou a certeza de que o adotará em breve como padrão em seu sistema Linux.
Até a próxima!

Posts populares