Aprender Linux para sistemas embarcados
recentemente fui perguntado como uma pessoa com experiência em sistemas embarcados de programação com 8-bit processadores, tais como PIC, bem como processadores de 32 bits, tais como PowerPC, mas sem experiência Linux, pode aprender a usar o Linux Embarcado.
o que eu sempre recomendo a um programador de sistemas embarcados é o seguinte: Olhe para o Linux embarcado como duas partes, a parte embarcada e a parte Linux. Vamos considerar a parte do Linux Primeiro.
os sistemas operacionais Linux side
são abundantes e as opções são muitas para um sistema embarcado, proprietário e de código aberto. O Linux é uma dessas opções. Não importa o que você usa para o seu host de desenvolvimento, seja Linux ou Windows ou Mac, você precisa aprender a programar usando o sistema operacional de destino. A este respeito, usar Linux incorporado não é muito diferente de usar VXworks, WindowCE ou outro sistema operacional. Você precisa entender como o sistema operacional é projetado, como configurar o sistema operacional e como programar usando sua interface de programação de aplicativos (API).
alguns fatores tornam o aprendizado de como programar o Linux mais fácil do que outros sistemas operacionais incorporados. Você encontrará muitos livros e tutoriais sobre Linux, bem como Unix a partir do qual é derivado — muito mais do que para outros sistemas operacionais. Os recursos on-line Para Linux são amplos, enquanto outros sistemas operacionais têm uma presença muito menor, ou um impulsionado pelo fabricante do sistema operacional. O Linux é open source, e você pode ler o código para entender exatamente o que o sistema operacional está fazendo, algo que muitas vezes é impossível com um sistema operacional proprietário distribuído como binários. (Eu certamente não recomendo ler a fonte do Linux para tentar aprender a programar o Linux. É como tentar aprender a dirigir estudando como funciona a transmissão de um carro.)
o fator mais significativo que diferencia o Linux de outros sistemas operacionais é que o mesmo kernel é usado para todos os sistemas, desde as menores placas incorporadas, até sistemas de desktop, até grandes fazendas de servidores. Isso significa que você pode aprender uma grande quantidade de programação Linux em sua área de trabalho em um ambiente, que é muito mais flexível do que usar uma placa de destino com todas as complexidades de se conectar ao destino, baixar uma programação de teste e executar o teste. Todos os conceitos básicos e a maioria das APIs são os mesmos para o seu desktop Linux e seu Linux incorporado.
Instalar o Linux
Você pode instalar uma distribuição Linux de desktop em seu sistema de desenvolvimento, substituindo o seu Windows ou Mac, mas que pode ser uma grande peça para mordida fora de uma só vez, pois é provável que você precisa para configurar o e-mail, aprender novas ferramentas, e chegar até a velocidade com uma área de trabalho diferente de interface. Você pode instalar o Linux em um ambiente de inicialização dupla, onde você usa o ambiente antigo para E-mail, etc., e use o sistema Linux para aprender. Isso pode ser muito estranho, já que você precisa desligar um ambiente para abrir o outro. Além disso, fazer dentro de um ambiente corporativo pode ser impraticável ou impossível. As pessoas preferem apoiar um ambiente conhecido, não aquele que você escolheu.
uma maneira mais fácil é criar um ambiente de máquina virtual em seu sistema de desenvolvimento atual. Para hosts do Windows, você pode instalar o VMware Player ou o VirtualBox e, no Mac, pode instalar o Parallels ou o VMware Fusion. Usar uma VM oferece muito mais flexibilidade. Você pode instalar uma distribuição Linux de desktop, como Ubuntu ou Fedora. Você pode usar essa distribuição para se familiarizar com os conceitos básicos do Linux, aprender o shell de comando e aprender a construir e executar programas. Você pode reconfigurar o kernel ou carregar drivers, sem a preocupação de travar o sistema da área de trabalho. Você pode criar todo o kernel e o ambiente de aplicativo, semelhante ao que você pode fazer com um ambiente de desenvolvimento cruzado para um destino Linux incorporado.
se a sua VM que executa o Linux falhar, basta reiniciar a VM. A falha não afeta outras coisas que você pode estar fazendo em seu sistema de desenvolvimento, como ler uma página da web sobre como construir e instalar um driver, ou que escrever um e-mail para uma das muitas listas de discussão de suporte.
alguns dos produtos VM possuem recursos de instantâneo que permitem que você faça um ponto de verificação de uma configuração de trabalho conhecida, para a qual você pode reverter se não conseguir corrigir uma falha facilmente. Este instantâneo é muito mais fácil do que tentar resgatar um sistema de desktop travando ou uma placa de destino que não responde.
uma VM Linux em execução em sua área de trabalho não é um modelo perfeito para um ambiente Linux incorporado. A VM emula o hardware de um sistema de desktop, com um conjunto limitado de dispositivos que provavelmente não corresponderão a um destino incorporado real. Mas nosso objetivo neste momento não é modelar um alvo real (algo que discutiremos mais tarde), mas criar um ambiente onde você possa aprender conceitos e programação Linux facilmente.
este é o primeiro passo: criar uma VM e instalar uma distribuição Linux desktop na VM. Vamos escolher a partir daqui em nossa próxima parcela.Michael Eager é consultor principal da Eager Consulting em Palo Alto, Califórnia. Ele tem mais de quatro décadas de experiência no desenvolvimento de compiladores, depuradores e simuladores para uma ampla gama de arquiteturas de processadores usadas em sistemas embarcados. Seus clientes atuais e antigos incluem grandes empresas de semicondutores e desenvolvedores de sistemas. Michael foi membro do Comitê de padrões ISO C++ e dos Comitês ABI para várias arquiteturas de processadores. Ele é presidente do Comitê de padrões de depuração para DWARF, um formato de dados de depuração amplamente utilizado. Ele é ativo nas comunidades de código aberto e Linux.
links Relacionados:
- Aprendizagem Linux para sistemas embarcados
- primeiros passos com o Linux Embarcado: Parte Dois
- primeiros passos com o Linux Embarcado: Parte Três
- primeiros passos com o Linux Embarcado: Parte Quatro
- primeiros passos com o Linux Embarcado: Parte v
- primeiros passos com o Linux Embarcado: Parte Seis
- primeiros passos com o Linux Embarcado: Parte Sete