FAVORITAR
FecharPlease loginn

Como se tornar um especialista em Linux Embarcado

especialista em Linux Embarcado

O objetivo deste artigo é apresentar uma visão pessoal do perfil ideal para trabalhar como um especialista em Linux Embarcado. Embora não sejam pré-requisitos obrigatórios, este guia pode ajudar na avaliação pessoal dos desafios envolvidos em projetos de Linux embarcado, que requerem habilidades e conhecimentos específicos. Então, vamos começar.  

Conhecimentos técnicos necessários para o especialista em Linux Embarcado

Segue a lista de conhecimentos técnicos:

  • Conhecimento em administração de sistemas Linux;
  • Conhecimento em desenvolvimento de software, principalmente através de ferramentas de código aberto;
  • Conhecimento em desenvolvimento de firmware. Em especial, microcontroladores;
  • Conhecimentos em redes de computadores;
  • Conhecimentos em projetos de hardware.
especialista em Linux Embarcado
Especialista em Linux Embarcado

O profissional que possuir experiência em todos os aspectos mencionados anteriormente, certamente será um especialista em Linux Embarcado. No entanto, para aqueles que não possuem tal experiência, é possível adquiri-la ao trabalhar com Linux embarcado ao longo do tempo. É importante ressaltar que esses requisitos são indispensáveis para qualquer projeto. A seguir, detalharei cada um dos tópicos mencionados.

Administração de sistemas Linux

Em princípio, o conhecimento avançado de instalação, configuração e personalização do sistema operacional Linux em ambiente PC resolve este requisito. O ideal seria ter trabalhado com administração de sistema mesmo – seja em um departamento de escola ou alguma empresa – onde é preciso garantir que vários computadores estejam operando de maneira apropriada e organizada.

Uma boa administração de sistemas Linux envolve, obrigatoriamente, conhecimentos em modo terminal (creio que em Windows não seja diferente). É necessário não somente conhecer bem comandos em terminal, como a correta localização dos arquivos nos diretórios, os serviços presentes no sistema operacional. 

Dei o exemplo de trabalhar como administrador de sistemas com várias máquinas para que a pessoa já comece a se acostumar com os problemas em nível de sistema que ocorrem. Os problemas de funcionamento de sistema presentes em projetos Linux Embarcado são similares a problemas em computadores PC. A principal diferença – o que é melhor para o sistema embarcado — é que a probabilidade de mal uso é muito menor, porém, em geral, um sistema embarcado fica mais tempo em operação do que um computador PC.

Conheci casos de pessoas que dominam o sistema operacional só de usar em casa, para fins pessoais. Já é um excelente ponto de partida para se tornar um especialista em Linux Embarcado.

Desenvolvimento de software

É muito importante que o profissional que for trabalhar com projetos em Linux embarcado saiba desenvolver software para Linux. O desenvolvimento de software para Linux embarcado está mais próximo do desenvolvimento de software para um PC do que para um microcontrolador. Não somente os conhecimentos de programação, como também os conhecimentos das ferramentas para gerar o binário.

É extremamente importante que o profissional conheça bem o compilador GCC, as ferramentas MAKE e AUTOTOOLS. É preciso conhecer não só seu funcionamento como ser capaz de usar estas ferramentas sem a necessidade de um ambiente de desenvolvimento (IDE). A razão disso é a de que em alguns casos é preciso realizar modificações em projetos de código aberto existentes. E estes projetos raramente utilizam IDE para trabalhar (pode até ser que o desenvolvedor do projeto utilize durante o desenvolvimento, mas o pacote final no qual fazemos download não, e são raras as indicações de como integrar a um IDE). Mas uma coisa é certa: é totalmente possível fazer alterações e compilações através da linha de comando.

Não podemos deixar de mencionar aqui o conhecimento de sistemas de controle de versão. Acredito que não preciso dizer a razão para isso. Uma motivação extra está no fato de que as ferramentas mais novas de construção de sistemas Linux embarcado (mais especificamente, OpenEmbedded e Yocto) fazem a maior parte de seus downloads dos fontes a partir de seus repositórios. Assim, não só para entender o que vai em seu projeto, como para criar um novo pacote de compilação, é fundamental o conhecimento de software de controle de versão.

Aqui neste tópico eu dispenso a necessidade de conhecimentos avançados – conhecimentos necessários para criar e configurar um repositório. Naturalmente os softwares mandatórios para se conhecer são o SUBVERSION e o GIT.

Desenvolvimento de firmware

Por que eu separei os dois casos? 

Firmware não é um software também?

Sim, é. Porém, aqui eu não quero destacar os conhecimentos em programação comumente conhecida como ‘baixo nível’.

Alguns componentes essenciais de projetos em Linux embarcado são componentes de baixo nível. São os casos dos drivers e do bootloader.

Os drivers em Linux devem respeitar a arquitetura de drivers do sistema operacional. Mas, na hora H de acessar ao recurso de hardware, a maneira de programar é similar a de um microcontrolador. O bootloader nada mais é do que um firmware – ele é executado sem a presença de um sistema operacional.

E estes componentes de software são amplamente presentes e alterados em projetos de sistemas Linux Embarcado.

Redes de computadores

Este tópico poderia ser, de uma forma simplista, inserida junto aos conhecimentos de administração de sistemas Linux.

Mas, na verdade, conhecer bem a forma de se projetar redes de computadores não é exatamente um conhecimento comum disponível por aí.

