Revista Do Linux
 


 
EDIÇÃO DO MÊS
 CD do Mês


 Capa
 Entrevista
 Estudo de Caso
 Desenvolvimento
 Programação
 Segurança
 Internacional
 Mascote
 Corporativo
 Distro
assinantes
 

Desenvolvendo para Palm Pilo

Seja para web ou compartilhamento de arquivos, o Linux é uma boa opção

O mercado de PDAs hoje é completamente dominado pelo Palm Pilot da Palm Corporation (que já foi propriedade da 3Com e da US Robotics), com mais de 70% do mercado, apesar das investidas da todo-poderosa Microsoft com seu Pocket PC (ex-Windows CE) e dos novos modelos que chegam ao mercado utilizando o GNU/Linux. Os modelos baseados no kernel do Linux são ainda muito recentes e não podemos avaliar ainda o seu impacto no mercado, apesar do otimismo de analistas do IDC. Quando aos modelos Windows, o leitor atento irá notar que as empresas que insistem em oferecer PDAs baseados neste sistema são, em sua maioria, empresas que têm na venda de PCs a sua maior fonte de renda, como a Compaq, e, certamente, sofrem pressões da Microsoft quanto à não adoção do concorrente. Por outro lado, gigantes da indústria de eletrônica de consumo, como a Sony, oferecem modelos baseados no PalmOS. Assim sendo, se você pretende ter sucesso no mercado com um software para PDAs, seu alvo preferencial são os usuários dos Palm Pilots e dos diversos clones, que incluem até mesmo telefones celulares da Qualcomm.

Mas o que um software proprietário como o PalmOS tem a ver com software livre? Quem achar esta combinação estranha esquece que a razão de ser do software livre é atender às necessidades dos usuários de computadores. O ideal é que tenhamos apenas software livre, mas se as necessidades dos usuários envolverem integração ou compatibilidade com proprietário, o livre sempre terá boas soluções a oferecer.

Um dos grandes motivos da predominância do Palm são as suas deficiências, se comparado com outras opções, como o Pocket PC e o Embedded Linux. O hardware do Palm é baseado na antiga linha de processadores MC68K da Motorola, utilizada nos primeiros Macs e estações da Sun Microsystems, enquanto que outros PDAs utilizam processadores RISC, em especial o StrongARM. Os primeiros Palms traziam apenas 512KB de RAM, e os modelos atuais costumam trazer 2MB (os mais “parrudos” trazem 8MB), enquanto que outros PDAs necessitam ter 16MB ou mais devido ao peso de seus sistemas operacionais.

Estas limitações fornecem ao Palm duas grandes vantagens: primeiro, ele é bem menor e mais leve do que os outros, podendo ser carregado confortavelmente no bolso ou pendurado no cinto. Tente fazer isso com um iPaq. Segundo, ele consome muito pouca energia, podendo ser alimentado por duas pilhas comuns AAA tipo palito por várias semanas e ficar várias horas sem pilhas, sem perder nenhum de seus dados.

Como desenvolver para o Palm

O desenvolvimento para um PDA ou outro equipamento microprocessado que não um PC envolve a compilação cruzada: você utiliza um outro tipo de computador para escrever e compilar os programas, que são então transferidos em forma binária para o dispositivo-alvo. Os primeiros Palms não tinham capacidade para hospedar compiladores, depuradores e outras ferramentas de desenvolvimento, e mesmo que isto já seja viável nos Palms atuais, não seria muito produtivo escrever programas com a caneta e a tela de um PDA.

O CodeWarrior da MetroWerks www.metrowerks.com/products/palm, tradicional compilador C/C++ para o Mac, é o compilador recomendado pela Palm para o Pilot. Os compiladores tradicionais do PC são voltados para processadores da Intel, por isso eles não oferecem produtos para o Palm, o que deixa o desenvolvedor corporativo tradicional um tanto “perdido” e acreditando que pode ser mais fácil utilizar o Pocket PC devido ao suporte no Visual Basic. Infelizmente (para o Windows, mas felizmente para o Palm) a compatibilidade não é tão grande assim e o esforço de se adaptar ao CodeWarrior não é maior do que seria com ferramentas para PDAs concorrentes.

Outro fornecedor tradicional de compiladores possui de longa data suporte ao MC68K e seu compilador é base do pacote PRC Tools www.palmos.com/dev/tools/gcc, também recomendado pela Palm: A Free Software Foundation. Os PRC Tools são uma versão do GCC, GNU Binutils e outros pacotes que podem ser hospedados em Windows ou GNU/Linux, mas geram executáveis para o Palm. A maioria dos IDEs Visuais para o Palm é baseada nos PRC Tools, de modo que a maioria do desenvolvimento para o Palm, hoje, já depende em certo grau de software livre.

Além de um compilador habilitado para o MC86K, você necessita de um conjunto de bibliotecas e documentação sobre as system calls do PalmOS, fornecidos pelo pacote PalmOS SDK, que pode ser baixado gratuitamente de www.palm.com/developers.

Por fim, o teste e a depuração de programas em um Palm Pilot real não seriam muito eficientes, devido aos recursos limitados de autopreservação deste sistema (pense em como era fácil travar o MS-DOS). Bugs em um programa podem destruir todos os dados armazenados no seu Palm. Por isso, costuma-se utilizar um emulador do Palm, que é um software aberto derivado do antigo CoPilot e que roda em Windows ou GNU/Linux, também disponível para download gratuito no site da Palm.

Para que o emulador funcione, você precisa instalar dentro dele o PalmOS, um software proprietário. Você pode baixar as ROMs de qualquer modelo do Palm, após ter assinado e enviado um termo de compromisso por escrito, ou copiar (legalmente!) a ROM de um Palm que você possua, por meio de um utilitário incluso no emulador.

Resumindo, o desenvolvimento tradicional para o Palm envolve quatro componentes de software, dois dos quais podem ser livres e os outros dois, proprietários:

•Compilador cruzado C/C++ para o MC68K: CodeWarrior (proprietário) ou PRC Tools (livre)

•PalmOS SDK (proprietário, freeware)

•Palm Emulator (ex-CoPilot, livre)

•PalmOS ROM image (proprietário, distribuição proibida)

Software Livre para o Desenvolvedor Palm

O software livre nos fornece outras ferramentas para desenvolvimento no Palm, algumas delas totalmente independentes e outras dependentes do SDK ou do PilRC, o compilador de recursos (definições de telas) do PalmOS incluso nos PRC Tools. Faremos agora uma breve descrição de algumas dessas ferramentas:

•Free Pascal

ftp.freepascal.org/fpc/dist/palmos-1.0.5

O Free Pascal é um compilador Object Pascal compatível com o Turbo Pascal e com o Delphi, suportando vários sistemas operacionais. Você pode baixar uma versão beta do compilador cruzado para o PalmOS. O pacote é totalmente stand-alone, mas infelizmente, a versão binária roda somente no Windows. Desenvolvedores experientes podem tentar compilar a partir do CVS uma versão hospedada no GNU/Linux.

•Pocket Smalltalk

www.pocketsmalltalk.com

É um IDE que roda sobre sistemas Smalltalk pré-existentes (o suporte ao GNU/Linux depende do ambiente Smalltalk escolhido) e que gera executáveis para o Palm, desde que você tenha o PilRC.

•SmallBASIC

smallbasic.sourceforge.net

Este não é um compilador cruzado, mas um interpretador que roda dentro do PalmOS, mas possui versões 100% compatíveis que rodam em MS-DOS, Windows e GNU/Linux. Desta forma, você pode desenvolver em um sistema mais confortável e rodar no Palm, ou caso haja necessidade de desenvolver diretamente no Palm, sem ter acesso a um PC. Esta é a maneira mais fácil de desenvolver para o Palm. Apesar do autor chamar o SmallBASIC de “calculadora avançada”, ele possui recursos suficientes para a maioria das aplicações Palm que você possa querer desenvolver.

•Waba

www.wabasoft.com

O Waba é uma Máquina Virtual Java não-padrão que roda sob o PalmOS, de modo que o desenvolvimento de aplicações é feito com um Java SDK ou JDK padrão, tomando apenas o cuidado de utilizar somente as classes compatíveis com o Waba e as classes fornecidas com o pacote para interface com o usuário do Palm.

Ele não é compatível com o J2ME, mas vem sendo ativamente desenvolvido e já gerou duas crias: um fork do projeto original (waba.sourceforge.net) e uma versão estendida (www.superwaba.com). Ainda temos o pacote WabaJump (se77en.com/wabajump) que permite a geração de executáveis Palm nativos, que não necessitam ter o Waba instalado para serem executados.

•Jump

sourceforge.net/projects/jump

