Articulo de referencia

TinyOS

TinyOS es un sistema operativo y plataforma embebida basada en componentes para dispositivos inalámbricos de bajo consumo, como los utilizados en redes de sensores inalámbricos ...

TinyOS es un sistema operativo y plataforma embebida basada en componentes para dispositivos inalámbricos de bajo consumo, como los utilizados en redes de sensores inalámbricos (WSN), polvo inteligente , computación ubicua , redes de área personal , automatización de edificios y contadores inteligentes [ 1 ] [ 2 ] [ 3 ] . Está escrito en el lenguaje de programación nesC, como un conjunto de tareas y procesos cooperativos. Comenzó como una colaboración entre la Universidad de California, Berkeley , Intel Research y Crossbow Technology , se lanzó como software libre y de código abierto bajo una licencia BSD , y desde entonces se ha convertido en un consorcio internacional, la TinyOS Alliance .

TinyOS se ha utilizado en el espacio, estando implementado en ESTCube-1 .

Implementación

Las aplicaciones TinyOS están escritas en el lenguaje de programación nesC , un dialecto del lenguaje C optimizado para las limitaciones de memoria de las redes de sensores. [ 4 ] Sus herramientas complementarias son principalmente interfaces Java y de scripts de shell . Las bibliotecas y herramientas asociadas, como el compilador nesC y las cadenas de herramientas Atmel AVR binutils, están escritas mayoritariamente en C. [ 2 ]

Los programas TinyOS se componen de componentes de software , algunos de los cuales representan abstracciones de hardware. Los componentes se conectan entre sí mediante interfaces . TinyOS proporciona interfaces y componentes para abstracciones comunes como la comunicación de paquetes, el enrutamiento, la detección, la actuación y el almacenamiento. [ 2 ]

TinyOS es completamente no bloqueante : tiene una única pila de llamadas . Por lo tanto, todas las operaciones de entrada/salida (E/S) que duran más de unos cientos de microsegundos son asíncronas y tienen una función de devolución de llamada . Para permitir que el compilador nativo optimice mejor entre los límites de las llamadas, TinyOS utiliza las características de nesC para vincular estáticamente estas funciones de devolución de llamada, llamadas eventos. Si bien ser no bloqueante permite a TinyOS mantener una alta concurrencia con una sola pila, obliga a los programadores a escribir lógica compleja uniendo muchos manejadores de eventos pequeños. Para admitir cálculos más grandes, TinyOS proporciona tareas, que son similares a las partes inferiores de una llamada a procedimiento diferido y un manejador de interrupciones . Un componente de TinyOS puede publicar una tarea, que el sistema operativo programará para ejecutarse más tarde. Las tareas no son preemptivas y se ejecutan en orden de llegada (primero en entrar, primero en salir) . Este sencillo modelo de concurrencia suele ser suficiente para aplicaciones centradas en E/S, pero su dificultad con aplicaciones que consumen muchos recursos de CPU ha llevado al desarrollo de una biblioteca de hilos para el sistema operativo, llamada TOSThreads. TOSThreads no recibe mantenimiento y ha sido descontinuado. [ 5 ]

El código de TinyOS se enlaza estáticamente con el código del programa y se compila en un pequeño binario mediante una cadena de herramientas GNU personalizada . Se proporcionan utilidades asociadas para completar una plataforma de desarrollo para trabajar con TinyOS.

Historia

TinyOS comenzó como un proyecto en la Universidad de California en Berkeley, dentro del programa DARPA NEST. Desde entonces, ha crecido hasta involucrar a miles de desarrolladores y usuarios académicos y comerciales en todo el mundo. (Lista en orden cronológico inverso)

  • Agosto de 2012: Lanzamiento de TinyOS 2.1.2
  • Abril de 2010: Lanzamiento de TinyOS 2.1.1.
  • Agosto de 2008: Lanzamiento de TinyOS 2.1.0.
  • Julio de 2007: Se lanza TinyOS 2.0.2. Comienza el trabajo en TinyOS 2.1, que implica ligeros cambios en algunas interfaces.
  • Abril de 2007: TinyOS 2.0.1 se lanzó en el 4º TinyOS Technology Exchange en Cambridge, Massachusetts.
  • Noviembre de 2006: TinyOS 2.0 se presenta en la conferencia SenSys en Boulder, Colorado.
  • Julio de 2006: Lanzamiento de TinyOS 2.0 beta2.
  • Febrero de 2006: TinyOS 2.0 beta1 se lanzó en el 3er TinyOS Technology Exchange en Stanford, California.
  • Diciembre de 2005: Se lanza TinyOS 1.1.15, la última versión 1.1.
  • Julio de 2005: Finaliza el proyecto NEST.
  • Junio ​​de 2004: Se forma un grupo de trabajo para definir los próximos pasos de TinyOS, basándose en la experiencia adquirida al adaptarlo a nuevas plataformas. El grupo acuerda comenzar a trabajar en la versión 2.0.
  • Septiembre de 2003 – diciembre de 2005: TinyOS comienza un proceso periódico de lanzamiento de actualizaciones menores.
  • Agosto de 2003: Se lanza TinyOS versión 1.1, que incluye nuevas funciones de nesC, incluida la detección de condiciones de carrera de datos.
  • Septiembre de 2002: Se lanza TinyOS versión 1.0, implementado en nesC.
  • Abril de 2002: Comienza el trabajo en el lenguaje de programación nesC como una colaboración entre Intel Research y la Universidad de California en Berkeley.
  • Febrero de 2002: Berkeley distribuye 1000 nodos de mica a otros participantes del proyecto NEST.
  • 2001: Berkeley desarrolla la plataforma mica y lanza TinyOS versión 0.6.
  • 2000: Berkeley diseña la plataforma rene y se asocia con Crossbow, Inc., que fabrica el hardware en masa. La versión 0.43 de TinyOS se publica en SourceForge. Las versiones anteriores a la 1.0 de TinyOS son una combinación de scripts en C y Perl .
  • 1999: En Berkeley se desarrollan las primeras implementaciones de la plataforma TinyOS (WeC) y del sistema operativo.

entornos de desarrollo integrados

A partir de 2010, existen tres entornos de desarrollo integrados (IDE) disponibles para TinyOS, como complementos para Eclipse :

  • YETI 2 , ETH Zúrich (desarrollo detenido)
  • XPairtise, de Rasmus Pedersen, Escuela de Negocios de Copenhague.
  • TinyDT , Universidad de Vanderbilt

Referencias

  1. "El surgimiento de abstracciones y técnicas de redes en TinyOS" . csl.stanford.edu . Consultado el 26 de marzo de 2026 .
  2. 1 2 3 Dâmaso, Antônio; Freitas, Davi; Rosa, Nelson; Silva, Bruno; Maciel, Paulo (13 de marzo de 2013). "Evaluación del consumo de energía de aplicaciones de redes de sensores inalámbricos mediante modelos" . Sensores (Basilea, Suiza) . 13 (3): 3473– 3500. Código bibliográfico : 2013Senso..13.3473D . doi : 10.3390/s130303473 . ISSN 1424-8220 . PMC 3658757 . PMID 23486217 .   
  3. "TinyOS. Obtén el software de forma segura y sencilla" . Software Informer . 27 de mayo de 2026. Consultado el 30 de junio de 2026 .
  4. Levis, Philip; Gay, David (2009). Programación de TinyOS . Cambridge University Press. ISBN 9780521896061.
  5. "Repositorio de desarrollo de TinyOS: TOSThreads obsoleto" . Repositorio de desarrollo actual de TinyOS . Consultado el 3 de diciembre de 2018 .
  • TinyOS en GitHub