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 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
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.
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.
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.
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
|
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.
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.
Agora que você efetuou login e está pronto para começar, explore a UI OLPC Sugar.
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
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.
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
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 Controle | Ação |
|---|---|
| F1 | Vai para a visualização do ambiente |
| F2 | Vai para a visualização do grupo |
| F3 | Vai para o modo inicial |
| F4 | Vai para a última atividade |
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
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.
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# |
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."
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
-
Com o Software de período experimental IBM, disponível para download diretamente do developerWorks, construa seu próximo projeto de desenvolvimento em Linux.
Discutir
-
Envolva-se com a
comunidade do developerWorks através de blogs, fóruns, podcasts e tópicos da comunidade em nossos
novos espaços do developerWorks.

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.