O Jump é um compilador de bytecodes Java para executáveis nativos do Palm. É possível utilizar um Java SDK padrão em conjunto com o Jump.

•Java2 Micro Edition

java.sun.com/j2me

O J2ME é uma especificação de máquina virtual Java e de bibliotecas de classe para dispositivos menos poderosos do que um PC. Ele tem duas “versões”, a CDC e a CLDC, a primeira focando dispositivos da classe de um PocketPC (mais memória e periféricos) e a segunda focando dispositivos da classe de um Palm ou de um Telefone Celular (menos memória e periféricos).

Existem versões de IDE Java proprietários como o JBuilder, o Visual Age for Java ou o Simplicity compatíveis com o J2ME. O Embedded Java está sendo descontinuado pela Sun em favor do J2ME, e o PersonalJava é um superset do J2ME. A Sun fornece o CDC e o CLDC hospedados em Windows ou em GNU/Linux, além do Solaris.

Nem a especificação da Sun nem a implementação de referência (que inclui suporte ao PalmOS) são softwares livres. Decidi incluir o J2ME nesta relação apenas para que fiquem claras as diferenças entre ele e o Waba.

Outros recursos para o desenvolvedor Palm

•Palm Developer Connection

www.palm.com/developers

Sendo o PalmOS um software proprietário, a primeira fonte de informações é o site do próprio fornecedor.

•Palm Developers Knowledge Base

Um bom site de informações sobre o desenvolvimento para o Palm, incluindo produtos “não oficializados” pela Palm como o Waba.

•PilotDis

www.fh-wilhelmshaven.de/~akcaagaa/index_palmpower.html

Um disassembler para executáveis Palm (arquivos *.prc)

•Plucker

plkr.org

Não é uma ferramenta de desenvolvimento, mas sim um visualizador HTML off-line e um “web sucker”, que permitem ao desenvolvedor carregar em seu Palm, de forma compacta e eficiente, muita da documentação que ele obtém na Internet.

•ColdSync

www.coldsync.org

Utilitário e bibliotecas com suporte a C e Perl para sincronização de dados com o Palm. Permite a construção de conduítes que transferem dados entre uma aplicação GNU/Linux e uma aplicação Palm.

•Palm Bazaar

palmbazaar.sourceforge.net

Conjunto de classes C++ para facilitar o desenvolvimento de aplicações Palm com o PRC Tools. Não deve ser difícil convertê-las para o Free Pascal ou para o Waba.

Rodando o GNU/Linux no Palm Pilot

Neste artigo, falamos sobre software livre para o desenvolvimento de aplicações PalmOS, de preferência utilizando o GNU/Linux como sistema hospedeiro. Mas seria possível rodar o próprio Linux dentro de um Palm Pilot?

A maioria das distribuições “embedded” do GNU/Linux foca hardwares com maior capacidade do que Palm, pois assim o porte se torna bem mais fácil. Por isso, a maioria delas suporta equipamentos Pocket PC, mas nenhuma delas suporta Palm Pilot.

A exceção é a distribuição Linux DA (www.linuxda.com). Entretanto, esta distribuição é baseada em aplicações proprietárias sobre o kernel do Linux e está disponível apenas para quem adquirir uma licença. Isto não vai contra a GPL, pois os fontes do kernel Linux modificado estão disponíveis para download e podem ser utilizados como base para uma distribuição livre do GNU/Linux para o Palm. Você pode também baixar uma versão demo do Linux DA.

Já existe um Palm que vem de fábrica com o Linux DA em vez do PalmOS, o nome é PowerPlay, fornecido pela mesma empresa que fornece o Linux DA, a Empower Technologies. Seu custo é de US$ 99,99 (PowerPlay III) ou US$ 149,99 (PowerPlay V), mais ou menos na mesma faixa de preço de um Palm equivalente no mercado americano. O Linux DA isolado para instalação em qualquer Palm custa US$ 39,99.

O projeto ucLinux (wwww.uclinux.org) visa a criar uma versão do kernel do Linux para processadores sem uma MMU, que é componente que fornece o recurso de memória virtual, como o MC68K utilizado pelo Palm. Este projeto não visa a fornecer uma distribuição que um usuário final possa instalar, mas sim uma base para o desenvolvimento em eletrônica embarcada.

Mais informações sobre distribuições do GNU/Linux para PDAs podem ser encontradas em www.linuxdevices.com.


Fernando Lozano - fernando@lozano.eti.br


A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux