Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

A primeira vez que acessar o developerWorks, um perfil será criado para você. Informações do seu perfil (tais como: nome, país / região, e empresa) estarão disponíveis ao público, que poderá acompanhar qualquer conteúdo que você publicar. Seu perfil no developerWorks pode ser atualizado a qualquer momento.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Desenvolvimento de Desktop para o Laptop OLPC

Crie uma Imagem XO-1 no QEMU e Aprenda o Ambiente Sugar

M. Tim Jones, Consultant Engineer, Emulex Corp.
M. Tim Jones
M. Tim Jones é um arquiteto de firmwares embarcados e autor de Inteligência Artificial: Sistemas de Abordagem, GNU/Linux, Programação de Aplicativos AI (atualmente em sua segunda edição), Programação de Aplicativos AI (em sua segunda edição) e BSD Sockets Programming from a Multilanguage Perspective. Sua formação em engenharia vai desde o desenvolvimento de kernels para nave espacial geossincrônica até a arquitetura de sistema embarcado e o desenvolvimento de protocolos de interligação de redes. Tim é um Engenheiro Consultor para a Emulex Corp. em Longmont, Colorado.

Resumo:  O laptop XO (da iniciativa One-Laptop-Per-Child) é um projeto com laptops acessíveis que pretende auxiliar na educação de crianças em todo o mundo. O laptop inclui várias inovações, como um design de hardware novo, acessível e durável, e o uso do GNU/Linux ® como o sistema operacional subjacente. O XO também inclui um ambiente de aplicativo escrito em Python com uma interface humana chamada Sugar, acessível a qualquer pessoa (inclusive crianças). Este artigo foi extraído do tutorial "Application development for the OLPC laptop," do developeWorks, que descreve as APIs Sugar e mostra como desenvolver e depurar uma atividade gráfica em Sugar utilizando o Python.

Data:  26/Fev/2008
Nível:  Introdutório
Atividade:  2060 visualizações
Comentários:  


OLPC e o Laptop XO

O XO-1 é um computador laptop criado para fabricação com custos acessíveis e distribuído para crianças em países em desenvolvimento em todo o mundo. Esse laptop tem como objetivo levar tecnologia e acesso a informações às crianças que não possuem esse recurso. O laptop inclui rede wireless, que permite que as crianças colaborem localmente umas com as outras em projetos.

O laptop foi proposto, pela primeira vez, pela faculdade do Laboratório de Mídia do Instituto Massachusetts de Tecnologia (MIT) na organização sem fins lucrativos, One Laptop Per Child. A organização inclui profissionais notáveis como Nicholas Negroponte e, antigamente, Seymour Papert (um pioneiro no campo de inteligência artificial), cujas ideias e pesquisas foram instrumento do projeto.

O projeto não passou sem críticas. Como tecnologia, o laptop é inovador, mas algumas pessoas ponderavam se o dinheiro gasto com laptops em alguns países em desenvolvimento não seria melhor utilizado para outros fins. Por exemplo, alguns dos países para os quais o XO-1 seria distribuído não possuíam elementos básicos para educação (como escolas ou bibliotecas). Consulte Recursos para obter mais detalhes.

O Laptop XO-1

O design do laptop XO-1 é interessante, pois ele inclui dois requisitos diferentes. Primeiro, o laptop XO-1 deve ser acessível (vendido a 140 dólares), mas deve ser rico em recursos. O design inclui um processador AMD Geode 433MHz, 128MB de RAM, 1GB de NAND flash (em vez de um disco rígido), LCD dual-mode de 7,5 polegadas, rede wireless e até câmera. O laptop também é criado para ser operado em ambientes não-tradicionais e, portanto, é muito resistente e durável (consulte a Figura 1).


Figura 1. O Laptop XO-1
O Laptop XO-1

A rede wireless é baseada em um chip 802.11b/g e 802.11s, que oferece suporte à rede padrão e de malha. Isso permite que os laptops roteiem pacotes entre eles de forma autônoma em uma rede ponto a ponto (sem a necessidade de um roteador separado). A rede de malha funciona até mesmo quando a CPU está desligada.

Software