Hoje quase tudo é TCP/IP, quase tudo está ligado na Internet. Porém, preparar uma rede de forma a aproveitá-la ao máximo em desempenho não é exatamente uma tarefa que todos conhecem.

O mínimo do mínimo é ligar diversos computadores a um roteador que está ligado na Internet. É a configuração padrão de quase todas as residências, cafés e pequenas empresas. Eu não sei se todos sabem que em um roteador existe um switch.

É preciso conhecer a hierarquia de redes, sua organização. Atualmente as redes não são somente cabeadas. Existe o Wi-Fi, o GPRS, o 3G. É preciso conhecer protocolos como o PPP. Também é necessário saber como o Linux cuida de tudo isso. O Linux é o principal sistema operacional usado em equipamentos de rede. Podemos dizer que, quando se tem rede de computadores, existe um computador com Linux ali no meio. E com o Linux embarcado, essa situação aumentou muito.

Além dos conhecimentos na montagem da rede, é preciso conhecer bem os serviços necessários para um bom aproveitamento de rede: FIREWALL, SNMP, VPN, … Em sua grande maioria, são softwares já disponíveis para utilização, mas é preciso conhecê-los bem para a melhor implantação da solução.

Projeto de Hardware para sistemas com Linux Embarcado

Por fim, é preciso conhecer hardware também. Não é preciso ser projetista de hardware, mas pelo menos um conhecimento mínimo de leitura de esquema elétrico é fundamental.

Linux em PC roda em um computador, digamos, convencional. Um PC é uma plataforma de computadores consagrada, definida há muito tempo… onde concluo de forma simplista que qualquer PC tem o mesmo projeto de hardware para todos os casos. Aí a manutenção em software acaba sendo, digamos, menos complicado.

Em um sistema embarcado, cada projeto é de um jeito. São escolhas diferentes de componentes, que possuem características diferentes. E para situações específicas, o sistema operacional deve estar preparado para suportar os diversos componentes específicos presentes na placa. O Linux não vem preparado para atender a todas as necessidades de todos os projetos específicos. Para cada novo projeto de hardware, possivelmente uma nova personalização é necessária. E deixá-lo preparado implica em configurar drivers de dispositivos. Às vezes configurar não é possível, e um novo driver deverá ser desenvolvido. Com isso, conhecimento sobre as ligações dos componentes na placa é fundamental.

Uma importante etapa de um projeto de Linux embarcado é o “bring-up”.

Esta etapa é caracterizada pela inicialização do sistema operacional na nova placa projetada e prototipada. É quando carregamos o
bootloader, o kernel e um sistema de arquivos capaz de exercitar todos os dispositivos presentes na placa. Geralmente é uma etapa difícil e longa do projeto – e que ocorre nos momentos mais críticos do projeto.

E, nesta hora, o projetista Linux embarcado deve ser capaz de compreender o hardware de maneira a permitir a melhor interação possível com o projetista de hardware para que ele possa identificar problemas de projeto em hardware, quando for o caso.

Conclusão

Espero não ter desanimado ninguém com este artigo. Na verdade, a ideia é apresentar as ferramentas necessárias para que o engenheiro projetista possa desempenhar suas atividades de forma mais eficiente. Além disso, é interessante destacar que trabalhar com Linux embarcado pode ser muito empolgante e desafiador, uma vez que novos conhecimentos precisarão ser adquiridos. Então, vamos explorar juntos as possibilidades e aprender mais sobre esse fascinante mundo do Linux embarcado.

O que você indicaria para o profissional que deseja ser especialista em Linux Embarcado?

Saiba Mais

Ferramentas Linux que todo técnico e engenheiro deveria conhecer

Webinar gravado: Utilizando o Yocto Project para automatizar o desenvolvimento em Linux Embarcado

Webinar Gravado: Desenvolvendo com Linux Embarcado

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Home » Linux Embarcado » Como se tornar um especialista em Linux Embarcado

WEBINARS

LEIA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Comentários:
Notificações
Notificar
guest

6 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Ruy
Ruy
22/02/2023 12:43

Boa tarde. Estou a procura de um especialista em Ubuntu para aprimorar nosso software embardado de IA, melhorando o tempo de inicialização do sistema e protegendo-o contra cópia. Pode nos ajudar a indicar um profissional qualificado para este projeto?

Fábio Souza
Admin
Reply to  Ruy
22/02/2023 13:57

Fala com o pessoal da EMC: https://www.emc-logic.com

Fernando França
07/12/2015 15:59

Sensacional o artigo Flávio. Na verdade ele está longe de ser desanimador mas foi para mim um incentivo. Veja, trabalho profissionalmente com Linux desde 1999 e de lá para cá me interessei por sistemas embarcados. Em 2008 projetei um sistema embarcado e fui finalista do Imagine Cup, competição de tecnologia promovida pela Microsoft. Desde então venho buscando me aprofundar nas competências necessárias para o desenvolvimento de sistemas embarcados e enxergo que o caminho é esse mesmo que você expôs no seu texto.

Celso Comelli
Celso Comelli
03/10/2015 08:57

Parabéns! Bem elucidativo.

Giancarlo Abreu
Giancarlo Abreu
26/10/2014 09:26

Parabéns pelo trabalho vai me ajudar muito!

Fábio Rueda de Toledo
Fábio Rueda de Toledo
25/11/2013 16:59

Show o artigo. Parabéns!!!

Talvez você goste:
Nenhum resultado encontrado.