Marcellus Pereira 17 anos atrás
Pois bem, pessoal, esta é a quarta e última parte do artigo sobre os Sistemas Operacionais "embarcados". Vejam as outras: parte I, parte II e parte III.
É claro que há outras opções além das mostradas aqui, mas o curto espaço de tempo não me permitiu estudá-las e, muito menos, comentá-las.
Desta vez, falarei de três sistemas que não poderiam faltar: eCos, Windows CE e Linux.
eCos
eCos é um S.O. "open source", completamente gratuito, que mantém compatibilidade com as APIs POSIX e os software GNU.
Foi desenhado para atender a demanda de dispositivos em tempo real, com sérias restrições quanto à memória disponível. Uma parte muito interessante é seu sistema de configuração, que permite "enxugar" a imagem gerada ao extremo.
No pacote, está o RedBoot, um gerenciador de boot ( pense nele como um lilo ) muito utilizado, mesmo em sistemas com linux embarcado.
O projeto está bem maduro, pois começou com a Cygnus Support, em 1989. Para vocês se situarem: a Cygnus, mais tarde comprada pela RedHat, foi uma das principais coloboradoras de vários dos projetos GNU, como o gcc e o gdb. Foram eles, também, que desenvolveram o cygwin. Por falta de boas referências é que não se pode eliminar o eCos...
Uma camada de abstração de hardware ( HAL ) "isola" o kernel do processador, facilitando muito a migração para outros sistemas. Tanto é assim que o eCos roda em ARM7, ARM9, StrongARM, CalmRISC, FR-V, H8, x86, ColdFire, AM3, MIPS, PowerPC, Sparc e SuperH. Nada mal, hein?
As ferramentas de criação rodam em Linux e Windows ( sob o cygwin ), mas há uma explícita preferência pelo sistema do pinguim.
Uma grande comunidade existe em torno do software e, para sistemas com restrições de "footprint", essa parece ser a escolha ideal.
Windows CE 5.0
Recebi da Microsoft, através da revenda Compusoftware, o ótimo Windows CE 5.0, para avaliação ( apesar da versão 6.0 estar saindo do forno ). O material, como sempre, é muito bem acabado e bonito, um esmero raramente encontrado em outros fornecedores de sofware para desenvolvimento.
O kernel é licenciado como "shared code". O desenvolvedor tem acesso ao código-fonte e pode modificá-lo, sem que seja necessário notificar a MS. Pelo menos, foi o que entendi... a política de licenciamento da MS sempre me confunde.
Os valores são bem aceitáveis, quando se considera a qualidade e o suporte: quase mil dólares pela ferramenta e de US$ 3,00 a US$ 21,00 de "royalties", por produto. No entanto, é uma escolha meio "às cegas". É preciso, primeiro, saber claramente os módulos a serem utilizados para, só depois, descobrir quanto vai custar.
Essa versão do Windows roda em plataformas ARM, MIPS, x86 e SH. Tem capacidade de tempo real e, a MS nunca se cansa de enfatizar, várias camadas de segurança.
A principal vantagem é a facilidade que o desenvolvedor Windows tem. Em poucas horas ele já está habituado e produzindo. O ganho de produtividade é sensível.
Em anexo, algumas imagens da ferramenta que, entre outras coisas, vem com um Emulador muito eficiente.
Realmente, fiquei tentado a utilizá-lo. O único ponto contra foi o fato de ficar atrelado a um único fornecedor.
[img_assist|nid=9243|desc=|link=none|align=left|width=340|height=400] Linux Embarcado
Como não poderia deixar de ser, o Linux também foi avaliado.
Rodando em dezenas de processadores diferentes, com código-fonte disponível e gratuito, uma comunidade realmente grande, com boa-vontade suficiente para ajudar mesmo nos casos mais extremos, essa parecia a opção ideal.
No entanto, as maiores virtudes do S.O. ( como a grande quantidade de fornecedores ) também são suas maiores faquezas. Explico: mesmo com o código-fonte e as ferramentas sendo distribuidas livremente pela internet, num projeto comercial o suporte é de vital importância. Ficar aguardando dois dias para que alguém leia sua pergunta num fórum russo e resolva responder, não é muito agradável e gera uma úlcera no gerente.
Por outro lado, se você compra uma ferramenta ( e, consequentemente, o suporte ), fica atrelado àquela empresa e, pasmem, pode perder a "simpatia" da comunidade. Por mais incrível que pareça, cheguei ler coisas assim: "... você comprou a ferramenta tal, vá atrás deles, não espere que solucionemos isso para você...".
Os principais fornecedores de soluções integradas ( IDEs gráficas e "debuggers" ) são: MontaVista, Freescale ( que comprou a Metrowerks, fabricante do CodeWarrior ) e a LynuxWorks, com preços variando de US$ 2.000,00 a US$ 6.000,00.
Vários fabricantes de processadores disponilizam gratuitamente "patches" ou "BSPs" ( Board Support Packages ), o que, a princípio, permite o desenvolvimento a partir da "linha de comando". Se não há um fornecedor de IDE para o processador escolhido, essa é única saída.
Ainda há uma "versão" do Linux projetada para rodar em processadores que não possuem MMU ( Unidade de Gerenciamento de Memória ): o uClinux. Com ele, o leque de "chips" que rodam linux aumentou bastante, com opções de baixíssimo custo unitário.
No frigir do ovos, escolhi o Linux como S.O. para o projeto. Mais por contar com o apoio de uma Instituição de Pesquisa que por seus méritos técnicos. É quase certo que, se estivesse sozinho, optaria pelo Windows CE.
É realmente uma pena que não tenha mais tempo para explicar detalhes de cada S.O., mas vocês poderão pesquisar a partir daqui. É realmente uma área fascinante e o mercado para desenvolvedores cresce rapidamente.
Para finalizar, algumas referências e "links" para ferramentas:
8 bits:
Zilog Z80, Z8 e Z-NEO:
Microchip MPLAB
CCS PIC C Compiler
Freescale CodeWarrior 8 bits
P&E Micro: Debuggers
Windows CE:
winCEBrasil
MSDN
Linux Embarcado:
Free Electrons
uClinux
Linux em DSP Analog Devices
Linuxdevices
Livro gratuito: Advanced Linux Programming
Ambientes gráficos para Linux Embarcado: