Linux 3.0: uma nova era se inicia

Linux 3.0: uma nova era se inicia

Quando Linus Torvalds anunciou que lançaria a próxima versão do kernel Linux à partir da série 3.x, pessoalmente fiquei muito surpreso. Na prática, toda vez que um software alcança uma nova versão completa, esperamos uma série de inovações que o coloque num patamar acima da versão anterior. Mas não foi bem isso o que aconteceu: basicamente, o mestre Torvalds apenas anunciou que estava desconfortável em lançar o que seria o quadragésimo release da já consagrada série 2.6. Praticamente, não haveria nenhum motivo técnico que justificasse o “pulo” da versão 2.6.40 para a 3.0, embora simbolizasse a entrada para a 3a. década de existência do Linux…


Torvalds exibindo um dos precursores dos netbooks…

Desde o lançamento da versão 2.6 (dez/2003), a metodologia usada para gerenciar o desenvolvimento do kernel mudou radicalmente: ao invés de dispormos das versões estáveis (2.0, 2.2 e 2.4) e de desenvolvimento (2.1, 2.3 e 2.5), foi adotado o esquema de lançamento contínuo, onde as novas implementações seriam disponibilizadas periódicamente na versão estável do kernel, culminando com a versão atual 2.6.39. Mas, a partir da versão 3.0, as coisas continuariam do jeito que estão. Bem, já são quase 8 anos de desenvolvimento e implementação contínua; portanto, pode-se dizer tranquilamente que a nova versão a ser lançada (3.0) difere-se fundamentalmente do primeiro release lançado da série anterior (2.6.0).

Há tempos, venho acompanhando mais atentamente o desenvolvimento do kernel Linux, especialmente todas as novidades relacionadas. Antes, fazia isto por puro entusiasmo; mas agora, venho observando-o mais atentamente, porque muitas das melhorias proporcionadas a cada nova versão, revelam tendências da Tecnologia da Informação como um todo. Por exemplo, a integração das soluções voltadas para a virtualização e o foco na arquitetura ARM, são duas das áreas em que os entusiastas conferem religiosamente, a cada novo release do kernel, sem contar ainda as mudanças relacionadas aos novos sistemas de arquivos (especialmente, o experimental Btrfs). E pelo visto, estamos apenas no começo…

A verdade é que estamos em uma época de transição, onde a computação clássica que conhecemos está dando lugar para a computação móvel. Em poucas palavras: sai o PC desktop, o sistema operacional Windows e os aplicativos binários, para entrar em cena os variados dispositivos móveis, nos quais os sistemas Android, iOS e Windows Phone, disputam por uma vaga, sem contar ainda a oferta de serviços hospedados nas nuvens (com aplicativos instalados ou não). Isto, todos provavelmente já devem saber; no entanto, muitos ainda não se deram conta de que haverão profundas mudanças no processo de desenvolvimento do kernel Linux, independente do sistema em que ele estará gerenciando.

Apesar de ser um sistema com o desenvolvimento patrocinado por uma empresa privada e estar cercado de tecnologias proprietárias e patentes de todo o tipo, o Android carrega o kernel Linux em seu coração. Devido ao impacto que este sistema está causando aos dispositivos móveis, não será uma grande surpresa saber que ele poderá dar novos contornos ao processo de desenvolvimento do kernel Linux. Um belo exemplo que tivemos recentemente, foi a Linux Foundation ao declarar a alta prioridade do desenvolvimento de drivers livres e estáveis para as GPUs PowerVR (a qual equipa boa parte dos SoCs ARM utilizados nos smartphones e tablets), sem contar as habituais colaborações do Google. E conforme o ecossistema do Android aos poucos se fortalece, novas prioridades serão redefinidas…

Inclusive, o desenvolvimento dos drivers dos IGPs PowerVR também acabará afetando os novos SoCs baseados na arquitetura x86. Explico: enquanto que o IGP da antiga série N eram baseados no Intel GMA 950 e 3150, a série Z (para dispositivos ultra-compactos) já utilizava o IGP PowerVR SGX 535 (“rebatizado” pela Intel de GMA 500). Futuramente, quando o Atom Cedar Trail for lançado, estes substituirão a atual série N, que por sua vez eliminarão definitivamente o IGP Intel GMA para dar o lugar aos futuros IGPs PowerVR SGX 535 (que serão “rebatizados”como GMA 600, embora não haja mudança alguma). Felizmente, Alan Cox está dedicando todos os seus esforços para o desenvolvimento dos drivers KMS, para que possam estar disponíveis o mais rápido possível nas futuras versões do kernel.

Uma vez que a maioria dos dispositivos móveis empregam as memórias flash-nand como sistema de armazenamento de dados, a adoção de sistemas de arquivos adequados para esta classe de dispositivos, será fundamental para o bom desempenho geral do sistema operacional. Por isto, o Btrfs promete adicionar uma série de melhorias importantes ao montá-lo com a opção de suporte ao modo SSD, uma vez que todas as características e recursos típicos destas unidades de armazenamento passam a ser plenamente suportadas (o uso dos comandos TRIM, a desabilitação do cache, uma melhor performance em operações de exclusão de arquivos, entre outros). Embora ainda esteja em fase experimental, ele está evoluindo gradativamente. Ao menos, teremos mais uma opção aos demais sistemas de arquivos já existentes! 🙂

A computação em nuvens também mostra os seus reflexos no processo de desenvolvimento do kernel Linux. A necessidade de dispor de uma infraestrutura capaz de atender aos usuários, irá obrigar as companhias definirem melhores estratégias para conceber serviços que tanto amamos. Neste contexto, todo e qualquer avanço na área de virtualização faz uma enorme diferença, onde à partir da versão 3.0, o suporte nativo à para-virtualização através do Xen, irá conferir ao Tux a capacidade de hospedar máquinas virtuais com alto desempenho, mas sem a necessidade de aplicação de patches, tal como era feito nas versões anteriores. O KVM também não ficará de fora, uma vez que não só o seu processo de desenvolvimento esteja à todo vapor, como também existe um enorme esforço em deixá-lo tinindo para as próximas versões do kernel.

Não é só de adições de novos recursos e as suas respectivas implementações que teremos no novo kernel 3.0. As habituais limpezas de códigos e a remoção de outras features que não serão mais utilizadas, também estão sendo analisadas. Por exemplo, o próprio Alan Cox propôs a eliminação do suporte aos barramentos antigos, como o EISA, o MCA e o ISA, já que estes há muito tempo não estão sendo mais utilizados pelos computadores modernos. Inclusive, a própria Intel já estava querendo “matar” o bom e velho slot PCI!

Por fim, teremos também as correções dos problemas relacionados ao alto consumo, causado em virtude de uma implementação do kernel que interage com o sistema de gerenciamento de energia ACPI. À grosso modo, em certas implementações de BIOS, o ASPM (Active-State Power Management for PCI-Express) e o FATD (Fixed ACPI Description Table) “não se entendem” com o kernel Linux, obrigando a este último desabilitar o suporte ao ASPM por padrão, para que não interfira na estabilidade geral do sistema. Como efeito colateral, os dispositivos móveis serão bastante afetados, já que o sistema passará a consumir mais energia por operar no modo de máxima performance, em razão do não funcionamento das tecnologias em questão.

Enfim, uma vez que o kernel 3.0 já estiver disponível no repositório da sua distribuição favorita, as atenções irão se voltar para a próxima versão, que neste caso será a 3.1. Até o presente momento, não tenho muitas novidades a relatar sobre este próximo lançamento, embora saiba que muitas implementações que não tiveram condições de serem lançadas ainda para a versão 3.0, se provavelmente encontrarão na futura 3.1 (como será o caso do KVM). Mas tenho a absoluta certeza de que, devido ao processo de contínuo desenvolvimento, muitas destas novidades trarão um enorme impacto para todo o ecossistema ecológico que envolve o nosso amado Tux!

E até lá, wait and see… &;-D

Por Ednei Pacheco <ednei [at]hardware.com.br>

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X