Ads 468x60px

domingo, 24 de julho de 2011

Lançado o kernel Linux 3.0

  
Após dois meses de desenvolvimento, e alguns dias de atraso, o novo kernel do Linux foi oficialmente lançado. Linus Torvalds anunciou oficialmente a versão 3.0 do kernel através da lista de desenvolvimento e de sua conta no Google+. No texto, o líder do projeto de desenvolvimento comenta que a abertura para mesclagem de código dessa nova versão foi relativamente tranquila, descontados alguns problemas que foram descobertos à véspera do lançamento, e que espera que a próxima abertura seja ser igualmente calma. Linus também ressaltou, como já tem feito há algum tempo, que a mudança de numeração tem uma função mais estética do que pragmática, com essa nova versão não surgiram incompatibilidades ou novos recursos que serviriam de marco para uma grande transição.

Contudo, essa declaração não deve ser usada para minimizar os avanços e mudanças que essa versão traz, como habitual temos novos drivers, algumas alterações de arquitetura e alguns pequenos problemas.

Começando pelas más notícias, o novo sistema de numeração pode causar problemas para alguns aplicativos, inclusive ferramentas de sistema, como o cryptsetup, device-mapper, LVM2, mdadm, module-init-tools e procps. Para evitar problemas esses programas devem ser atualizados juntamente com o novo kernel. Alguns desses aplicativos só ativam certos mecanismos para trabalhar com os novos kernels se o número de versão começa com "2.6", outros exigem que o número de versão tenha ao menos três conjuntos de dígitos. Essa prática foi duramente criticada por Torvalds e espera-se que seja abandonada nas próximas revisões de desenvolvimento de cada aplicativo. Como uma solução temporária, o novo kernel se identificará como 3.0.0, mas é apenas uma solução paliativa.

Entre as boas novas, temos a total integração da plataforma de virtualização Xen ao kernel, permitindo que a versão 3.0 possa ser usada como um sistema hospedeiro Xen (Dom0) sem nenhuma grande modificação, como antes se fazia necessário. A Linux Magazine já trouxe uma análise sobre essa integração.

No campo dos drivers e módulos temos uma mudança de realidade, antes os desenvolvedores e hackers do kernel corriam contra a agenda de lançamentos de novos produtos para integrar suporte a novidades na versão vindoura. A contínua contribuição dos fabricantes de hardware trouxe o sistema para a atualidade e pronto para tecnologias vindouras.

Entre as placas gráficas, o driver novo Radeon DRM/KMS já suporta o núcleo gráfico dos novíssimos processadores Llano da AMD para notebooks e desktops, e finalmente trouxe ao Linux o suporte a todas as placas Radeon existentes. Já o driver i915-DRM/KMS, para chips gráficos Intel em processadores e chipsets para notebooks e PCs, já oferece suporte ao núcleo gráfico presente nos processadores Ivy Bridge, que provavelmente não será lançado pela Intel até o começo do próximo ano. O novo driver Nouveau DRM/KMS, para placas gráficas NVIDIA, recebeu mudanças para suportar técnicas de mudanças entre os núcleos gráficos de processadores e dos chips GeForce, tecnologia que a NVIDIA tem chamado de "Optimus" em alguns notebooks.

Quanto aos adaptadores de rede, os novos drivers para placas Realtek e Ralink garantem suporte completo, mesmo que experimental, para novas placas de rede sem fio presentes no mercado. Aqui o trabalho é dos próprios desenvolvedores do kernel que tem conseguido avançar com seus drivers experimentais e abertos, descartando os drivers fechados, com blocos binários, fornecidos pelos fabricantes. O conjunto de módulos para Wi-Fi também já oferece um suporte "básico" à configuração Wake on Wireless LAN (WoWLAN).

Entre outros drivers que merecem destaque está o isci, incluído durante a fase de candidatos de lançamento do kernel, que dá suporte ao controlador SAS nos servidores e cliente C600 da Intel, que também será lançada nos próximos meses. Além disso há novos drivers para suporte à diferentes tecnologias de processadores Intel e AMD, como é o caso do suporte à função EHCI/XHCI Port no conjunto de drivers USB 3.0 e drivers que suportam os relatos de consumo de energia dos novos processadores Bulldozer da AMD. Há também um driver básico para o Microsoft Kinect.

A arquitetura do sistema também sofreu mudanças, após uma crítica severa de Linus Torvalds sobre a qualidade e práticas de código dos desenvolvedores ARM, o código ARM recebeu os primeiros esforços de limpeza. As mudanças e correções ficaram focadas no processo de reinicialização do sistema, buscando assim resolver problemas que existiam com alguns sistemas Apple e diversos notebooks Thinkpad.

Os hackers do kernel também removeram o recurso de "prefetching" de diversas áreas do código. Esse recurso oferecia a aplicativos a capacidade de pedir por dados pouco antes deles serem usados. Apesar de aumentar o desempenho, por carregar os dados na memória cache do processador, descobriu-se recentemente que muitos processadores modernos são capazes de realizar sozinhos a operação, sem a necessidade de intervenção do "pre-fetching" do kernel, que pode inclusive reduzir o desempenho geral do processo.

Foram implementados alguns novos recursos e correções nos principais sistemas de arquivo em desenvolvimento. O sistema XFS ganhou o suporte a "descarte online", que permite que mídias de armazenamento sejam informadas diretamente de áreas de memória recentemente desalocadas quando se deletam arquivos, um recurso importante para SDDs e soluções de armazenamento em rede que usam o modelo de provisão leve (thin provisioning).

O sistema Ext4 agora suporta a função "punch hole" que está acessível via fallocate e permite que programas informem o sistema de arquivos de áreas que não contêm nenhum dado. Esse recurso é especialmente útil para soluções de virtualização, pois permite que o sistema de arquivos desloque áreas de memória não usada em imagens de disco rígidos de arquivos escassos (sparse file hard disk images).

Ocorreram também grandes avanços com o Btrfs, como uma melhoria de desempenho na criação e deleção de arquivos com a inclusão do recurso recentemente desenvolvido chamado "Delayed Inode Items Operation". Foi incluído também o suporte à "scrub", que permite que usuários instruam o kernel a ler todos os dados de uma mídia de armazenamento e conferir a integridade de todos os arquivos presentes. Outro recurso incluso foi a opção de montagem "auto_defrag" que permite que o sistema se desfragmente automaticamente, já que a fragmentação costuma ser um problema com a forma de acesso do Btrfs aos arquivos, o Copy on Write (CoW). Contudo, apesar de tanto trabalho realizado, ainda não terminado um sistema de checagem e correção do sistema de arquivos, o que faz com que permaneça sob a classificação de experimental.

Ao todo o kernel já possui 14.732.555 linhas de código, e foram feitas no desenvolvimento dessa versão 9153 submissões de alteração ou acréscimo de código. Enquanto concordamos que as mudanças não representaram grandes marcos que ensejam mudanças de versão, também não podemos dizer que essa nova versão não nos trouxe nada demais.

0 comentários: