Linux em Sistemas Embarcados

uClinux: o Linux dos pequenos

(1681 total de palavras neste artigos)
(463 Hit(s)) Imprimir


Fonte: Linuxit
Atualmente, é inegável a grande participação do sistema operacional Linux em vários segmentos. Inicialmente voltado para servidores, cada vez mais o Linux vem se popularizando como opção efetiva para desktops, quiosques multimídia, PDAs, DVDs, entre outras. São vários os motivos de tanto sucesso: escalonabilidade, portabilidade, estabilidade, bom desempenho, excelente suporte de rede e, obviamente, por se tratar de um sistema de código aberto. A Revista do Linux número 26 (fevereiro de 2002) publicou um artigo interessante a respeito do mercado de dispositivos embarcados, mostrando a grande evolução do Linux neste segmento.

A popularização do Linux em sistemas embarcados (ou sistemas embutidos) está também ligada ao aparecimento de uma variante do kernel denominada de uClinux (pronuncia-se como you-see-linux). A grande diferença para o Linux tradicional, é que o uClinux foi desenvolvido visando os processadores/microcontroladores que não possuíam uma Unidade de Gerenciamento de Memória (do inglês Memory Management Unit - MMU). Estes processadores são geralmente bem mais baratos e freqüentemente utilizados em sistemas embarcados com recursos, como memória e poder de processamento, mais escassos.

Processadores com MMU, como Pentium e PowerPC, têm embutido no seu microcódigo o suporte ao gerenciamento de memória, que permite que os processos rodem em um espaço de endereçamento virtual, deixando para o sistema operacional o controle e mapeamento entre os endereçamentos virtual e real do sistema. Isto gera um sistema mais seguro, em que um processo não consegue invadir a área de memória do outro e a comunicação entre eles só pode ser feita através de funções do sistema operacional. Já os processos baseados em uClinux compartilham o mesmo espaço real de endereçamento, uma vez que não existe este mapeamento entre endereçamento real e virtual, permitindo a utilização de microprocessadores sem MMU (chamados de NOMMU no kernel), gerando um sistema final com custo reduzido.

O uClinux possui basicamente quase toda funcionalidade do Linux, sendo encontrado nos dois ramos principais do kernel, 2.0 e 2.4. A parte ligada ao gerenciamento de memória foi reescrita, além de várias outras pequenas modificações no kernel. A Interface do Programa de Aplicação (do inglês Application Program Interface - API) fornecida pelo uClinux é praticamente idêntica à do Linux, permitindo que várias aplicações Linux rodem sem problema no uClinux. Foi necessário criar também uma nova biblioteca C (libc). A primeira foi denominada uC-libc, mas devido a sua falta de compatibilidade com outras implementações de bibliotecas C, acabou gerando um trabalho derivado que originou uma nova biblioteca, denominada de uClibc. A uClibc, além de manter a compatibilidade com outras implementações de bibliotecas C, está também preparada para ser compilada para arquiteturas com ou sem MMU.

A primeira versão do uClinux foi gerada em janeiro de 1998, por Kenneth Albanowski e D. Jeff Dionne, baseada no kernel 2.0 e voltada para o microcontrolador Motorola DragonBall MC68328, usados naquela época, principalmente em PDAs. Atualmente, o uClinux está baseado no kernel 2.4 e disponível para várias plataformas, como Motorola (DragonBall, ColdFire), ARM (vários fabricantes, como NetSilicon, Atmel, Samsung, Intel e Texas), Hitachi (H8), Intel i960, a linha i386 e compatíveis, Axis (ETRAX 100LX) e até mesmo para processadores gerados em chips programáveis (FPGAs), como o NIOS (Altera) e o MicroBlaze (Xilinx). O suporte gráfico também está disponível através do ambiente MicroWindows/Nano-X, com uma API muito semelhante ao X-Windows.

Só para se ter uma idéia do tamanho do kernel uClinux 2.4 compilado (em inglês o termo é footprint), é possível ter um sistema completo, com rede, interpretador de comandos (shell) e MicroWindows para o Palm com 548KB, sendo 453KB de código e 95KB de dados. Além disso, é geralmente necessário gerar um sistema de arquivos que fica disponível para o sistema depois de montado, ocupando cerca de 286KB. No total, um sistema uClinux completo com 834KB (ver referência 6, ao final).

Para os que necessitam de processamento em tempo real, vale lembrar que o uClinux também pode se valer do RTLinux e RTAI, duas conhecidas implementações para o suporte a programação em tempo real no Linux.
Leia na íntegra em:
http://www.linuxit.com.br/section-viewarticle-366.html
Leia mais em:
http://br.news.yahoo.com/050217/5/rske.html

Nenhum comentário:

Postar um comentário

Insira seu comentário - O mesmo será submetido à aprovação!

linux-cookbook

Grupos do Google
Participe do grupo linux-cookbook
E-mail:
Visitar este grupo