Tornou-se conhecido recentemente o lançamento da nova versão do sistema operacional «RT-Thread 5.0», que está posicionado como um sistema operacional em tempo real (RTOS) para dispositivos IoT.
O sistema foi desenvolvido desde 2006 por uma comunidade de desenvolvedores chineses e atualmente é portado para cerca de 200 placas, chips e microcontroladores baseados nas arquiteturas x86, ARM, MIPS, C-SKY, Xtensa, ARC e RISC-V.
A versão minimalista do RT-Thread (Nano) requer apenas 3 KB de Flash e 1,2 KB de RAM para funcionar. Para dispositivos IoT que não são severamente limitados em recursos, é oferecida uma versão completa que suporta gerenciamento de pacotes, configuradores, pilha de rede, pacotes com implementação de uma interface gráfica, sistema de controle de voz, DBMS, serviços de rede e mecanismos para executar scripts.
Recursos de Rosca RT
O sistema operacional consiste em três camadas básicas:
- Um kernel que executa tarefas em tempo real. O kernel fornece primitivas básicas genéricas que abrangem áreas como bloqueio e gerenciamento de sincronização de dados, agendamento de tarefas, gerenciamento de threads, gerenciamento de sinais, enfileiramento de mensagens, gerenciamento de timer e gerenciamento de memória. Os recursos específicos de hardware são implementados no nível libcpu e BSP, que incluem os drivers e o código necessários para suportar a CPU.
- Componentes e serviços executados sobre o kernel e oferecem abstrações como sistema de arquivo virtual, sistema de tratamento de exceção, armazenamento de chave/valor, interface de linha de comando FinSH, pilha de rede (LwIP) e estruturas de rede, bibliotecas para suporte a dispositivos, subsistema de som, pilha sem fio, componentes compatíveis com Wi-Fi, LoRa, Bluetooth, 2G/4G. A arquitetura modular permite conectar componentes e serviços com base em suas tarefas e recursos de hardware disponíveis.
- Pacotes de programas. Componentes de software de uso geral e bibliotecas de funções são distribuídos e instalados na forma de pacotes.
Atualmente, o repositório inclui mais de 450 pacotes, desde GUIs, aplicativos multimídia e aplicativos de rede até sistemas de controle de robôs e processadores de aprendizado de máquina.
RT-Thread apresenta uma arquitetura modular extensível que permite criar um ambiente adequado para sistemas com recursos limitados (requisitos mínimos: 3 KB de Flash e 1,2 KB de RAM), além de também ter compatibilidade com diversas interfaces padrão para desenvolvimento de programas, como POSIX, CMSIS, C++ API. Separadamente, a camada RTduino está sendo desenvolvida para ser compatível com a API e as bibliotecas do projeto Arduino.
Outra característica que se destaca é a sistema de gerenciamento de energia flexível que coloca automaticamente o dispositivo no modo de hibernação e gerencia dinamicamente a tensão e a frequência, dependendo da carga.
Ele também tem o suporte de hardware para criptografia e descriptografia, fornecendo bibliotecas com vários algoritmos criptográficos.
Além disso, também possui um sistema de envio e instalação remota de atualizações que suporta criptografia e verificação por meio de assinatura digital, retomada de instalação interrompida, recuperação de falha, reversão de alterações, etc.
Bem como um sistema de módulos de kernel dinamicamente carregáveis que permite criar e desenvolver componentes de kernel separadamente e carregá-los dinamicamente quando necessário.
Das outras características que se destacam:
- Suporte para vários pacotes de terceiros como Yaffs2, SQLite, FreeModbus, Canopen, etc.
- Suporte para compiladores comuns e ferramentas de desenvolvimento, como GCC, MDK Keil e IAR.
- Desenvolvimento de um ambiente de desenvolvimento integrado RT-Thread Studio IDE, que permite construir e depurar aplicações, carregá-las em dashboards e gerenciar configurações. Plugins de desenvolvimento RT-Thread também estão disponíveis para Eclipse e VS Code.
- A presença da interface do console Env, que simplifica a criação de projetos e a configuração do ambiente.
- A capacidade de compilar diretamente um pacote BSP
- Expansível através de um sistema de pacotes e plugins.
- Interface unificada para acesso a dispositivos periféricos e equipamentos adicionais.
- Apoio ao desenvolvimento de uma aplicação para processamento de informação de alto desempenho.
- Virtual FS e disponibilidade de driver para FS
Sobre o RT-Thread 5.0
Em relação às novas funções adicionadas na versão 5.0, pode-se notar uma Melhoria significativa no suporte para sistemas multicore e multithread (Por exemplo, a pilha de rede e os sistemas de arquivos são adaptados para funcionar no modo multithread.
Outra novidade é o agendador é dividido em opções para sistemas single-core e SMP, bem como a implementação adicional de TLS (Thread Local Storage).
Além disso, também destaca o suporte aprimorado para chips Cortex-A, compatibilidade significativamente aprimorada para sistemas de 64 bits (sistemas de arquivos verificados e pilhas TCP/IP para sistemas de 64 bits) e componentes integrados de gerenciamento de memória Flash, bem como que as ferramentas para criar controladores foram redesenhadas.
Os interessados neste sistema devem saber que o código é escrito em linguagem C e distribuído sob a licença Apache 2.0.
Você pode conferir mais detalhes em o seguinte link.