FRANK OS 1.0, um sistema inspirado no Windows 95 para microcontroladores

FRANK OS 1.0, um sistema inspirado no Windows 95 para microcontroladores

Um projeto open source pouco convencional chama a atenção ao apresentar uma proposta curiosa: executar um sistema operacional com interface gráfica completa em um microcontrolador. O projeto em questão é o FRANK OS, que acaba de lançar sua primeira versão estável, a 1.0.

A ideia por trás do sistema é transformar um microcontrolador simples em algo que se comporte como um pequeno computador com ambiente gráfico, janelas e aplicativos. Para isso, o FRANK OS utiliza uma arquitetura bastante diferente daquela encontrada em sistemas desktop tradicionais.

Em vez de usar o kernel do Linux ou outro sistema operacional voltado para computadores pessoais, o projeto foi construído sobre o FreeRTOS, um sistema operacional de tempo real bastante utilizado em dispositivos embarcados e equipamentos de Internet das Coisas.

Um desktop completo rodando em um microcontrolador

O FRANK OS foi projetado para rodar em hardware baseado no microcontrolador RP2350, um chip com cerca de 520 KB de memória SRAM e dois núcleos de processamento.

Dentro dessas limitações relativamente modestas de hardware, o sistema implementa um ambiente gráfico completo com gerenciamento de janelas, aplicativos e sistema de arquivos. Ele não tenta substituir sistemas tradicionais, mas demonstra até onde é possível levar a computação em dispositivos embarcados.

FRANK OS 1.0 um sistema inspirado no Windows 95 para microcontroladores 1
Imagem: FRANK OS

A arquitetura do sistema utiliza os dois núcleos do microcontrolador de forma separada. Um deles executa o agendador do FreeRTOS, a interface gráfica e os aplicativos, enquanto o outro fica dedicado à geração do sinal de vídeo em tempo real através de uma conexão DVI.

Essa divisão permite que o sistema mantenha a interface gráfica responsiva mesmo em um hardware extremamente limitado.

Interface inspirada no Windows 95

Visualmente, o ambiente gráfico do FRANK OS segue uma estética bastante familiar para quem utilizou computadores pessoais nos anos 1990. O design do desktop foi claramente inspirado no clássico Windows 95.

FRANK OS 1.0, um sistema inspirado no Windows 95 para microcontroladores 2
Imagem: FRANK OS

A interface apresenta elementos tradicionais como janelas sobrepostas, uma barra de tarefas na parte inferior da tela e um menu de aplicativos semelhante ao menu iniciar. Cada janela possui barra de título, botões de minimizar, maximizar e fechar, além de suporte para redimensionamento e movimentação com o mouse.

Também é possível alternar entre aplicativos utilizando um seletor de janelas semelhante ao tradicional atalho Alt+Tab.

A barra de tarefas exibe os aplicativos em execução e oferece acesso rápido ao menu principal do sistema. Um pequeno conjunto de indicadores também aparece na área equivalente à bandeja do sistema, incluindo relógio e controle de volume.

A interface foi construída especificamente para funcionar dentro das limitações do hardware, utilizando uma paleta de 16 cores e resolução de 640×480.

Aplicativos incluídos no sistema

Apesar das limitações de memória, o FRANK OS inclui um conjunto relativamente variado de aplicativos que demonstram as capacidades da plataforma.

FRANK OS 1.0, um sistema inspirado no Windows 95 para microcontroladores 3
Imagem: FRANK OS

Entre os programas disponíveis estão um terminal com interpretador de comandos, editor de texto, gerenciador de arquivos e alguns utilitários básicos. O sistema também traz pequenos jogos clássicos, incluindo versões de Campo Minado e Paciência.

Outros aplicativos incluídos são um player de MP3, um emulador do computador doméstico ZX Spectrum e um interpretador BASIC com interface gráfica.

Os aplicativos são compilados como binários ARM no formato ELF e carregados a partir de um cartão SD. Isso permite adicionar novos programas sem precisar recompilar o firmware completo do sistema.

Projeto voltado para experimentação

O objetivo do FRANK OS é experimental e voltada principalmente para entusiastas de eletrônica, sistemas embarcados e programação de baixo nível.

Ainda assim, o sistema demonstra como é possível implementar conceitos típicos de sistemas desktop, como multitarefa, janelas e gerenciamento de aplicativos, mesmo em dispositivos com recursos extremamente limitados.

Fique por dentro das principais novidades da semana sobre tecnologia e Linux: receba nossa newsletter!