Ajuda sobre arquitetura de APLICAÇÕES em Embedded Linux

39 views
Skip to first unread message

Marco otávio

unread,
May 7, 2025, 1:24:01 PMMay 7
to sis_emb...@googlegroups.com
Senhores, boa tarde.

Talvez seja um tema relevante e que alguns colegas já tenham passado e possam ajudar.

Estou naquela transição do baremetal e ratos para Linux embarcado.

Ótimo, sobre a arquitetura do O.S, o toolchain, bootloader, device tree, kernel, acho que está "dominado" entender como a roda gira, a geração de imagem, etc.

O problema é o próximo passo, arquitetar a solução. Estou buscando por livros, referências, sites onde eu possa encontrar padrões de projeto, padrões de aplicação.

Como vocês procuram a melhor ferramenta para utilizar em cada caso, o que vocês separam em um serviço separado, como vocês arquitetam isso? 

Eu entendo que seja uma mistura de arquitetura de software, com arquitetura da solução, por exemplo, se criei um módulo específico para ler arquivos de configuração JSON, preciso disponibilizar para outros serviços, por exemplo via DBUS que é algo que já é nativo do kernel.

Minha dúvida está exatamente aí, encontrar exemplos e ferramentas, por exemplo, preciso agora montar um módulo que é um gerador de eventos, qual a melhor ferramenta utilizar? O que já é utilizado em sistema embarcado, o que já é validado?

Creio que alguns aqui já tenham passado por este momento e possam colaborar com um direcionamento, obrigado a todos.



Marco Otávio Souza Mello
(31) 99452 5853

Alan C. Assis

unread,
May 7, 2025, 3:09:41 PMMay 7
to sis_emb...@googlegroups.com
Boa tarde Marco,

O ideal é procurar projetos open-source disponíveis no github com os recursos que você quer usar e dar uma estudada para entender como eles resolveram os problemas.

Cada caso é um caso específico e uma solução que funciona bem pra um projeto pode não funcionar bem pra outro (isso se aplica a várias coisas, não apenas a IPCs).

Existem vários livros bons sobre desenvolvimento pra Linux, um que eu recomendo (não apenas pra Linux, mas pra qualquer Unix e até pro NuttX) é o "The Linux Programming Interface: A Linux and UNIX System Programming Handbook".

Comece desenvolvendo projetos simples e aprendendo com eles.

Aprenda a usar as ferramentas do Linux como iperf, gperf, etc, pra analisar a performance do seu projeto.
Mas isso é um segundo passo ("premature optimization is the root of all evil. -- Knuth").

Boa sorte!

Att.,

Alan


--
Você recebeu essa mensagem porque está inscrito no grupo "sis_embarcados" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para sis_embarcado...@googlegroups.com.
Para ver esta conversa, acesse https://groups.google.com/d/msgid/sis_embarcados/CACDBoRrb05CR-JXCxTu3V7KKe1v3T7HHr7PZuG07Vz%2BS0DqhUg%40mail.gmail.com.

César Augusto Marcelino dos Santos

unread,
May 7, 2025, 3:56:44 PMMay 7
to sis_emb...@googlegroups.com

Essa é uma área bastante interessante, pois a arquitetura que decidir para seu sistema terá prós e contras com os quais é importante que a equipe concorde.
Uma dica de início que te dou é considerar documentar as decisões e ter revisões dos envolvidos, para que haja um real acordo sobre como o sistema vai progredir.

Em termos de livros, recomendações de colegas foram:
- Fundamentals of Software Architecture: An Engineering Approach
- Software Architecture: The Hard Parts

Existe uma certificação nessa área chamada iSAQB, e se você pesquisar no site deles, vai achar alguns materiais e bibliografias de referência também.

Tem também um framework (de documentação) bem legal chamado "arc42". No site deles, se você for na parte de exemplos tem um passo-a-passo bem legal, em particular sobre o sistema para ciclistas (é genérico e não-específico para Linux embarcado, mas considero que os conceitos são reaproveitáveis).

E a dica do Alan é bastante valiosa: veja o que consegue encontrar em projetos públicos. Como dica, veja projetos que utilizam openssl, ELL, swupdate porque acabam tomando decisões sobre como fazer a interação entre componentes dos sistemas que desenvolveram.

Espero que tenha ajudado.

Att,
César


Reply all
Reply to author
Forward
0 new messages