Camisetas Guanabara.info !! Garanta já a sua!

WebOS por dentro… Por um Linux hacker.

Categorias: Linux, Notícias, Software

10 comente

Palm Pre roda webOS - que é Linux!

Desde antes da existência do Palm Pre, já tinha sido falado que o sistema operacional que substituiria o Garnet OS (antigo Palm OS) seria baseado em Linux. A PalmSource foi adquirida pela ACCESS, mas a Palm adquiriu os direitos sobre a última versão do vetusto Palm OS (codinome Garnet). Já que o Palm OS 6.0 (codinome Cobalt) nunca mais veria a luz do dia… Malm Preelhor trabalhar em cima do que já funcionava, mesmo que cheio de gambiarras (*), do que “fazer loteria” com os seus dispositivos.

Então, habemus Pre, e habemus webOS, o novo-matador-de-iPhone. Ao menos, é o que a “imprensa especializada” afirma. Só que Linux hackers não se prendem apenas à tela simpática e à integração bem-feita do webOS com sistemas online.  Eles querem ver o que tem dentro. E como é Linux, a licença é GPL. Se é GPL, a Palm é obrigada a liberar o código-fonte. E isso foi feito.

Matthew Garrett, um Linux hacker inglês, pegou o que a Palm disponibilizou via Internet para dar uma olhada, e chegou a várias conclusões interessantes. Se você não mexe com Linux, a partir daqui você vai boiar um pouco… Mas continue lendo, porque o saldo é (muito) positivo.

  • O nome-código do Pre durante o desenvolvimento é “Castle” (Castelo), mas ao olhar a imagem da ROM disponível para download, é possível ver referências a um outro nome-código, “Pixie”. Pode ser que isto confirme o boato de um segundo aparelho com webOS, o Palm Eos, a ser lançado pela AT&T (e GSM, viva!).
  • A imagem contém firmware para modems 3G que operam segundo os padrões CDMA e UMTS. Segundo o autor, tem uma vaga semelhança com o firmware do Qualcomm Gobi, chipset que opera tanto em CDMA quanto em HSDPA, e usado em alguns notebooks modernos.
  • Ainda no firmware do modem, o núcleo é um objeto ELF (formato padrão de binários do Linux) para processadores da família ARM, de 32 bits. Ele também tem referências a criptografia RSA, o que deve estar lá para diminuir a chance de ter gente hackeando o modem do Pre.
  • Apesar disso, o Pre não tem espaço para um SIM card (como tem alguns celulares CDMA da Nokia, como o meu 6265), e com essa criptografia, desbloquear o Pre para uso em outras operadoras deve ter que seguir o mesmo caminho do iPhone: Procurar uma falha no firmware para burlar o bloqueio. Tem uma ferramenta fornecida pela própria Palm (o programa PmModemUpdater, para Linux) que pode vir a ser útil nessa empreitada.
  • A memória interna (flash) é reconhecida como se fosse um cartão MMC, que é o irmão gêmeo do padrão SD.
  • Boa parte do software do Pre está disponível sobre a GPL. Segundo a licença, se está usando software GPL, o código-fonte deve estar disponível por algum meio (por exemplo, download) para quem quiser. A Palm disponibiliza para quem solicitá-lo por escrito, num email, por exemplo, o que satisfaz a GPL: ela não está escondendo o código-fonte, mas fornece-o a quem quiser.
  • Numa olhada na lista de softwares encontrados dentro do webOS, alguns velhos conhecidos: os drivers ALSA (para som), bzip2 (compactador), binutils (o /bin todo), e2fsprogs (sistemas de arquivos ext2 e 3), dosfstools (fat), ffmpeg e gstreamer (vídeo), lame (codificar MP3), mtools (DOS em Linux!), ncurses, ntp (servidor de horas), pulseaudio (servidor de som), PuTTY (emulador de terminal), wireless-tools, entre outros. Três conhecidos de quem mexe com Linux embarcado são o busybox (o shell tudo-em-um), o dropbear (servidor SSH) e o dnsmasq (DNS e servidor DHCP).
  • O webOS está baseado no framework OpenEmbedded, o que facilita (e muito) a vida de quem quer desenvolver para a plataforma, já que traz um ambiente pronto de compilação cruzada (cross-compiling), além de facilidades para empacotar uma distro para um ambiente embarcado. Vai aí a (primeira) crítica ao Android, que não usa nem esse nem nenhum framework, e é um Linux meio que fora dos padrões, o que inviabiliza certas coisas, como o uso de um sistema de pacotes. Sim, o webOS aceita um sistema de pacotes, no caso o ipkg, o mesmo da versão antiga do OpenWRT (agora é o opkg).
  • O kernel é o 2.6.24, com (provavelmente) patches e otimizações do Wind River Linux. Os drivers parecem estar bem integrados ao sistema, já que a maioria usa as interfaces padrão do kernel, como backlight, LEDs e por aí vai). Aí vem outra crítica ao Android, que tenta fazer “do seu jeito”, ao invés de usar o que já tem disponível. Existem drivers para o DSP do processador OMAP, o pacote oprofile, para análise de desempenho de código, e drivers para a rede wireless (um chip da Marvell encapsulado numa solução SDIO) e USB.
  • Uma curiosidade: Caso você tenha um Palm Pre, ou o (quem sabe) Palm Eos, é curioso saber que cada um tem o seu número de identificação para o servidor USB, que é o micro. Quando ligamos um dispositivo USB, ele anuncia-se ao micro, passando o seu número de identificação, entre outras informações. Então, cada um tem o seu.
  • O Pre usa o upstart para inicialização, o que é um espanto.  Espanto porque o projeto do upstart é otimizado para o Ubuntu, e não para um dispositivo embarcado. Além da inicialização mais rápida, alguns serviços que não são necessários durante a atualização do sistema são automaticamente parados pelo upstart, por exemplo.
  • A biblioteca padrão é a glibc. Curioso que não estão usando a uClibc (otimizada para dispositivos embarcados), mas é a glibc pura mesmo. O Android, em contrapartida, está usando uma outra solução, mais esotérica.
  • A hierarquia do sistema de arquivos é a mesma de qualquer ambiente Linux, com o barra (/) sendo o raiz, e tudo embaixo. Uma coisa esquisita é encontrar utilitários que estão encapsulados dentro do busybox nas suas versões completas, também no sistema. Outra coisa esquisita é… Por que tem um comando como fsck.ext4 instalado no Pre? Para checar um cartão SD formatado como ext4? Talvez, mas o Pre não terá cartões SD, né? E mesmo que tivesse, alguém formataria um cartão SD em ext4? Da mesma forma que tem as bibliotecas para o formato Ogg Vorbis instalado (libogg e libvorbis), mas não está garantido o suporte ao formato.
  • Áudio vai através do pulseaudio (parece que o dito cujo presta, afinal das contas), vídeo vai através do gstreamer (era meio lento, mas funciona bem). Codecs como H.264, WMA e outros estão instalados.
  • Ah, o Pre pode se passar por um iPod, e isso ele faz mudando o seu perfil USB, e apresentando um sistema de arquivos como se fosse o de um iPod. Muito engenhoso, mas não tem suporte ao já morto (graças a Deus) DRM da Apple. Lê (e toca) AIFF, MP3, WAV, AAC, AppleLossless, Audible, H.264, MPEG4 e H.264LC. Outros codecs podem ser (virtualmente) instalados, e o código do perfil USB pode ser ampliado para fazer com que o dispositivo se passe por outro MP3 player.
  • A parte de comunicação entre processos (o IPC) é feita com o uso do dbus, especificação padrão do Linux, e não subvertido como o do Android. Vem também um montador ARM (assembler), e o servidor Web traz numa página escrita em PHP (sim, DENTRO do Pre) algumas dicas de como a rede dentro dele é organizada.

