SkiffOS, um sistema Linux mínimo para contêineres incorporados

Conheça o SkiffOS, um sistema Linux mínimo para contêineres incorporados. Confira os detalhes desse interessante sistema.

Processadores Linux embarcados são cada vez mais usados ​​para tarefas de computação em tempo real, como robótica e Internet das Coisas (IoT).

Esses aplicativos exigem um comportamento robusto e reproduzível do sistema operacional host, geralmente obtido por meio de firmware imutável armazenado em memória somente leitura.

E é exatamente neste cenário que o SkiffOS se destaca.

SkiffOS, um sistema Linux mínimo para contêineres incorporados

SkiffOS, um sistema Linux mínimo para contêineres incorporados
SkiffOS, um sistema Linux mínimo para contêineres incorporados

O SkiffOS atende a esses requisitos com um sistema GNU/Linux compilado cruzado mínimo otimizado para hospedar distribuições e aplicativos em contêineres e um sistema de camadas de configuração para a ferramenta de compilador cruzado incorporado Buildroot que redireciona automaticamente as configurações do sistema para qualquer plataforma ou dispositivo.

Essa abordagem separa claramente o suporte de hardware dos aplicativos.

O sistema host e os contêineres são atualizados de forma independente e submetidos a backup pelo ar (OTA).

Em outras palavras, esse é um sistema operacional Linux mínimo rodando em RAM, construído com buildroot, capaz de executar contêineres em várias plataformas de hardware, desde Raspberry Pi, ODROID, Orange Pi e NVIDIA Jetson SBCs até PCs desktop, laptops, telefones, incluindo o PinePhone, VMs na nuvem e muito mais. O hardware RISC-V é apenas a mais recente adição.

Christian Stewart, desenvolvedor do SkiffOS, destaca cinco características da solução:

  • Familiar: usa a linguagem Makefile e KConfig simples para configuração.
  • Flexível: suporta qualquer distribuição de SO dentro de containers com ssh drop-in.
  • Portátil: replique exatamente o mesmo sistema em qualquer hardware ou arco.
  • Confiável: o sistema host mínimo somente leitura (~ 100 KB) na RAM inicializa de maneira confiável todas as vezes.
  • Reprodutível: compilações offline e determinísticas para comportamento reproduzível.

O SkiffOS adiciona um sistema de camadas de configuração ao compilador cruzado Buildroot , o que facilita o redirecionamento de aplicativos para um novo hardware.

As camadas são mescladas conforme especificado na variável SKIFF_CONFIG de ambiente separada por vírgulas. Como exemplo básico: SKIFF_CONFIG=pi/4,core/gentoo inicia o Gentoo em um Raspberry Pi 4 em um container Docker.

A configuração padrão produz um sistema operacional host mínimo (~100Mb) na RAM com SSH e conectividade de rede e inclui um conjunto abrangente de ferramentas de depuração. O sistema operacional host pode ser facilmente atualizado remotamente com o script push_image, usando rsync.

A camada “skiff/core” habilita o Docker (“apps/docker”) e um ambiente padrão baseado no Ubuntu com um ambiente de desktop gráfico completo. Outros, incluindo “core/gentoo” e “core/dietpi” estão disponíveis.

A maioria dos dispositivos Linux tem um conjunto exclusivo de requisitos para pacotes de suporte de kernel, firmware e hardware. O sistema operacional host SkiffOS separa o suporte específico de hardware dos ambientes de usuário em contêiner, simplificando o gerenciamento de atualizações em várias combinações de hardware.

Há uma tabela no repositório Github do projeto com as versões U-boot e kernel Linux suportadas por uma determinada plataforma de hardware e no caso do Sipeed Nezha, seria U-boot 2022.04 e Linux “sm-5.14-rc4”.

SkiffOS foi testado com Docker e Alpine Linux na placa Allwinner D1, mas outras predefinições incluem Debian e Gentoo, entre outras. Você encontrará mais detalhes, incluindo o código-fonte e instruções para começar, na página do software no Github.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.