Software

Sistema operativo para IoT, se busca

La consultora Markets and Markets lanzó este mes los resultados de su investigación del mercado de sistemas operativos para IoT. En el informe se destaca que, este año, dicho mercado alcanzará un volumen de U$S 289,2 millones y que crecerá a una tasa del 42,9 por ciento anual hasta el año 2022. Dentro de los componentes que conforman este negocio, Markets and Markets observa que la mayor parte corresponderá a servicios profesionales, “debido a la creciente necesidad de consultoría, deployment e integración, junto con servicios de mantenimiento y de soporte”. Según la consultora, las principales áreas de aplicación serán edificios inteligentes y automatización de hogares, automatización industrial, administración capilar de redes, telemática vehicular, e inteligencia aplicada a empresas de servicios, fabricación y cuidado de la salud.

Resultados de la encuesta sobre uso de sistemas operativos en IoT (fuente; IoT Developer Survey 2016)

“El ecosistema de IoT representa una amplia gama de tecnologías, que van desde microcontroladores impulsados por sensores a dispositivos basados en microprocesadores”, observa el informe de Markets and Markets. “Para evitar los desarrollos redundantes y acotar los costos de mantenimiento de los productos IoT, se requiere una clase novedosa y unificadora de sistemas operativos”.

La empresa Arrow, dedicada a la distribución de componentes electrónicos, publicó un informe sobre el escenario actual de los sistemas operativos para IoT, en el cual se detallan las características principales que diferencian a estos sistemas operativos: bajo requerimiento de memoria, capacidades de tiempo real, eficiencia en el consumo energético, operación agnóstica del hardware (debe soportar una amplia variedad de plataformas de hardware para simplificar la interconectividad), amplio soporte de redes y protocolos (wi-fi, celular, bluetooth, etc.), seguridad estricta y un ecosistema para desarrollo de aplicaciones que acelere la creación de soluciones y reduzca el tiempo de salida al mercado.

SIN UN CLARO DOMINADOR

El actual paisaje de IoT hace difícil pensar en un único sistema operativo que logre una presencia como la que Windows tiene en las PCs o Android tiene en los móviles. “No cualquier sistema operativo IoT es adecuado para cualquier uso de IoT”, opina Andrew Froehlich, consultor experto en arquitecturas de redes y presidente de West Gate Networks, en un análisis de varios contendientes del mercado de sistemas operativos IoT. “Es por esta razón que habrá bastante variedad en el área de sistemas operativos para IoT”.

Froehlich señala que la evolución en esta clase de sistemas operativos está tomando dos caminos divergentes. Por un lado están los RTOS (sistemas operativos de tiempo real) tradicionales, que se orientan a dispositivos que exigen que la información se procese sin demoras introducidas por buffers. Los RTOS se usan en los dispositivos IoT más sofisticados, empleados en ambientes tales como industrial, el aeronáutico o el cuidado de la salud.

Por el otro lado, están los sistemas operativos menos sofisticados (aunque no por eso menos capaces) que agregan el beneficio de un menor consumo energético y menores necesidades de recursos. “Es altamente probable que la tasa de crecimiento de esta segunda clase de sistemas operativos sea muy superior a la de los RTOS; al menos en la primera generación de dispositivos IoT”, completa Froehlich.

A PURO LINUX

En su libro “Construyendo la web de las cosas” (Building the Web of Things), Dominique Guinard, cofundador de la comunidad Web of Things, explica que “el mundo de los RTOS está dominado por FreeRTOS, un sistema operativo open-source de tiempo real, aunque existen muchas alternativas viables, como Contiki, TinyOS, mbed OS y VxWorks. Una de las desventajas de los RTOS es que no son muy buenos para manejar muchas tareas en paralelo, lo que dificulta construir múltiples capas mediante abstracciones simples. Aquí es donde un sistema operativo que no sea de tiempo real puede ayudar. Se vuelve particularmente útil en ambientes que no son tan de misión crítica, en los que la experiencia de uso y las características son más importantes que un tiempo de respuesta veloz y constante”.

Según Guinard, el sistema operativo más utilizado en el segmento de IoT que no es de tiempo real es Linux. “Debido a su gran comunidad, abundancia de herramientas, abstracciones y arquitecturas soportadas, Linux presenta un entorno ideal para comenzar a construir y a innovar con dispositivos IoT”, señala el experto.

La popularidad de Linux en sistemas embebidos dio como resultado el surgimiento de un proyecto de la Linux Foundation llamado Yocto, el cual está dedicado a crear distribuciones Linux especiales para embebidos. Paralelamente, Google creó a Brillo, una extensión de Android para IoT, mientras que Ubuntu lanzó Ubuntu Core para IoT.

