sexta-feira, 17 de setembro de 2010

Introdução

O projeto Chrome OS, desenvolvido pelo Google, tem como objetivo criar um sistema operacional leve e rápido, com foco em aplicativos da web – o usuário não instala nenhum software no computador, já que é tudo baseado em computação na nuvem. O sistema suporta as arquiteturas ARM e x86, tem o código fonte aberto e kernel Linux. Ao contrário da maioria dos OS baseados neste kernel, o Chrome OS não estará disponível para download, já que ele virá embarcado nos netbooks criados pelos parceiros do Google.
Google Chrome OS
A previsão é que os primeiros computadores rodando este OS estejam no mercado até final de 2010. No final de 2009, o Google disponibilizou o código fonte do Chrome OS através do projeto Chromium OS. Neste artigo vamos abordar a estrutura do Chrome OS, e conhecer algumas tecnologias desenvolvidas para apoiar o uso de aplicativos baseados na web.




 

Arquitetura de Software

O Google descreve, nos documentos preliminares do projeto Chromium OS, um sistema com três camadas principais: o gerenciador de janelas e navegador; os softwares do sistema; e o firmware.
Estrutura do sistema
Estrutura do sistema
O firmware é o componente chave para tornar o processo de boot do sistema rápido e seguro. Foram removidos componentes desnecessários – como suporte a disquete, por exemplo. Abandonar a compatibilidade com uma grande quantidade de hardware obsoleto reduz a complexidade e torna a inicialização mais agil. Além disso, foi incluído a verificação de todos os passos do boot e o suporte a restauração do sistema.

Cada vez que o sistema é inicializado, o firmware começa um processo de verificação da integridade do próprio firmware, do kernel e da imagem do sistema – garantindo que nenhum destes tenham sido corrompidos ou alterados. Se essa verificação falhar, entra em ação o restaurador do sistema, que restaura a maquina para o seu estado original – a imagem de recuperação deverá estar contida em um cartão SD, pendrive, ou dispositivo do gênero.

Na camada acima do firmware fica o kernel Linux, drivers e demais softwares de controle – como o gerenciador de conexões, por exemplo. O kernel utilizado é padrão, com exceção de algumas mudanças para melhorar o tempo de inicialização. Os serviços são controlados pelo gerenciador Upstart – que permite iniciar serviços em paralelo, reiniciar tarefas que travaram, e atrasar serviços para fazer o boot avançar mais rápido.

No topo, está a camada referente ao gerenciador de janelas e o Chromium. O gerenciador de janelas é responsável pelo controle de toda a interação do usuário com as múltiplas janelas abertas. Ele funciona de forma similar aos outros gerenciadores X – controlando as posições das janelas e designando o local em que as ações do usuário devem ser aplicadas. Ainda, a biblioteca Clutter é usada para animar e renderizar as janelas – via OpenGL ou OpenGL|ES.

O Chrome OS é focado em aplicativos e dados obtidos através da internet; por isso, o único aplicativo disponível no sistema operacional é o navegador – que será complementado por um tocador de mídia e o plugin Flash. Pelo diagrama é possível notar que este software é profundamente integrado com o sistema, estando ao lado do gerenciador de janelas. Assim como no navegador Chrome, o OS cria, para cada aba aberta, um processo independente – dessa forma, o sistema não fica instável caso alguma aba pare de responder.

Plataforma

Login e contas de usuário:
Computadores com o Chrome OS têm os dados e preferências do usuário sincronizados com diversos serviços na “nuvem” – o termo “nuvem” significa internet, onde provedores de serviços, como o Google, armazenam os dados, possibilitando o acesso às informações através de qualquer dispositivo conectado. Para que um sistema operacional como o Chrome OS seja viável, é necessário que um mecanismo único de login seja utilizado – ou seja, um nome de usuário e senha é capaz de dar acesso a todo o pacote de dados necessários – configurações pessoais, dados, emails, etc.

