Contiki: sistema operativo libre para ordenadores de 8 bits y embebidos
Contiki: sistema operativo libre y ultraligero para ordenadores de 8 bits y sistemas embebidos. Interfaz gráfica y solo ~30 KB de RAM. Ideal para proyectos integrados.
Contiki es un pequeño sistema operativo libre de código abierto, diseñado para máquinas con recursos muy limitados. Fue desarrollado para ser utilizado en ordenadores de 8 bits y en sistemas integrados (embebidos). Dispone de una interfaz gráfica de usuario ligera (CTK) y una instalación mínima típica puede necesitar alrededor de 30 kilobytes de RAM, lo que lo hace adecuado para plataformas con memoria y almacenamiento reducidos.
El nombre Contiki proviene de la famosa balsa Kon-Tiki de Thor Heyerdahl, en alusión a su diseño sencillo pero efectivo para navegar en entornos exigentes.
Historia y desarrollo
El núcleo básico y la mayoría de las funciones principales fueron desarrollados por Adam Dunkels en el grupo de Sistemas Integrados en Red del Instituto Sueco de Informática. Desde su creación, Contiki ha evolucionado gracias a contribuciones de la comunidad académica y de desarrolladores interesados en redes y dispositivos de baja potencia. Más recientemente surgieron derivados y proyectos relacionados, como Contiki-NG, orientados a las exigencias modernas del Internet de las cosas (IoT).
Características principales
- Huella reducida: diseño para funcionar con muy poca memoria RAM y almacenamiento.
- Multitarea ligera: utiliza protothreads (hilos ligeros y sin pila) que facilitan la programación cooperativa en sistemas embebidos.
- Pila de red integrada: incluye uIP, una pila TCP/IP minimalista, y Rime, un conjunto de protocolos de comunicación diseñados para redes de sensores y dispositivos de bajo consumo.
- Interfaz gráfica sencilla: CTK (Contiki Toolkit) que permite crear interfaces gráficas básicas en dispositivos con pantalla limitada.
- Cooja: simulador de red incluido en el ecosistema Contiki para probar aplicaciones y topologías de nodos antes del despliegue físico.
- Carga dinámica de programas: permite cargar y ejecutar aplicaciones sin reinstalar completamente el sistema.
Arquitectura y modelos de programación
Contiki combina un kernel pequeño con bibliotecas modulares: los procesos del sistema se implementan mediante un modelo cooperativo apoyado por protothreads, que simplifica la gestión de concurrencia sin exigir pilas separadas para cada hilo. Esto reduce el consumo de memoria y facilita portar Contiki a microcontroladores con recursos muy limitados.
Redes y protocolos
Una de las fortalezas de Contiki es su soporte para comunicaciones en redes de sensores y dispositivos IoT. La pila uIP ofrece soporte básico para TCP/IP (con opciones para IPv6 en versiones y extensiones posteriores), mientras que Rime proporciona mecanismos ligeros para difusión, recopilación de datos y enrutamiento simple. Contiki también ha sido plataforma para experimentar con protocolos de capa de aplicación y formatos propios del IoT, como CoAP y 6LoWPAN, a través de sus extensiones y aportes comunitarios.
Plataformas soportadas y usos típicos
Contiki ha sido portado a varias arquitecturas de microcontroladores y placas de desarrollo clásicas y modernas (por ejemplo, AVR, MSP430, ARM Cortex-M y plataformas específicas para investigación en redes de sensores). Se utiliza frecuentemente en proyectos académicos, prototipos de IoT, nodos de sensado ambiental y aplicaciones donde la eficiencia energética y la economía de recursos son críticas.
Licencia y comunidad
Contiki se distribuye como software libre bajo una licencia permisiva, lo que facilita su uso en proyectos académicos, comerciales y de investigación. La comunidad alrededor de Contiki ofrece herramientas, simuladores (Cooja), ejemplos y documentación que ayudan a acelerar el desarrollo en plataformas con recursos limitados.
Recursos y evolución
Para proyectos más recientes y con necesidades específicas del IoT moderno, existe Contiki-NG (Next Generation), que mantiene la filosofía de bajo consumo y huella reducida, pero incorporando mejoras y actualizaciones en protocolos y soporte de plataformas. La combinación de documentación, simulación con Cooja y ejemplos prácticos continúa haciendo de Contiki una opción relevante para dispositivos embebidos y redes de sensores.

Puerto C128 con indicaciones 80
Características
Una instalación completa de Contiki incluye las siguientes características:
- Núcleo multitarea
- Multihilo preventivo opcional por aplicación
- Protothreads
- Red TCP/IP
- Sistema de ventanas e interfaz gráfica de usuario
- Visualización remota en red mediante computación virtual en red
- Un navegador web (se dice que es el más pequeño del mundo)
- Servidor web personal
- Cliente telnet simple
- Salvapantallas
Están previstas más aplicaciones:
- un programa de correo electrónico
- un cliente de InternetRelay Chat
Puertos
El sistema operativo Contiki ha sido o está siendo portado a los siguientes sistemas:
- Ordenadores:
- Familia Apple II*
- Atari 8 bits*
- Atari ST
- Cartera de Atari
- Casio Pocketview
- Commodore PET*
- Commodore VIC 20*
- Commodore 64*
- Commodore 128*
- GP32
- PC-6001
- Mago afilado
- sistemas tipo Unix basados en x86, sobre GTK+, así como utilizando directamente el sistema X Window
* Desarrollo basado en cc65
- Consolas de videojuegos:
- Motor de PC
- Sega Dreamcast
- Sony PlayStation
- Consolas de juegos de mano:
- Nintendo Game Boy
- Nintendo Game Boy Advance
- Microcontroladores:
- AVR de Atmel
- TI MSP430
Páginas relacionadas
Medios relacionados con Contiki en Wikimedia Commons
Preguntas y respuestas
P: ¿Qué es Contiki?
R: Contiki es un pequeño sistema operativo libre de código abierto.
P: ¿Para qué se desarrolló Contiki?
R: Contiki fue desarrollado para ser utilizado en ordenadores de 8 bits y sistemas embebidos.
P: ¿Tiene Contiki una interfaz gráfica de usuario?
R: Sí, Contiki tiene una interfaz gráfica de usuario.
P: ¿Cuánta RAM se necesita para la instalación completa de Contiki?
R: La instalación completa de Contiki necesita unos 30 kilobytes de RAM.
P: ¿Cuál es el origen del nombre Contiki?
R: El nombre Contiki proviene de la famosa balsa Kon-Tiki de Thor Heyerdahl.
P: ¿Quién desarrolló el núcleo básico y la mayoría de las funciones principales de Contiki?
R: Adam Dunkels desarrolló el núcleo básico y la mayoría de las funciones principales de Contiki en el grupo Networked Embedded Systems del Instituto Sueco de Informática.
P: ¿Es Contiki un sistema operativo de pago?
R: No, Contiki es un sistema operativo gratuito y de código abierto.
Buscar dentro de la enciclopedia