terça-feira, 10 de abril de 2012

Chromium OS






... simples assim, mas não é para nós escovadores de bits!

O Chromium OS, sistema operacional do Google está aí... prontinho e funcionando. Mas é um sistema para quem faz tudo na Web, ou seja: email, editor de texto, slides, imagens, vídeos e música.

O código do Chromium é baseado em um kernel Linux e é de código aberto. Portanto, muito pode ser estudado e feito desde já e, se o sistema realmente decolar, muito poderá ser desenvolvido para este novo ambiente. Uma nova fatia de mercado para programadores e pessoal de TI? Acho que sim.

A arquitetura dos sistema é baseada em alguns cortes de testes de redundância feitos pela BIOS, pelo Kernel e pelo SO como, por exemplo, deixar a ativação do hardware toda por conta do SO ou diminuir o tempo de teste e ativação de hardware feito pela BIOS. A BIOS, por sua vez, tem que ser "customizada" para cada tipo de hardware. Mesmo o Power-On Self Test (POST) deve ser adequado para uma otimização do tempo.

Trocando em miúdos a hirearquia é exemplificada na imagem abaixo:

Fig. 1 Arquitetura do Chromium OS

O POST inicia o hardware mas deixa os testes para o Kernel, ou seja, o sistema inicia sem saber se os endereços das memórias estão todos operacionais. A BIOS deve ser um firmware específico e customizado para cada hardware e ter os endereços e interrupções pré-fixados. Aí sim, o Kernel poderá fazer os testes de hardware. Imagino que deva checar a veracidade dos endereços e interrupções da BIOS (ainda não li o código deste kernel).

Primeiro, o hardware tem que ser bem confiável, pois a ativação pelo kernel não mais verifica apenas os endereços dos dispositivos (devices) disponibilizados pela BIOS. Ele tem que verificar a integridade e tempo de resposta dos mesmos. Segundo, fabricantes de hardware vão ter que entrar em um esquema de padronização que ainda não está totalmente resolvida.

Depois disso o SO carrega o X-Windows, as bibliotecas do xorg e as bibliotecas do sistema para então carregar o Gerenciador de Janelas (Window Mannager) e o Chromium propriamente dito. Como é um sistema cujos aplicativos são tipo Web Applications, o Chromium fica como o "shell" para estes aplicativos, para páginas web e extensões.

Na verdade podemos dizer que o Chromium é um Linux otimizado para Aplicativos Web. Enquanto a "propaganda" do Google [2] diz que várias etapas do processo de carregamento do sistema foram eliminadas (veja fig. 2), eu diria que podem ter sido otimizadas e automatizadas, mas todas elas estão lá [3].

Fig. 2 Comparação de um Boot normal de SO e do Chromium

O que é interessante, realmente, é a organização do Gerenciador de Janelas, que cria uma hierarquia totalmente voltada para a Internet e não mais centrada no modelo desktop.

Fig. 3 Hierarquia do Gerenciamento de Janelas

Bem, imagine o tanto de código (QT, GTK, etc.) e ambientes (LXDE, Gnome, KDE etc.) que não mais existirão num sistema assim. A idéia do Google é ousada e muito interessante para o usuário que vai utilizar a máquina como um gadget tipo tablet ou smartphone. Mesmo um thin, ultra ou netbook poderiam tirar vantagem de um sistema simples assim.

É claro que muitos dos programas que usamos, tais como, editores de áudio e vídeo, editoração de texto (TeX/LaTeX), sistemas especializados de CAD etc. não vão funcionar (pelo menos dentro do ambiente do Chromium). Para isto teriam que ser reprogramadas mas no futuro muita coisa vai mudar. Até nossos óculos!



Referências:

[1] http://www.chromium.org/chromium-os

[2] http://www.youtube.com/watch?v=mTFfl7AjNfI

[3] http://www.chromium.org/chromium-os/chromiumos-design-docs/software-architecture

Nenhum comentário:

Postar um comentário