7 pontos por GN⁺ 2023-11-30 | 1 comentários | Compartilhar no WhatsApp
  • A Microsoft abriu o código-fonte do ThreadX, sistema operacional de tempo real obtido com a aquisição da Express Logic.
  • O ThreadX RTOS e o pacote de desenvolvimento Azure RTOS, que o inclui, foram doados à Eclipse Foundation, passando a ser conhecidos como Eclipse ThreadX, e agora podem ser usados sob a licença MIT.
  • Existem vários sistemas operacionais de tempo real (RTOS), mas o ThreadX já é usado em mais de 1,2 bilhão de dispositivos e desempenha um papel central em vários aparelhos, incluindo o Raspberry Pi.

Relação entre Raspberry Pi e ThreadX

  • O ThreadX é usado para executar o mecanismo de gerenciamento embutido nos chips da Intel e o firmware do Raspberry Pi.
  • No Raspberry Pi 1, 2 e 3, ele é chamado de bootcode.bin; no Pi 4 e 400, de start*.elf. Esses arquivos estão incluídos no GitHub e no Debian, mas são "blobs" proprietários cujo código-fonte não foi divulgado.
  • Ele roda na GPU VideoCore do Raspberry Pi, e os núcleos Arm funcionam como dispositivos escravos subordinados à GPU.

O significado da aquisição e da abertura do código do ThreadX pela Microsoft

  • Em 2019, quando o ThreadX completou 21 anos, a Microsoft adquiriu a Express Logic e fez o rebranding para Azure RTOS.
  • Essa aquisição parece ter sido uma resposta à AWS assumir a administração do FreeRTOS; o desenvolvedor original, William Lamie, fundou uma nova empresa e está vendendo o PX5OS, um RTOS de "quinta geração" com threads compatíveis com POSIX.
  • O ThreadX é um produto comprovado, e algumas versões receberam certificação de segurança funcional da TÜV, o que o torna atraente para certos clientes.

Opinião do GN⁺

  • O ponto mais importante deste artigo é que a Microsoft abriu o código-fonte do ThreadX RTOS, uma mudança importante que pode oferecer mais oportunidades para a comunidade de desenvolvedores e impulsionar a inovação tecnológica.
  • A abertura do código também abre a possibilidade de que a pilha de software de dispositivos como o Raspberry Pi se torne totalmente open source, o que pode torná-los uma opção mais atraente para muitas pessoas.
  • Essa mudança é uma notícia interessante tanto para entusiastas de tecnologia quanto para profissionais, e espera-se que tenha um impacto positivo no crescimento e na inovação do ecossistema open source.

1 comentários

 
GN⁺ 2023-11-30
Comentários no Hacker News
  • "Azure RTOS" foi algo que a Microsoft comprou às pressas depois que a Amazon adquiriu o FreeRTOS. Bill Lamie criou o PX5 e levou a maior parte dos talentos para trabalhar em um novo RTOS embarcado leve. Se a Microsoft fizer isso, pode ser um sinal de saída do roadmap do Azure RTOS e dos nós de IoT. O ThreadX tem um ecossistema muito maior que o do FreeRTOS e funciona também em coisas além do Raspberry Pi. A Renesas o oferecia gratuitamente se você comprasse seus SoCs.
  • A certificação de segurança é especialmente interessante. Desenvolver "software de segurança" exige muito trabalho. Ter um RTOS open source e com certificação de segurança é algo bem positivo. Para manter a certificação, vai ser preciso investimento de algum lugar. Entender os padrões de segurança, construir o processo de desenvolvimento correto e mantê-lo conforme o software muda não é tão simples quanto apenas escrever e executar código. Não é o tipo de desenvolvimento de software que dá para fazer como hobby. Espero que a Microsoft financie esse esforço de desenvolvimento. O FreeRTOS não tem certificação de segurança, mas o SAFERTOS, uma implementação comercial com a mesma API, tem.
  • Gostei muito quando usei o ThreadX. Chamar isso de "sistema operacional" é uma definição generosa, no sentido de que ele consiste em funções que fornecem recursos como rotina de serviço de interrupção, criação de threads e gerenciamento de alocação de memória. O ThreadX era muito leve e ótimo para realizar o trabalho. Eu chamava funções como tx_thread_create, tx_malloc etc., e usava filas, semáforos, mutexes e assim por diante. É bom ver que o ThreadX ainda está vivo. Eu precisava executar loops de controle em tempo real de energia/ventoinha/térmico, então precisava conseguir controlar quando certas coisas aconteciam e, após detectar um problema, reagir emitindo comandos dentro de um tempo determinado ou mantendo o sistema seguro.
  • Para quem se pergunta por que o Azure tem um RTOS, a Microsoft adquiriu a Express Logic e seu RTOS ThreadX em 2019. O ThreadX é usado em microcontroladores com muitos limites de recursos. A marca Azure não parece significar muita coisa além do fato de que dispositivos IoT se comunicam com a nuvem.
  • Só a versão atual está no GitHub, e não há sinais da versão VideoCore. Há esperança de que a Raspberry Pi Foundation talvez consiga autorização para liberar o código-fonte da sua própria versão.
  • Esse código é bom, mas acho que há várias formas de aumentar a portabilidade e torná-lo mais amigável para programadores. Isso vale especialmente para as partes portadas em assembly. É difícil modificar os índices das estruturas de dados, então mudar as structs não é fácil. Se as structs em C e os índices no código assembly não estiverem sincronizados, o sistema pode travar. Se os índices no assembly fossem transformados em macros, seria mais fácil modificá-los. Bastaria criar um header para assembly e outro para código C, e definir as structs com macros. Assim, o código C e o assembly ficariam sincronizados. A desvantagem é que essas structs teriam de ser definidas com essa macro, mas isso se aplicaria apenas às structs usadas em assembly e em C ou em níveis mais altos.
  • Faz muito tempo que eu não ouvia falar do ThreadX. Trabalhei em um produto baseado em ThreadX há cerca de 20 anos. Era um dispositivo de aplicação que não precisava de escalonamento em tempo real nem de boot rápido, mas a decisão de escolher o ThreadX estava acima do nível em que eu poderia interferir. Havia até um produto "avançado" separado, que rodava Linux embarcado e era muito mais agradável de trabalhar. Levei de 2 a 3 vezes mais tempo para desenvolver, depurar e testar usando ThreadX. Isso porque muitos recursos convenientes dos quais você acaba dependendo em um kernel não existem no ThreadX. Eu o recomendaria apenas para dispositivos muito simples e críticos em termos de segurança.
  • Isso é realmente um grande negócio, e é legal ver a Eclipse Foundation administrando isso. A Microsoft merece crédito e elogios por isso. Eles têm um bom histórico, então estou bastante otimista, mas este projeto vai precisar de muito suporte contínuo. Agora já não é responsabilidade apenas da Microsoft, mas ela talvez ainda tenha de arcar com uma parte maior do peso enquanto as coisas avançam.
  • Quando trabalhei em firmware de Deskjet, o ThreadX era um RTOS razoável. Na época, sistemas operacionais open source e especialmente as ferramentas não eram adequados para o trabalho. Mas hoje a situação mudou muito, e existem alternativas.
  • O ThreadX não é open source. O código-fonte está disponível publicamente, mas como versão de avaliação, ou seja, sob uma licença proprietária.