Atualmente, é necessário uma conta do Google para poder ter acesso ao sistema, mas existem planos para suportar outros serviços de autenticação – como o OpenID, por exemplo. Para o primeiro login é necessário estar conectado à internet. Após o primeiro acesso é possível utilizar o sistema offline – alguns aplicativos da web, como o Gmail, gravam dados no disco do usuário, possibilitando a leitura sem conexão com a internet.
Tela de login do Chromium OS
Tela de login do Chromium OS
O Chrome OS conta com uma implementação de auto-login segura. Normalmente, para efetuar auto-login, os softwares guardam o nome do usuário e a senha em seus dados – e, com base nessas informações, criam rotinas para logar; essa abordagem expõe as informações privadas do usuário a riscos desnecessários. No Chrome OS, quando o usuário opta por auto-login, o sistema cria um identificador único para o computador – chamado de token – e o vincula à conta do usuário. Ao ligar o computador, o sistema verifica a validade do token e efetua o login. Caso a máquina tenha sido comprometida, é possível revogar a validade do identificador, reduzindo os riscos de acesso indevido. Entretanto, a presença de um token é considerada suficiente para garantir um login offline – o que torna os dados armazenados em disco vulneráveis no caso de roubo da maquina.

Impressão:
O aumento de computação na nuvem trouxe o acesso às informações em praticamente qualquer dispositivo; mas impressoras ainda são dispositivos limitados à uma rede fechada e, principalmente, requerem a instalação de drivers específicos. O desenvolvimento e manutenção de drivers para toda a combinação de hardware e software existentes é impraticável. Com isso em mente, e mais a idéia de que todos os aplicativos do Chrome OS são páginas da internet, foi criado o projeto Google Cloud Printing.
Google Cloud Printing
Google Cloud Printing
Esse projeto, ainda em fase embrionária, usa o componente que todos os dispositivos modernos têm em comum – o acesso à nuvem – para permitir que qualquer aplicativo, baseado na web ou não, em qualquer plataforma possa imprimir em qualquer impressora. No lado do aplicativo, uma API coleta todas as informações necessárias para realizar a impressão e envia os dados para a internet. Na nuvem, os dados são processados e repassados à impressora correspondente, que imprimirá o documento.

A comunicação da impressora com o Google Cloud Printing poderá se dar de duas formas: via impressoras compatíveis com o recurso (ainda inexistentes), ou através de uma impressora conectada a um computador e um proxy. No futuro, as impressoras compatíveis com o recurso se registrarão com um ou mais serviços de impressão e aguardarão pelas solicitações de impressão – podemos pensar nisso como uma impressora de rede disponível em toda internet – para usuários devidamente registrados -, e que não necessita a instalação de drivers.

Para as impressoras atuais (tanto de rede, quanto via USB), será necessário instalar um software intermediário – chamado de proxy – que faz a comunicação entre a impressora e o serviço de impressão na nuvem. Este software já está sendo desenvolvido para Windows – versões para Mac e Linux deverão ser criadas em seguida.

Manuseio de arquivos:
A questão de manuseio dos diferentes tipos de arquivos ainda não foi solucionada pelos desenvolvedores do Chrome OS. O problema é forma de associar os diversos formatos de arquivos aos web apps compatíveis. Por exemplo, se eu clicar em um arquivo .doc, o que deve acontecer? O sistema deve abrir um web app como o Office Live, para editar o arquivo. Ou abrir o Gview, para visualizar o documento. Ou, ainda, fazer o download do arquivo para um drive removível.

Os desenvolvedores do OS estão discutindo como o usuário poderia informar ao sistema qual ação tomar para cada tipo de arquivo. Eles buscam uma forma simples e flexível de implementar este controle, evitando que diversos programas fiquem lutando para ser o aplicativo padrão para tal formato de arquivo, como ocorre em alguns sistemas operacionais atuais.

Hardware:
O foco principal do Chrome OS são os dispositivos secundários, como netbooks. Estas maquinas rodarão em hardware baseado nos processadores ARM ou x86. O Google solicitou que apenas SSDs sejam utilizados para armazenar os dados do sistema operacional – devido ao seu desempenho superior em relação aos HDDs. Como o SO utiliza 60 vezes menos espaço do que o Windows 7 e os dados são armazenados na nuvem, a capacidade do drive poderá ser menor que o usual.

Fonte:ForumPcs

0 comentários: