10 de maio de 2016

Sistemas operacionais com foco na Internet das Coisas

Estou começando a perder a conta da quantidade de sistemas operacionais que, de uma forma ou de outra, estão direcionando o foco para a Internet das Coisas (IoT).

iot
Foto: Sergio Prado

Mas o que significa um sistema operacional com foco na Internet das Coisas?
Basicamente significa um sistema operacional com baixo footprint (consumo de CPU, RAM e flash) e com boas opções de conectividade, principalmente sem fio. Melhor ainda se ele for modular, escalável, seguro e capaz de gerenciar eficientemente o consumo de energia.
Resolvi então criar uma lista dos sistemas operacionais com foco em IoT que acredito serem os mais fortes, seja pela grande comunidade de desenvolvedores, pelas características e funcionalidades, ou mesmo por ter uma empresa grande (ou consórcio de empresas) por trás do projeto.
Esta também não é uma lista completa, e posso ter esquecido algum player importante (me ajude nos comentários se for o caso). Também estou focando apenas em sistemas operacionais abertos e livres, afinal o mundo já é do software livre! 

Exemplos de Sistemas Operacionais:

RIOT-OS

O RIOT-OS tem sua origem em 2008 como um SO para redes de sensores wireless e atualmente se auto-denomina o “Sistema Operacional Amigável para a Internet das Coisas”.
Com um footprint próximo de 1,5kB de RAM e 5kB de flash, possui um escalonador de tempo real baseado em prioridades e uma API (parcialmente) implementada no padrão POSIX.
Roda em microcontroladores de 8, 16 e 32 bits e possui suporte a gerenciamento de energia. Conectividade é um dos pontos fortes deste sistema operacional, incluindo o suporte aos padrões e pilhas de protocolo IPv6, 6LoWPAN, RPL, UDP e CoAP.
Possui um porte para Linux onde é possível estudar e aprender sobre sua API, e suporta ferramentas comuns de desenvolvimento como GCC e GDB. Possibilita o desenvolvimento de aplicações em C/C++ e implementa algumas funcionalidades interessantes como um terminal de comandos, alguns algoritmos de criptografia e bibliotecas para manipulação de estruturas de dados.
Liberado sob licença LGPL, possui suporte a diferentes arquiteturas de CPU incluindo x86, AVR, ARM7, ARM Cortex-M e MSP430. A lista completa de plataformas suportadas está disponível no site do projeto.

CONTIKI

O Contiki foi criado em 2002 por Adam Dunkels (o mesmo criador das pilhas de protocolo uIP e lwIP) e hoje é mantido por uma equipe grande de desenvolvedores ao redor do mundo. O projeto se auto-denomina o “Sistema Operacional de Código Aberto para a Internet das Coisas”.
Com um footprint de aproximadamente 10kB de RAM e 30kB de flash, possui suporte abrangente da pilha de protocolos TCP/IP, além dos protocolos IPv6 focados em baixo consumo como 6LoWPAN, RPL e CoAP.
O escalonador do Contiki trabalha no modo colaborativo através do uso de protothreads (conceito parecido com as co-routines do FreeRTOS). Como as protothreads não possuem um stack, possibilitam uma economia grande de memória RAM, comparado a outros escalonadores preemptivos onde cada tarefa possui seu próprio stack.
Projetado para rodar em sistemas com baixíssimo consumo de energia, ele provê alguns mecanismos interessantes para estimar e analisar o consumo de energia da aplicação.
Suporta ainda carga dinâmica de módulos, que possibilitam estender o funcionamento do sistema e facilitam a atualização da aplicação em tempo de execução. Possui outros recursos interessantes como um sistema de arquivos para flash chamado Coffee e um terminal de linha de comandos.
Liberado sob licença BSD, roda em uma variedade grande de arquiteturas de hardware, incluindo 8051, AVR, MSP430 e ARM. Uma lista completa de plataformas suportadas está disponível no site do projeto.

Autoria: Sergio Prado

Nenhum comentário:

Postar um comentário