Em resumo, é um aparelho muito interessante, e o webOS está muito mais para uma distro Linux do que o Android: Vários elementos que caracterizam a herança estão mais presentes do que no sistema da Open Handset Alliance. Dá para ser root nele sem muita dificuldade (aliás, já conseguiram), e quando tivermos uma versão GSM, pode ter certeza que teremos muita diversão pela frente.

O primeiro homebrew do Palm Pre.

O primeiro homebrew do Palm Pre.

Fonte: blog do Matthew Garrett e Pinguins Móveis.

(*) O Palm OS do meu T|X é um Garnet v. 5.4.9, com uns 5 anos de idade. Francamente, só a Microsoft para atrasar tanto uma atualização de sistema operacional… Pelo visto até ela aprendeu, com o Windows 7.

Related Posts with Thumbnails
  • O Nokia 6265 tinha slot para R-UIM card, não tinha nada a ver com GSM. o R-UIM era uma forma de trazer uma das vantagens do GSM para os CDMA´s.

    [Responder]

    junho 13, 2009 @ 9:27 am
  • Opa, obrigado Rodrigo! Pensei q tinha ficado o soquete p/ um cartão SIM, já q a Nokia (e qualquer fabricante) aproveita a carcaça de um modelo p/ outro. N sabia dos R-UIM Cards.

    [Responder]

    junho 13, 2009 @ 9:50 am
  • Giancarlo Alfieri

    Muito interessante!
    Achei curioso o fato dele ser um Linux que vem com o PuTTY. Não seria mais fácil usar client SSH nativo?!?

    Ele vir com o fsck.ext4 também foi surpreendente. Por acaso alguém sabe com qual formato a memória interna dele é utilizada?

    IPKG!? Wow!!!
    Imaginem instalar programas com um sistema de pacotes no celular!!!! Excelente!!!

    Ótimo post Ricardo!
    Abraço

    [Responder]

    junho 13, 2009 @ 10:37 am
  • Igor Santos

    Wow!
    Eu já tava animado com o Pre, fiquei ainda mais agora!
    Pena que não é GSM =(

    E vem cá… quer dizer então que vamos poder fazer programas PHP pra rodar com o servidorzinho dele? \o/
    Será que alguém vai arriscar um php-gtk?

    E considerando que é um linux completo como qualquer outro… Vai rolar de nego portar programas de desktop pra ele, nem que seja em tar.gz, e a gente instalar, tipo, normalzinho? \o/
    Significa então que vou poder ter Opera e FrozenBubble? \o/

    Viva a phoenix Palm!

    PS.: e o povo do ipkg pretende portar pacotes deb pro ipkg logo! \o/

    [Responder]

    junho 13, 2009 @ 12:31 pm
  • Resenha muito boa!
    Parabéns.
    A propósito, também tenho um T|X…
    Vinda longa ao Palm.

    [Responder]

    junho 13, 2009 @ 12:47 pm
  • Muito legal esse artigo, mas não vai dar pra ter um desses tão cedo.

    [Responder]

    junho 13, 2009 @ 2:37 pm
  • Igor, tomara que sim, tomara q dê p/ brincar c/ o PHP. Já temos um homebrew para o webOS, e espero q tenhamos portado p/ ele algumas gracinhas… E já tem muita coisa portada para arquitetura ARM, mas vamos ver no q dá. Teremos muita novidade por aí.

    [Responder]

    junho 13, 2009 @ 5:22 pm
  • Nick234

    Não é brincadeira nõ, fiquei pasmo!

    tanto baralho para o Android e o WebOS veio com tudo na frente em questão de software livre:

    Seguiu os padrões dos pacotes do sistema;
    Manteve muitos pacotes originais;
    Colocou um servidor PHP dentro dele!!! 8O
    Etc.

    Nossa mãe to loco para colocar a mão em um…

    P.S.: Para a galera linux maniaca que tem um celular Motorola A1200e, existe um App para ele que te dar a oportunidade de obter um Shell na tela… é isso mesmo você usa o Shell dentro do aparelho rodando os principais comandos, cd, pwd, cat, ls, se não me enango só não consegui rodar o vi :cry:

    Abraços…

    [Responder]

    junho 15, 2009 @ 11:13 am
  • Joao Vitor Arruda I 13 anos I Fortaleza-CE

    Tomara que valha a pena mesmo comprar um

    [Responder]

    junho 18, 2009 @ 9:09 am
  • Fiquei boiando um pouco.
    Mas o posto ficou interessante.

    [Responder]

    junho 18, 2009 @ 2:56 pm

Comentar