Embora as ideias por trás do laptop XO-1 sejam intrigantes e seu design físico e de hardware o tornem inovador, o mais interessante de tudo é o software. O laptop XO-1 foi desenvolvido com GNU/Linux (uma versão mínima baseada no projeto Fedora). O sistema de entrada/saída básico (BIOS) é o Open Firmware, que foi escrito em uma variante do Forth. A Interface Gráfica com o Usuário (GUI), chamada Sugar, tem como base o sistema de janelas X e foi escrita no Python. Este é, de longe, o elemento mais interessante, pois torna o XO-1 um ambiente de desenvolvimento imediato (o Python é uma linguagem interpretada.) Nenhum compilador é necessário e qualquer pessoa pode desenvolver atividades do Sugar (ou seja, aplicativos na GUI do Sugar). Em outras palavras, todo software no laptop XO-1 é um software livre e, portanto, modificável.

Este uso do Python é interessante, pois como núcleo do laptop XO-1, ele expõe o Python a milhões de crianças ao redor do mundo. O Python foi criado como uma linguagem para o aprendizado de programação, portanto, foi uma decisão ideal e tem potencial para criar uma nova população de entusiastas de Python.


Emulação do Laptop XO

QEMU é um aplicativo de virtualização de plataforma que permite que um computador seja inteiramente emulado (processadores e periféricos associados) para fins de virtualização de outro sistema operacional nele. Com ele, é possível emular o Linux no Windows, o Windows no Linux, ou qualquer outro sistema operacional em outro sistema operacional que execute o QEMU. É possível até mesmo emular um sistema operacional para uma arquitetura diferente do host. Por exemplo, é possível emular um sistema Arm Linux no host x86.

Uma emulação do sistema é composta pelo emulador de plataformas (QEMU), um acelerador opcional (KQEMU) e uma imagem raiz (um arquivo no sistema operacional do host) que contém o kernel e o sistema de arquivos raiz. Para obter mais detalhes sobre o QEMU e sua operação interna, consulte Recursos.

Download e Instalação do QEMU

A instalação do QEMU e do acelerador é muito simples no GNU/Linux. A Lista 1 fornece as instruções de download, criação e instalação do QEMU.


Lista 1. Fazendo Download, Criando e Instalando o QEMU
                
                $ wget http://fabrice.bellard.free.fr/qemu/qemu-0.9.0.tar.gz
$ tar xfvz qemu-0.9.0.tar.gz
$ cd qemu-0.9.0
$ ./configure
$ make
$ make install
$
            

O acelerador QEMU é uma etapa opcional, mas eu a recomendo porque ela resulta um ótimo desempenho. A Lista 2 fornece o download, a criação e as instruções de instalação do acelerador QEMU.


Lista 2. Fazendo Download, Criando e Instalando o Acelerador QEMU
                
                $ wget http://fabrice.bellard.free.fr/qemu/kqemu-1.3.0pre11.tar.gz
$ tar xvfz kqemu-1.3.0pre11.tar.gz
$ cd kqemu-1.3.0pre11
$ ./configure
$ make
$ make install
$ insmod kqemu.ko
            

Nota: No final da Lista 2, o módulo de kernel do acelerador QEMU é instalado.

Obtenha o Kernel e as Imagens do Sistema de Arquivos do XO

A etapa final na preparação é fazer download e preparar a imagem do QEMU para o laptop XO-1. A Lista 3 mostra como recuperar esta imagem e extraí-la antes do uso. A imagem é bem grande (183MB), portanto o tempo de download pode ser longo. Além disso, a imagem transferida por download é expandida para quase 1GB de tamanho, portanto, certifique-se de ter espaço disponível suficiente.


Lista 3. Download e Extração da Imagem OLPC
                
 $ wget http://olpc.download.redhat.com/olpc/streams/development/LATEST-STABLE-BUILD/
  devel_ext3/olpc-redhat-stream-development-devel_ext3.img.bz2
$ bunzip2 olpc-redhat-stream-development-devel_ext3.img.bz2
            

Iniciar o Laptop XO-1

Com a imagem OLPC transferida por download e extraída, faremos uma execução de teste. Inicie QEMU com duas opções que especificam a quantidade de memória para tornar disponível (256MB) e o disco rígido para utilizar para a emulação (a imagem que você transferiu por download acima):


Lista 4. Iniciando QEMU
                
$ qemu -m 256 -hda olpc-redhat-stream-development-devel_ext3.img
            

Deve-se então verificar o boot padrão do Linux a partir do GNU GRUB (loader GRand Unified Boot). No final há a janela de inicialização, que solicita que você forneça um nome de usuário (consulte a Figura 2). Depois de fornecer um nome, é possível, opcionalmente, alterar o esquema de cores. No final, você terá uma tela inicial para o laptop XO-1, que será explorada na próxima seção.


