2. Tópicos
● Quem sou eu
● Linux embarcado
● Prazer, Nerves
● Demo ao vivo
E quem quiser conversar mais:
● Outras coisas embarcadas
● Podcasts, videos, etc
● Melhores tipos de queijo e os vários significados de "Trem"
5. Linux Embarcado
Linux Distro (rootfs + kernel)
Customizado para dispositivos embarcados
Aspectos importantes:
Recursos limitados (sort of…)
Overhead de desenvolvimento - cross compiling, flashing, etc
Atualizações em campo
7. Por que Elixir Embarcado?
Na verdade, por que não?
Foi pra isso que a BEAM foi criada (telecom, 9x9s, soft RT)
Pattern Matching é perfeito para wire-protocols (0b1101001)
O mundo real é inerentemente concorrente (coisas acontecem
ao mesmo tempo ou em algum tempo não previsível)
Deixe falhar, mas não deixe explodir -- se o usuário não
percebeu tá topzêra demais.
8. Como tudo se relaciona?
Seu App
---------------
Feito em elixir,
usando o
framework nerves
Toolchain
--------------------
Pre-built pela
comunidade nerves
para arquiteturas
mais populares
Platform
--------------------------
Imagens e rootfs pre-built
pela comunidade. Você pode
customizar se quiser
App
+
Platform
SD card
Firmware
Tooling Tooling
9. Fluxo de dev ágil, resumido:
Coda coda coda
Compila e empacota firmware
Transfere firmware
Corrige bug(s)
Repete repete
Skynet pronta
10. Pontos fortes
Boot rápido, em poucos segundos
Tamanho reduzido, rootfs + fw < 100MB
Estratégia de update com imagem inteira
Estratégia de fallback com partições A/B
Robustez ante perda de energia (rootfs é somente leitura)
Atualizações OTA ( )
17. Elixir em dispositivos embarcados
● Quase Hard Real Time
● BEAM bem perto do bare metal
● Use GRiSP https://www.grisp.org/
● HW customizado
● $$$
● Ecossistema mais difícil de
navegar
● Se você estiver fazendo um drone
militar, talvez essa seja a escolha.
● Soft real-time bom, talvez até
us jitter se hackear a BEAM
● BEAM em cima de um linux
bem lean
● Robusto, resiliente, lindo, etc
● Ecossistema fantástico
● HW de prateleira, mas permite
customizado
● Soft-real time ruim se você
usar a stock image
● Você instala elixir e OTP
normalmente, como o faz no
seu desktop
● Não muito robusto para
sistemas "in the wild"
● IoT criado pela vó...