Los microcontroladores son computadoras en un chip. Son programables y evidentemente no tienen todas las prestaciones que las computadoras que usamos diariamente, pero es claro que para algunas aplicaciones de proyectos embebidos puede ser una buena idea. La pregunta es ¿se puede escribir un sistema operativo para dichos circuitos con las limitaciones que imperan en esos entornos? La respuesta es “sí” y además, hay varios sistemas operativos de esta naturaleza. Hoy hablaremos de Femto OS.
Este proyecto -el cual se ha hecho en el tiempo libre de quien lo programa, comenzó en agosto del 2007. Todo el sistema se escribió desde cero y el autor se inspiró en FreeRTOS, que hizo un estupendo trabajo, pero fue demasiado grande para los dispositivos ATtiny. Por lo cual, Femto OS es un producto nuevo y diferente.
El nombre Femto OS significa que el sistema operativo es muy pequeño, significativamente más pequeño que Pico OS, pero incluso hay espacio para cosas más pequeñas, como el atto OS. Un punto extra es que femtoos era un dominio que aún no se había tomado en Internet. Asombroso, porque parece que ya todos los dominios de siete letras están ya tomados por alguien.
Pues bien, Femto OS es un sistema operativo en tiempo real (RTOS), para controladores embebidos con RAM mínimo (128 a 1024 bytes) y memoria Flash, digamos 2KB a 16 KB. El objetivo principal es la arquitectura Atmel AVR, como la de los microcontroladores ATtiny o incluso más pequeños. El sistema operativo corre bien en hardware más grande también. El sistema se ha escrito todso en C. Se ha portado a 44 dispositivos AVR.
Se necesitan aproximadamente 2K para el sistema operativo por sí mismo, aunque si se quitan algunas funciones, podría caber en 1K. El SO toma de 10 a 20 bytes de RAM. Las tareas que puede hacer pueden tener muy pocos bytes, incluso 6 en RAM, pero en general, para aplicaciones en el mundo real, lo típico son de 20 a 40 bytes. Cabe decir que esto incluye ya el stack. Se pueden correr, por ejemplo, en el ATtiny261 cuatro o más tareas. Además, el SO puede manejar interrupciones. Hay además herramientas para ver y proteger el uso del stack de las tareas y del sistema operativo.
El código está muy documentado y viene con un buen número de aplicaciones ejemplo (documentadas mínimamente, pero que hablan por sí mismas de la posibilidad del sistema). Las demostracuones corren en todos los dispositivos que tengan un puerto disponible. Femto OS se distribuye bajo licencia GPLv3, pero también hay licencias comerciales y soporte técnico en caso necesario.
Así pues, quien trabaje con esta familia de microcontroladores, tiene una buena herramienta de desarrollo. Es código abierto y la verdad, es un trabajo muy interesante que bien vale la pena.
Referencias: