Contiki
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.
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, 5 meses y 12 días)) | |
Enlaces | ||
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.
Características
editarContiki 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.
Lista de características
editarUna instalación completa de Contiki incluye las siguientes características:
- Kernel multitarea
- Multitarea preferente opcional por aplicación
- Protohilos de ejecución
- Conectividad TCP/IP
- Sistema de ventanas y GUI
- Cliente remoto usando VNC
- Un navegador web (posiblemente el más pequeño del mundo)
- Servidor web personal
- Cliente telnet simple
- Salvapantallas
Ports
editarEl sistema operativo Contiki ha sido o está siendo portado a los siguientes sistemas:
- Computadoras:
- Apple II*
- Familia Atari de 8 bits*
- Atari ST
- Atari Portfolio
- Casio Pocketview
- Commodore PET*
- Commodore VIC-20*
- Commodore 64*
- Commodore 128*
- GP32
- Oric
- PC-6001
- Sharp Wizard
- Sistemas Unix (y similares) sobre x86, funcionando sobre GTK+ al igual que directamente usando el sistema X Window[5]
* desarrollo basado en cc65.
- Videoconsolas:
- Videoconsolas portátiles:
- Nintendo Game Boy
- Nintendo Game Boy Advance
- Microcontroladores:
- Atmel AVR
- TI MSP430, TI CC2538: Archivado el 1 de agosto de 2020 en Wayback Machine., Firefly Archivado el 28 de julio de 2020 en Wayback Machine., Zoul Archivado el 28 de julio de 2020 en Wayback Machine. (integra el CC2538 y CC1200 en un mismo módulo)
Véase también
editar- Wikimedia Commons alberga una categoría multimedia sobre Contiki.
- Wheels (sistema operativo)
- SymbOS (sistema operativo)
- TinyOS (sistema operativo)
Referencias
editar- ↑ Dunkels, Adam (2006). «Protothreads: simplifying event-driven programming of memory-constrained embedded systems». Proceedings of the 4th international conference on Embedded networked sensor systems.
- ↑ Dunkels, Adam. Design and Implementation of the lwIP TCP/IP Stack. http://www.es.sdu.edu.cn/project/doc/Design%20and%20Implementation%20of%20the%20lwIP%20tcpIP%20stack.pdf.
- ↑ Dunkels, Adam (2007). Rime - a lightweight layered communication stack for sensor networks.
- ↑ IETF. «RPL: IPv6 Routing Protocol for Low power and Lossy Networks».
- ↑ «Running Contiki under Windows». Archivado desde el original el 10 de agosto de 2006. Consultado el 25 de marzo de 2008.