Contiki OS | ||
---|---|---|
Pantalla de Contiki en un Commodore 128. | ||
Información general | ||
Tipo de programa | Sistema operativo embebido | |
Desarrollador | Adam Dunkels | |
Modelo de desarrollo | Open source | |
Licencia | Licencia BSD | |
Información técnica | ||
Interfaz gráfica predeterminada | CTK | |
Versiones | ||
Última versión estable | 2.6 ( 17 de julio de 2012 (12 años, 4 meses y 7 días)) | |
Enlaces | ||
Contiki OS es un sistema operativo de código abierto desarrollado para uso en un número de pequeños sistemas pasando desde ordenadores de 8-bit a sistemas embebidos sobre microcontroladores, incluyendo nodos de redes de sensores. El nombre Contiki viene de la famosa balsa Kon-Tiki de Thor Heyerdahl.
A pesar de la multitarea que provee y la pila TCP/IP incluida, Contiki sólo requiere unos kilobytes de código y unos cientos de bytes de RAM. Un sistema totalmente completo con una GUI requiere aproximadamente 30 kilobytes de RAM.
El núcleo básico y la mayor parte de las funciones principales son desarrolladas por Adam Dunkels.
Recientemente se ha creado una nueva rama actualizada: Contiki-NG: el SO para la Futura Generación de objetos conectados.
Contiki está diseñado para sistemas embebidos con escasa memoria. Una configuración típica de Contiki consta de 2 KB de RAM y 40 KB de ROM. Cuenta con un núcleo orientado a eventos sobre el cual los programas pueden ser cargados y descargados de forma dinámica en tiempo de ejecución. Los procesos en Contiki usan protohilos,[1] un mecanismo de abstracción ideado para proporcionar un estilo de programación secuencial sobre el núcleo orientado a eventos. También soporta multihilado apropiativo opcional por proceso. La comunicación entre procesos se realiza mediante la técnica de paso de mensajes, la cual está implementada mediante el sistema de eventos del núcleo. Tiene un subsistema GUI opcional, con soporte de gráficos para terminales locales, terminales virtuales en red mediante VNC o sobre Telnet. Incluye una pila ligera TCP/IP[2] y la pila Rime,[3] que está diseñada especialmente para comunicaciones inalámbricas de baja potencia y cuenta con un amplio rango de primitivas de comunicación. También soporta IPv6, junto con protocolos como RPL[4] y 6LoWPAN.
Funciona en una variedad de plataformas, desde microcontroladores embebidos, como el MSP430 y el AVR, a viejas computadoras domésticas. El tamaño del código está en el orden de los kilobytes y el uso de la memoria puede configurarse para que sea de sólo unas decenas de bytes. Está escrito en el lenguaje de programación C y usa una licencia tipo BSD.
Una instalación completa de Contiki incluye las siguientes características:
El sistema operativo Contiki ha sido o está siendo portado a los siguientes sistemas:
* desarrollo basado en cc65.