Figura 2.
Efetuar login pela primeira vez no laptop XO-1

Se você quiser deixar o QEMU e retornar o contexto do mouse para o sistema operacional do host, pressione Ctrl-Alt. Para retornar ao XO-1, clique no quadro do Sugar e o contexto do mouse retornará para o QEMU.


Navegando pelo Sugar

Agora que você efetuou login e está pronto para começar, explore a UI OLPC Sugar.

Modo Inicial e o Quadro

A janela principal no Sugar é chamada de modo inicial (consulte a Figura 3). Essa janela é basicamente o desktop e o informa sobre seu ambiente, suas atividades etc. No centro da janela há o ícone do XO, que representa você e seu laptop. Se outros usuários ficarem visíveis a você com wireless, você também os verá. Para encerrar o laptop, coloque o cursor do mouse sobre o ícone X e clique na opção de encerramento.


Figura 3. Modo Inicial para o Laptop XO-1
Modo Inicial para o Laptop XO-1

O anel ao redor do seu laptop lhe mostra as atividades que estão em execução no momento. É possível clicar em qualquer ícone aqui para retornar a uma atividade em execução. Para retornar ao modo inicial, mova o mouse para um canto da janela. Isso o faz retornar ao quadro para visualização. Observe os quatro ícones de "zoom" circulares no canto esquerdo do quadro: o último representa as atividades acessadas mais recentemente. Clicar nesse ícone o leva de volta àquela atividade (que ocupa toda a janela). O penúltimo ícone (o ícone com um ponto no centro) representa a janela inicial. Clicar neste ícone o leva de volta ao modo inicial. O próximo ícone (o ícone com três pontos) mostra os grupos, que são amigos locais e as atividades que eles estão executando. Por fim, o primeiro ícone (o ícone com muitos pontos) representa todo o ambiente. Esse ícone mostra todos os usuários e as atividades que eles estão compartilhando.

Iniciar uma Atividade

No final do quadro há uma coleção de atividades que é possível executar. Uma atividade é um aplicativo; como visto na Figura 3, o laptop XO-1 oferece suporte a várias atividades. O Sugar vem equipado com um navegador da Web, uma calculadora, um programa gráfico, um leitor de notícias e outros programas que é possível compartilhar com outros usuários para colaborar em projetos. Para iniciar uma atividade, clique no ícone dessa atividade na parte inferior do quadro. Na Figura 4, eu comecei a atividade de Gravação e incluí um texto.


Figura 4. Uma Atividade em Execução no Sugar
Uma Atividade em Execução no Sugar

Teclas de Controle

Utilizar o mouse para navegar é muito simples, mas o Sugar permite teclas de controle para transições mais rápidas entre aplicativos e modos. A Tabela 1 lista sequências de controle importantes que podem ser utilizadas para comutar facilmente entre os modos.


Tabela 1. Sequências de Controle para Comutar entre Modos
Tecla de ControleAção
F1Vai para a visualização do ambiente
F2Vai para a visualização do grupo
F3Vai para o modo inicial
F4Vai para a última atividade

Console do Desenvolvedor

Como o Sugar é criado no sistema operacional Linux, o trabalho de desenvolvimento requer acesso a um shell. É possível acessar o shell pressionando Alt-=, que mostra um prompt de login. Nesse prompt, digite root para chamar um prompt bash amigável. Também é possível acessar um shell através do console do desenvolvedor, mostrado na Figura 5. Esse console inclui cinco guias para acesso a um painel de recurso, um visualizador de log, um painel de presença (para wireless conectado a laptops XO-1) e um terminal (shell bash), respectivamente.


Figura 5. O Console do Desenvolvedor
O Console do Desenvolvedor

Sempre que você desejar retornar ao Sugar, pressione Ctrl-Alt-F3. O shell permanece ativo, de modo que seja possível voltar e avançar, de forma conveniente, entre o Sugar e o Bash.

Outros atalhos incluem Alt-F para ativar e desativar o quadro (ou seja, a borda ao redor da janela). É possível sair da atividade atual pressionando Alt-C e encerrar a GUI do Sugar pressionando Ctrl-Alt-Backspace.

Estender o Laptop XO

Fazer download de uma imagem do sistema de arquivos para o laptop XO-1 significa que você obtém um kernel e o sistema de arquivos raiz em um. O sistema de arquivos contém todos os aplicativos e componentes OLPC necessários para ativar o laptop XO-1. Mas isso não significa que não seja possível estender o software. Um dos pacotes residentes no sistema de arquivos, YUM (Yellow-dog Updated, Modified), é um sistema de gerenciamento de pacotes que simplifica o download, a instalação e a configuração dos pacotes de software.

Com o YUM, é possível fazer download e instalar novos pacotes, bem como atualizar todos os pacotes existentes em um sistema. Por exemplo, a Lista 4 mostra como atualizar os pacotes que foram alterados desde a última atualização.


Lista 5. Utilizando o YUM para Instalar Novas Atualizações
                
-bash-3.2# yum -y update
Carregando o plug-in "installonlyn"
Configurando o Processo de Atualização
olpc_development          100% |==========================| 1.1 kB    00:00
primary.xml.gz            100% |==========================| 2.9 MB    00:17
olpc_devel: ################################################### 11448/11448
olpc_devel_kernel_repo    100% |==========================|  951 B    00:00
olpc_devel: ################################################### 23/23
Nenhum pacote marcado para atualização/obsolescência
-bash-3.2#


Saiba Mais

Para informações completas sobre atividades de desenvolvimento para o laptop XO, inclusive detalhes por trás do desenvolvimento de atividades, programação Python e API Sugar para o Python, leia "Desenvolvimento de Aplicativos para o Laptop OLPC."


Recursos

Aprender

  • No artigo "Sugar, the XO laptop, and One Laptop per Child" (developerWorks, abril de 2007) de Tim, faça um tour pelo Sugar, a interface de usuário inovadora do laptop XO.

  • Neste developerWorks interview with OLPC visionary Walter Bender (developerWorks, abril de 2007), conheça a visão, os obstáculos encarados e as atualizações do OLPC.

  • O web site oficial do OLPC apresenta a filosofia e a visão do projeto OLPC e explora como o laptop beneficiará crianças em todo o mundo.

  • A Wikipedia possui uma ótima apresentação do laptop XO-1, sua história, seu design, seu software e seus recursos. O laptop é inovador, mas alguns críticos ponderam se o dinheiro gasto com laptops em alguns países em desenvolvimento não seria melhor utilizado para outros fins.

  • Em "Emulação do Sistema com o QEMU" (developerWorks, setembro de 2007), aprenda sobre o QEMU e seu uso como um emulador de plataforma. Este artigo apresenta a virtualização, depois discute o QEMU internamento e seu uso. Para mais detalhes sobre a virtualização e o intervalo de soluções Linux, consulte "Linux Virtual" (developerWorks, dezembro de 2006).

  • Uma lista de atividades e projetos para o XO-1 encontra-se no site laptop.org. Antigamente, a lista era esparsa, mas hoje, serão encontradas diversas atividades, como atividades educativas, reprodutores de áudio e vídeo, ferramentas de criação de mídia, ferramentas de programação e aplicativos de rede necessários (como navegadores, leitores de alimentação e programas de e-mail). Será encontrada até mesmo uma variedade de jogos. (O Python é uma ótima linguagem para o desenvolvimento de jogos.)

  • Na zona Linux do developerWorks, encontre mais recursos para desenvolvedores Linux e varra nossos artigos e tutoriais mais conhecidos.

  • Consulte todas as dicas de Linux e tutoriais de Linux no developerWorks.

  • Fique atualizado com eventos técnicos e Webcasts do developerWorks.

Obter produtos e tecnologias

Discutir

Sobre o autor

M. Tim Jones

M. Tim Jones é um arquiteto de firmwares embarcados e autor de Inteligência Artificial: Sistemas de Abordagem, GNU/Linux, Programação de Aplicativos AI (atualmente em sua segunda edição), Programação de Aplicativos AI (em sua segunda edição) e BSD Sockets Programming from a Multilanguage Perspective. Sua formação em engenharia vai desde o desenvolvimento de kernels para nave espacial geossincrônica até a arquitetura de sistema embarcado e o desenvolvimento de protocolos de interligação de redes. Tim é um Engenheiro Consultor para a Emulex Corp. em Longmont, Colorado.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux, Software livre
ArticleID=382591
ArticleTitle=Desenvolvimento de Desktop para o Laptop OLPC
publish-date=02262008
author1-email=mtj@mtjones.com
author1-email-cc=

Conheça a IBM da sua cidade

A IBM está mais perto do que você imagina!