Entre las múltiples variantes de Linux aparece RIOT como “el sistema operativo amigable para la Internet de las cosas”. Siendo el resultado del trabajo conjunto de varias universidades europeas, RIOT es gratuito y de fuente abierta. Surgió en el año 2008 como un derivado del proyecto FeuerWare, un sistema operativo específico para redes de sensores inalámbricos. Los creadores de RIOT indican que la visión de su proyecto es  “el surgimiento de una realidad enteramente nueva, en la cual nuestra interfaz con Internet dejará de ser principalmente una pantalla, para pasar a ser el conjunto de objetos del sistema ciber-físico corporizado por la Internet de las Cosas. RIOT es un sistema operativo de fuente abierta que apunta a impulsar los dispositivos IoT en esta nueva realidad. En este contexto, RIOT apunta a impulsar un ecosistema ciber-físico moderno, de gran escala, evolutivo y seguro, compuesto por dispositivos IoT heterogéneos, procesos y aplicaciones distribuidas, capaces de interconectarse entre sí y con la nube, aprovechando los stacks estándares de redes de RIOT”.

RIOT soporta diversas plataformas, desde dispositivos embebidos hasta PCs comunes. También soporta múltiples drivers, lo que le permite comenzar a utilizarlo inmediatamente. La parte del código dependiente del hardware se reduce al mínimo y se abstrae del kernel del sistema operativo.

En cuanto a requerimientos de hardware, RIOT exige apenas algunos recursos más que TinyOS: este último requiere menos de 1 KB de RAM y 4 KB de ROM, mientras que RIOT requiere aproximadamente 1,5 KB de RAM y 5 KB de ROM. Pero a diferencia de TinyOS, RIOT soporta lenguajes C y C++, modularidad y tiempo real. Otros sistemas operativos que soportan más o menos las mismas características de RIOT posen requerimientos de recursos muy superiores.

WINDOWS TAMBIÉN

A pesar de que Linux es el más utilizado entre los sistemas operativos para IoT, Microsoft no podía quedar fuera, por lo que ofrece una alternativa, llamada Windows 10 IoT Core. Según explica la empresa, Windows 10 IoT Core es una versión de Windows 10 optimizada para dispositivos pequeños con o sin pantalla, que funciona tanto en dispositivos ARM como x86/x64. Utiliza la API Universal Windows Platform (UWP) para facilitar la construcción de soluciones mediante herramientas comunes a otros entornos de Windows, y permitiendo que el desarrollo de cada aplicación se haga una vez y se use en cualquier dispositivo, teléfono o PC de escritorio.

“Windows 10 IoT Core lleva el poder de Windows a su dispositivo y facilita la integración de experiencias tales como interfaces naturales de usuario, búsqueda, almacenamiento en línea y servicios basados en nube”, indica la empresa en relación a su sistema operativo para IoT.

Uno de los aspectos destacados de Windows 10 IoT Core es su soporte para Arduino Wiring. Wiring es la plataforma que lleva la programación al mundo físico, permitiendo generar prototipos de dispositivos electrónicos y manejar artefactos conectados a un microcontrolador. Al combinarse con Arduino, Wiring replica la estructura de los Sketch, con sus funciones de setup y de loop.

“Con Windows 10 IoT Core, es posible crear o migrar sketches de Arduino Wiring capaces de correr en los dispositivos soportados por IoT Core, lo cual incluye a Raspberry Pi 2, 3 y Minnowboard Max”, explica en su blog Mahmoud Saleh, ingeniero senior de software Windows en Microsoft. En dicha publicación, el ingeniero ofrece una guía paso a paso para iniciarse en la creación de un sketch Arduino Wiring para Windows IoT Core.

“En un dispositivo IoT Core, un sketch Arduino Wiring corre como una aplicación en segundo plano (sin cabeza); esto quiere decir que no hay una interfaz de usuario visible”, explica Saleh. “Es un caso similar a correr un sketch en un dispositivo Arduino como el Arduino Uno, por ejemplo. Sin embargo, igualmente se puede debuggear el sketch como se haría con cualquier otra aplicación bajo Visual Studio”.

ELEGIR CON CUIDADO

La empresa Arrow destaca la importancia de identificar claramente las necesidades de las aplicaciones a utilizar en IoT para luego elegir el sistema operativo que mejor satisfaga esas necesidades. Para ayudar en la elección, la empresa enumera en su informe los principales criterios a considerar: necesidad de performance y determinismo en tiempo real; restricciones de recursos (memoria, capacidad de procesamiento); requerimientos de seguridad; adecuación al suministro energético de los dispositivos; soporte de la plataforma de hardware; requerimientos de redes y comunicaciones, y necesidad de interoperabilidad empresarial (es decir, integración de los dispositivos de campo con los sistemas empresariales; un aspecto en el que sobresale Windows).

En la implementación de proyectos IoT, un cuidadoso análisis de los anteriores criterios a la hora de seleccionar el sistema operativo óptimo puede ayudar a evitar riesgos comunes y a mitigar la necesidad de cambios costosos durante la implementación.

Autor

  • Gustavo Dumortier

    Analista en Computación y periodista especializado en informática. Trabajó en diversas publicaciones de tecnología y negocios y es autor de libros sobre algoritmos y programación. Actualmente es socio de la consultora argentina MasterSoft, en la que se desempeña como analista funcional.

[mdx-adserve-bstreet region="MED"]

Gustavo Dumortier

Analista en Computación y periodista especializado en informática. Trabajó en diversas publicaciones de tecnología y negocios y es autor de libros sobre algoritmos y programación. Actualmente es socio de la consultora argentina MasterSoft, en la que se desempeña como analista funcional.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba