No dia 7 de julho, o Google contou ao mundo sobre um projeto chamado "Google Chrome OS". É um novo sistema operacional, feito para rodar (a princípio) em netbooks. Como era de se esperar do Google, vai haver uma forte ênfase em aplicativos web; parece que o Google vem trabalhando bastante em uma inicialização rápida, na segurança e em uma interface de usuário simplificada. O Google promete abrir o código lá para o fim do ano; espera-se a comercialização do produto para o segundo semestre de 2010.
A maior parte da imprensa vê o Chrome OS como um ataque direto à Microsoft, e é provável que seja mesmo. Por hora, a Microsoft parece ter recuperado o controle na plataforma dos netbooks, mas o Windows não é exatamente a escolha ideal para esse tipo de plataforma. Só que não é só a Microsoft que está se sentindo incomodada pelo novo sistema operacional; também não está claro se o Chrome OS vai ser bom para o Linux. Isso vai depender muito da forma como o Google trabalha com a comunidade do software livre, e a história mostra que pode haver motivo para preocupação.
Os críticos do Linux gostam de destacar o vasto número de distribuições disponíveis. Eles alegam (com razão) que a fragmentação causou grandes danos ao Unix proprietário; o Linux, dizem eles, é bem mais fragmentado do que o Unix. Na verdade, a fragmentação tem se mostrado um problema relativamente pequeno para o Linux. Vale a pena dedicar um minutinho para entender o porquê disso.
Um dos motivos mais óbvios é o fato de todas as distribuições Linux serem baseadas no mesmo kernel. Alguns distribuidores aplicam mais patches do que outros, mas em termos práticos, trata-se da mesma plataforma. O processo de desenvolvimento acelerado adotado no kernel 2.6 ajudou nesse sentido; o código útil vai tão rápido para a linha de produção principal que não há muito motivo para que os distribuidores apliquem patches que tragam funcionalidades expressivas em seus kernels. Coroando o sistema, a ética de "prioridade ao upstream" garante que as melhorias no kernel estejam disponíveis a todos os distribuidores e, consequentemente, a todos os usuários.
Além disso tudo, a camada estrutural do kernel é a mesma para todos os distribuidores. A disponibilidade e o gerenciamento de bibliotecas funciona bem o suficiente para que na maioria das vezes seja possível mover binários complexos entre distribuições com confiança de que eles vão funcionar. Esse é um alto grau de compatibilidade para uma plataforma "fragmentada".
O resultado é uma enorme flexibilidade para a maioria dos usuários do Linux. A capacidade de mudar para uma distribuição diferente sem deixar de rodar o Linux é uma das maiores forças da plataforma; é uma manifestação direta do valor do software livre para seus usuários. Enquanto essa capacidade de mudar continuar sendo um recurso tão fundamental do Linux, não precisamos temer a fragmentação.
Por isso, a pergunta é: será que o novo sistema operacional do Google vai jogar de acordo com as regras que proporcionaram tamanha consistência entre as distribuições Linux? Essa resposta não vai vir agora. Mas o Google Chrome OS não vai ser o primeiro sistema operacional do Google baseado no Linux; esse posto já pertence ao Android. Talvez nós possamos ter uma ideia de como as coisas vão funcionar vendo o que foi feito com o Android:
O kernel era Linux mesmo, mas o Android passou bem longe do lançamento típico de uma distribuição Linux. Uma boa parte do código foi adicionada a portas fechadas, e embutida na plataforma antes de qualquer tipo de lançamento ou análise pública. A maior parte desse código não tem chances de sequer entrar na linha de produção principal do kernel. Agora, embora o código do kernel do Android esteja disponível em uma árvore pública do git, esse kernel é desenvolvido em separado da linha de produção principal.
Com algumas pequenas exceções, ninguém do Google está trabalhando de verdade para que o código do Google passe pela análise da comunidade ou para que seja integrado ao kernel oficial.
A camada estrutural é totalmente diferente; o Google aprontou sua própria biblioteca em C para o Android. As motivações desse trabalho não estão completamente claras, mas parece que o Google se esforçou para fugir de código licenciado pela GPL, e mais especialmente de código pertencente à Free Software Foundation.
Vários de seus aplicativos são proprietários.O resultado final é que, embora baseado no Linux, o Android (em sua forma padrão) não parece muito com um sistema Linux.
Os aplicativos comuns do Linux não funcionam no Android. Com algum esforço, é possível complementar o Android com os recursos necessários para rodar um Linux "normal"; dá até para encaixar
um ambiente Debian completo nele. Mas ele fica como um complemento, e não como parte da plataforma em si.
Pode-se argumentar que o Android pertence a um nicho especial: roda em telefones celulares e precisa, dentre outras coisas, operar de uma maneira que seja aceitável para os fabricantes de portáteis e operadoras de celular, empresas que nem sempre são lá muito boas de jogo. Só que o Google Chrome OS tem foco nos aplicativos para desktops.
Ele vai operar em um nicho no qual o Linux pode ser encontrado; talvez isso o leve a ser mais parecido com um Linux comum. É hora de dar uma olhada mais atenta no anúncio:
O código vai ser lançado "até o fim do ano". Mas já faz um tempo que esse projeto corre, e daqui para frente ele deve ser seguir adiante rapidamente. Sendo assim, nós não estamos começando com um desenvolvimento com base comunitária; o que vamos ter é outro pacote de código daqui a alguns meses.
O código vai ser lançado "até o fim do ano". Mas já faz um tempo que esse projeto corre, e daqui para frente ele deve ser seguir adiante rapidamente. Sendo assim, nós não estamos começando com um desenvolvimento com base comunitária; o que vamos ter é outro pacote de código daqui a alguns meses.
O Google está "redesenhando completamente a arquitetura de segurança por trás do sistema operacional". Não está claro como será aplicado esse modelo de segurança — que pode envolver mudanças no kernel ou ser embutido em uma máquina virtual. De um jeito ou de outro, não parece ser um recurso que vá aumentar a compatibilidade com outras distribuições Linux. A segurança é importante, e não é uma boa quando é desenvolvida a portas fechadas. Se o Google tiver uma maneira melhor de lidar com a segurança no Linux, ele deveria compartilhar suas ideias e contar com a opinião da comunidade agora; apresentar um novo modelo como um fato consumado meses depois não vai ajudar muito.
Não há mais detalhes disponíveis além do fato de que haverá um novo sistema de janelas. Até que ponto isso vai ser novo e diferente? O Google Chrome OS vai rodar aplicativos do X?
A situação dá sinais de se assemelhar à do Android: uma plataforma que pega várias partes do Linux, mas que não é como o Linux, e não dá nada em troca ao Linux.
Mas talvez eu esteja enganado. Quem sabe se o Google não está trabalhando em segredo com um ou mais distribuidores do Linux, ou com projetos como o Moblin ou o Maemo, que estão fazendo um ótimo trabalho para alcançar os objetivos que o Google definiu para seu novo sistema operacional. Talvez, quem sabe, o Google esteja trabalhando para fortalecer os projetos nos quais baseia seu trabalho, em vez de tentar substituí-los. Quando o Google diz:
Temos muito trabalho pela frente, e definitivamente vamos precisar de muita ajuda da comunidade de código aberto para realizar essa visão.
Pode ser que esteja mesmo querendo trabalhar com a comunidade, e não apenas absorver o trabalho dela. Eu espero que sim, mas acho que isso exigiria uma abordagem diferente da que o Google adotou em relação à comunidade no passado.
O Android é algo positivo: ele trouxe o Linux para uma nova classe de plataformas e criou uma nova comunidade de desenvolvimento baseada no software livre. Os desenvolvedores do Android repensaram a forma como o sistema funciona e tentaram aplicar abordagens inovadoras; isso nunca é demais. Não há dúvida de que o mesmo se aplicará ao Google Chrome OS; vai ser interessante ver o que eles vão aprontar. Mas também não há dúvida de que o Google Chrome OS poderia ser bem melhor se fosse desenvolvido dentro da comunidade, e não por cima dela. Eu desejo ao Google toda a sorte do mundo nesse projeto ambicioso, e espero que a comunidade como um todo possa ser parte disso.