Los microcontroladores están diseñados para tareas concretas: leer sensores, controlar motores, responder a entradas y encargarse de funciones específicas dentro de todo tipo de dispositivos electrónicos.
Los encontramos en lavadoras, mandos a distancia, equipos médicos, sistemas industriales y, en general, en casi cualquier aparato con una placa electrónica que no sea un ordenador completo.
Por sus recursos limitados, lo habitual es que ejecuten firmware bare-metal o sistemas operativos en tiempo real ligeros, como Zephyr o Eclipse ThreadX.
Por eso, resulta tan llamativo este proyecto: alguien ha decidido darle a un microcontrolador una interfaz gráfica de escritorio al estilo de un PC clásico.
Ese proyecto se llama FRANK OS, y ha sido creado por el desarrollador y entusiasta Mikhail Matveev, desde Grecia. Se trata de un sistema operativo de escritorio construido para el microcontrolador RP2350.
PROBAR SISTEMA OPERATIVO FRANK OS
¿Qué es FRANK OS?
FRANK OS es un sistema operativo de escritorio construido sobre FreeRTOS, el conocido sistema operativo en tiempo real de código abierto que ofrece:
- multitarea preventiva
- un consumo de memoria relativamente contenido
- soporte para más de 40 arquitecturas de procesador
A partir de esa base, FRANK OS añade su propia capa de escritorio con:
- interfaz gráfica con ventanas
- shell integrado
- sistema de archivos
- entorno de ejecución para aplicaciones
El resultado es un sistema con una estética claramente inspirada en Windows 95, capaz de ejecutar aplicaciones ELF desde una tarjeta SD y con mecanismos de recuperación ante fallos graves (hard fault recovery).
Además, el proyecto se distribuye bajo licencia GNU General Public License v3.0 y recibió su primera versión estable hace pocas semanas, según el texto original.
El hardware al que apunta FRANK OS
Sobre el papel, FRANK OS está pensado para funcionar en la placa FRANK M2, una creación del propio desarrollador basada en el RP2350B.
Esta placa incluye varios elementos clave para hacer viable un pequeño entorno gráfico:
- salida DVI
- puertos PS/2
- PSRAM
- ranura para tarjeta SD
Llevar un escritorio con ventanas a un microcontrolador con solo 520 KB de SRAM integrada no es precisamente poca cosa. De hecho, ese es uno de los aspectos más curiosos del proyecto.
¿Cómo consigue ejecutar un escritorio en un microcontrolador?
Uno de los puntos más interesantes de FRANK OS es cómo reparte la carga de trabajo entre los dos núcleos del RP2350.
Reparto por núcleos
Núcleo 0
Se encarga de:
- el planificador de FreeRTOS
- el gestor de ventanas
- la gestión de entrada
- la ejecución de aplicaciones
Núcleo 1
Está dedicado por completo al renderizado en tiempo real de líneas DVI mediante el controlador DispHSTX.
Este reparto permite que el sistema mantenga una interfaz gráfica funcional dentro de unas limitaciones de hardware muy ajustadas.
¿Cómo se ejecutan las aplicaciones?
Las aplicaciones de FRANK OS se compilan como binarios ARM ELF independientes y se cargan desde una tarjeta SD.
Además, el sistema incluye una capa de compatibilidad MOS2, lo que le permite ejecutar aplicaciones de Murmulator OS 2.
Esto amplía bastante las posibilidades del sistema, ya que no se limita únicamente a las aplicaciones creadas de forma nativa para FRANK OS.
¿Qué ofrece FRANK OS en la práctica?
Más allá del concepto llamativo, FRANK OS intenta comportarse como un escritorio real, aunque sea en miniatura.
Un escritorio con ventanas al estilo clásico
El sistema incluye un entorno gráfico donde las ventanas de las aplicaciones pueden:
- superponerse
- arrastrarse
- redimensionarse desde bordes y esquinas
- minimizarse
- maximizarse
- cerrarse
Es decir, no se trata solo de una pantalla con iconos: intenta reproducir de verdad la experiencia de un escritorio clásico.
Barra de tareas, menú Inicio y bandeja del sistema
En la parte inferior de la pantalla aparece una barra de tareas con varios elementos familiares:
- botón de Inicio
- botones para las ventanas abiertas
- bandeja del sistema
- reloj
- control de volumen
Además, el menú Inicio puede escanear la carpeta:
/fos/
en la tarjeta SD durante el arranque para mostrar la lista de aplicaciones disponibles.
Accesos directos en el escritorio y cambio de ventanas
El escritorio permite colocar hasta 24 accesos directos, creados desde el menú contextual con clic derecho, y estos se mantienen incluso después de reiniciar.
También incluye un conmutador de ventanas al pulsar:
Alt + Tab
Este selector permite recorrer todas las ventanas abiertas, incluidas las que están minimizadas.
PShell: el shell integrado de FRANK OS
FRANK OS incluye PShell, un shell integrado que se ejecuta dentro de la aplicación Terminal.
Desde ahí es posible realizar varias tareas:
- operaciones con archivos
- edición de archivos con vi
- uso de un compilador de C
- lanzamiento de aplicaciones de consola compatibles con MOS2 desde la tarjeta SD
Esto le da al sistema una capa bastante más práctica y menos “de demostración” de lo que podría parecer al principio.
Panel de control
El sistema también incorpora un Panel de control, accesible desde el menú Inicio, con cuatro pequeños módulos de configuración:
- color de fondo
- información del sistema
- ajustes del ratón
- frecuencias de reloj de la CPU y la PSRAM
No es un panel enorme, claro, pero sí refuerza esa idea de escritorio clásico autocontenido.
Capacidades de audio
En el apartado de sonido, FRANK OS tampoco se queda en lo básico. Según el texto original, el sistema puede ofrecer:
- salida estéreo I2S
- 4 canales de sonido concurrentes
- reproducción de MP3
- reproducción de MOD
- síntesis MIDI/OPL FM
- sonido de arranque
Para un sistema de escritorio ejecutándose sobre un microcontrolador, es una lista bastante llamativa.
Aplicaciones preinstaladas
FRANK OS incluye nueve aplicaciones preinstaladas. Son las siguientes:
| Columna 1 | Columna 2 |
|---|---|
| Terminal | Notepad |
| Solitaire | Minesweeper |
| Digger | ZX Spectrum 48K Emulator |
| FrankAmp | MMBasic |
| PShell |
La selección mezcla utilidades básicas, entretenimiento y herramientas más orientadas a experimentar con el sistema.
Qué deja entrever esta selección
Solo con esa lista ya se entiende bastante bien el enfoque del proyecto:
- Terminal y PShell para la parte más técnica
- Notepad para edición básica
- FrankAmp para audio
- Solitaire, Minesweeper y Digger para reforzar el guiño retro
- un emulador ZX Spectrum 48K para llevar todavía más lejos esa estética nostálgica
- MMBasic para programación e interacción
¿Dónde encontrar el proyecto?
El texto original indica que en el repositorio de GitHub de FRANK OS se pueden encontrar:
- instrucciones detalladas de instalación
- código fuente
- documentación
Eso lo convierte en un proyecto especialmente interesante no solo para curiosear, sino también para estudiar cómo se ha construido.
¿Por qué FRANK OS llama tanto la atención?
FRANK OS no es simplemente una rareza simpática.
También es una demostración de hasta dónde se puede llevar un microcontrolador moderno cuando se combina con una buena arquitectura de software y una idea muy clara del objetivo.
Lo que hace especial a este proyecto es la combinación de varios elementos:
- una base real sobre FreeRTOS
- una interfaz gráfica completa
- multitarea
- ejecución de aplicaciones desde SD
- compatibilidad con otras apps
- enfoque retro pero funcional
En otras palabras: no es solo “un escritorio dibujado sobre una pantalla”, sino un pequeño sistema operativo de escritorio con bastantes piezas reales en funcionamiento.
