Sistemas operativos para redes de sensores inalámbricos

Post date: Jun 14, 2010 9:57:43 AM

En los últimos años las redes de sensores inalámbricas o WSN (Wireless Sensor Networks) están tomando una papel relevante en la investigación en centros de investigación y universidades. Es cierto que quizás hay una falta de aplicaciones en la industria pero todo llegará. Entre las decisiones a tomar si pretendemos realizar una aplicación con este tipo de dispositivos, nos encontramos, en primer lugar, con la decisión de utilizar un sistema operativo u otro o incluso si utilizarlo. Existen bastantes propuestas que, o bien se han desarrollado específicamente para redes de sensores inalámbricas o bien se han adaptado viniendo del área de sistemas empotrados. Quizás en el ámbito de investigación el SO que más éxito ha tenido es el TinyOS (http://code.google.com/p/tinyos-main/) con licencia BSD y que utiliza una variante de C para la programación (nesC). Este sistema operativo es uno de los que mas dispositivos soporta y sigue un modelo de programación orientada a eventos.

Otra propuesta "open source" es Contiki (http://www.sics.se/contiki/), originalmente creado para dispositivos de 8 bits, ha sido portado a varias plataformas de redes de sensores inalámbricas y está muy orientado a la interconexión de este tipo de dispositivos a Internet. Se programa en C y uno de sus creadores (Adam Dunkels) es el programador de uIP, una pila de protocolos TCP/IP para procesadores de 8 bits. A pesar de que implementa muchos conceptos de investigación en sistemas operativos (E.j. API Rime y proto-sockets) y soporta la programación orientada a eventos y basada en hilos, este sistema operativo ha sido utilizado en numerosas aplicaciones para estudiar sus prestaciones. El entorno de desarrollo viene con un potente simulador/emulador (COOJA/MSPsim) que simplifica el desarrollo de aplicaciones.

En el ámbito de los sistemas operativos para sistemas empotrados que se han utilizado en redes de sensores inalámbricas nos encontramos Arduino. Arduino es un proyecto GPLv2 de Hardware/Software para sistemas empotrados y que, por ejemplo, se encuentra en la base de algunos desarrollos para WSN de Lybelium (http://www.libelium.com/products). El Arduino original se programa en c/c++ usando avr-gcc para la compilación. Otro ejemplo de este tipo de sistemas operativos que fácilmente se pueden utilizar en redes de sensores inalámbricas es eCOS (http://ecos.sourceware.org/), otro sistema operativo "open source" diseñado para sistemas de tiempo real (GPL) y que, dado que soporta bastante del HW empleado en estos dispositivos se podría adaptar a este tipo de aplicaciones. Igual reflexión se puede hacer para freeRTOS (http://www.freertos.org/), este bajo una GPL modificada, que se programa en C y que se utiliza también en proyectos empotrados para tiempo real. Es cierto que en estos dos últimos ejemplos su aplicación a WSN, aunque mencionada en algunos artículos, es mas difícil ya que no constituyen su principal área de atención como lo es en TinyOS y Contiki.

Por supuesto, hay muchos mas, pero quizás esos son los mas utilizados y que mas continuidad y soporte están teniendo por parte de la comunidad. En otros ámbitos, hay propuestas de investigación como SenOS, CORMOS, EYES o Magnet, este último una propuesta de sistema distribuido para WSN, también existen sistemas operativos para un dispositivo específico como BTnut (http://www.btnode.ethz.ch/), y un largo etc.