Conociendo QNX, el sistema operativo que mueve el Playbook

Ahora todo el mundo habla de QNX, la nueva tableta de RIM ha puesto sobre el tapete de nuevo a un viejo conocido en el mundo de los sistemas operativos. Porque QNX no es algo que los canadienses se hayan sacado de la manga, la primera versión de este software data de 1982. Pero, ¿de qué va todo esto de QNX?, ¿tiene algo nuevo que aportar al panorama de los sistemas operativos para dispositivos móviles?, ¿puede realmente ser ese impulso que tanto necesita RIM?. Este post va dedicado a QNX, a intentar aclarar conceptos tanto a los lectores como a mí mismo y a intentar entender por qué RIM ha elegido este sistema como abanderado de sus futuros equipos. Vamos a ello.

Un poco de historia

La idea de QNX salió de dos estudiantes de la Universidad de Waterloo, Gordon Bell y Dan Dodge, que lanzaron la primera versión allá por 1982 (funcionaba máquinas en Intel8088). Ambos creían en la necesidad de un sistema operativo comercial de tiempo real y los primeros usos que tuvo fue en el terreno de los sistemas no embebidos, donde pronto se ganaría una buena fama por su estabilidad y desempeño. A finales de los 80 se llegó a la versión 4 de QNX, que por primera vez cumplía con el modelo POSIX, lo que había supuesto también reescribir gran parte del núcleo del sistema operativo. También en este momento apareció su primera interfaz de usuario embebible, QNX Photon microGUI y después una versión de las XWindow. Gracias a la nueva interfaz POSIX, era mucho más sencillo portar a QNX aplicaciones Unix y BSD.

Hacia finales de los 90 y ya bajo el nombre de QNX Software Systems, la compañía comenzó el desarrollo de una versión completamente nueva de QNX RTOS con soporte total de SMP (multiproceso simétrico) y de todas las APIs POSIX actuales y futuras. Como resultado llegó QNX Neutrino RTOS, en 2001. En 2002 lanzaron una serie de herramientas de desarrollo que funcionan bajo el entorno de Eclipse, QNX Momentics Tool Suite.

Ya en 2004, se anunció la venta de la compañía a Harman International Industries. Antes de esto, QNX ya se estaba usando en la industria de la automoción para sistemas telemáticos, pero fue a partir de la compra por parte de Harman cuando creció de forma importante su popularidad y utilización en diferentes ámbitos industriales. En 2007 fue liberado parte del código fuente de QNX.

Finalmente y como todos sabemos, en abril de 2010 RIM compró QNX Software Systems a Harman International Industries y restringió la utilización del código del sistema operativo. En septiembre de este mismo año, anunciaba la primera tableta basada en QNX.

La tecnología de QNX

Tras esta somera introducción histórica, voy a tratar de explicar de la forma más sencilla posible qué tecnologías hay detrás de este sistema operativo. La idea es, en última instancia, llegar a entender la decisión de RIM de comprar este sistema operativo. Sólo a partir de aquí podremos entrar en otros análisis relativos al futuro de la compañía canadiense.

Cuando buscamos por ahí información sobre QNX, lo primero que vamos a encontrar es, sin lugar a dudas, la palabra micronúcleo o microkernel. La idea que subyacente detrás de esta curiosa palabra es más sencilla de lo que parece:

Se conoce como microkernel al modelo de kernel (núcleo) de sistema operativo, que consiste en distribuir las diferentes tareas en porciones de código modulares y sencillas. Se pretende aislar del sistema, su núcleo, las operaciones de entrada/salida, gestión de memoria, etc., que se realizarían en procesos separados. Esto mejora la tolerancia a fallos y eleva la portabilidad entre plataformas de hardware.

En el caso de QNX, estas pequeñas tareas en que se divide el trabajo del núcleo se llaman servidores (servers). Esta es la principal característica que lo diferencia de los kernels tradicionales o monolíticos, donde el sistema operativo se compone de un único programa muy grande que condensa un gran número de partes, cada una de ellas con capacidades especiales. La estructura tan modular del microkernel permite que los desarrolladores puedan desactivar a su voluntad cualquier funcionalidad que no necesiten sin tener que cambiar el propio sistema operativo, simplemente tendrían que deshabilitar los servidores innecesarios.

La principales ventajas de este modelo de sistema operativo serían las siguientes:

  • Si alguno de los servidores fallara, éste no podría ocasionar un fallo crítico en el sistema, ya que no tiene acceso al hardware. El microkernel u otros servidores serían capaces de volver a arrancarlo. A estos se les llama Self-healing systems:

Its microkernel architecture has every driver, protocol stack, filesystem and application run outside the kernel, in the safety of memory-protected user space. Virtually any component can fail and be automatically restarted without affecting other components or the kernel.

  • Este modelo reduce mucho la complejidad de los módulos.
  • La programación y depurado (debugging) de los drivers y módulos se facilita enormemente, ya que pasan a ser procesos normales de usuario.

The microkernel architecture facilitates bug identification and resolution, and enables safe and rapid component upgrades without costly downtimes or system outages.

En este sentido, QNX es un sistema muy estable, la arquitectura de su microkernel protege cada aplicación, driver, sistema de ficheros y capa de protocolos en la seguridad de la memoria protegida del espacio de usuario. Como resultado de esto, muchas aplicaciones de terceros pueden correr simultáneamente sin corromper una a otra en caso de fallo. Más aún, las aplicaciones y servicios pueden actualizarse dinámicamente y sin tener que detener el sistema.

Como comentaba más arriba, QNX Neutrino soporta multiproceso simétrico (SMP) y su implementación soporta los últimos sistemas multiprocesador. Su multitarea permite correr en paralelo muchas aplicaciones con un rendimiento excelente, gracias a una técnica llamada Adaptive partitioning:

Adaptive partitioning, a buzz word if ever there was one, is a system that QNX uses to make sure that no one app can hog too much of the processor power available to you. Why should you care? It means developers can create apps that when running are guaranteed to get the support from the memory and processor that they need, rather than have to fight it off with other apps in the background.

Debido a su particular arquitectura, también funciona como sistema operativo distribuido. Esta faceta de QNX fue patentada por Dan Dodge y Peter van der Veen y explotada comercialmente con el nombre Transparent Distributed Processing.

Finalmente, hay que poner de relieve que QNX soporta los principales estándares actuales, como Flash u OpenGL. Por supuesto, al estar certificado con POSIX, cualquier código Unix o Linux es susceptible de ser portado haciendo un simple recompilado.

No quiero pasar por alto los posibles problemas de los micronúcleos, es importante dejar claro que no son la panacea (no existe el sistema operativo perfecto) pero sí pueden ser muy eficientes en los ámbitos de aplicación adecuados. Me gustaría dirigir a los lectores hacia este artículo del antiguo blog de Ricardo Galli donde comenta las principales debilidades de los sistemas operativos basados en microkernel. Tampoco hay que perder de vista el hecho de que Mac OS X -al contrario de lo que muchos creen- no está basado en un microkernel puro, sino que se trata de un modelo híbrido.

¿”Salvará” QNX a RIM?

Pues aquí no queremos hacer de augures, pero ahora que más o menos sabemos de qué todo esto de QNX, es el momento de hacerse preguntas sobre su compra por parte de RIM. Es evidente que la empresa canadiense apuesta por QNX como el “arma” que necesita para hacer frente a iOS y Android, al mismo tiempo que asume que Blackberry OS tal y como lo conocemos no tiene futuro. Con QNX, RIM se decide por una estrategia similar a Apple y Google, con un sistema operativo más flexible y moderno que soporte las últimas tecnologías web y multimedia: Adobe Flash, Air, HTML5, OpenGL, etc. Desde el punto de vista del rendimiento y funcionalidades, QNX debe dar la talla holgadamente, con su multitarea y su capacidad para exprimir los recursos del sistema. Capítulo aparte será la autonomía de estos dispositivos, aquí es donde RIM debe hacer importantes esfuerzos para evitar que la experiencia empeore mucho con respecto a lo que tenemos ahora.

Al adquirir QNX, los canadienses disponen de un sistema operativo lo suficientemente potente y flexible como para integrarlo sin problemas en toda su línea de equipos móviles.  Ahora bien, la variable que separa el éxito del fracaso en este mundillo son las aplicaciones: cuantas más -y de mejor calidad- mejor. Así que hay que poner a disposición de los programadores un sistema operativo para el que sea sencillo desarrollar, con buenas herramientas de desarrollo y una tienda de aplicaciones atractiva donde poder vender. Es más, el panorama ideal es aquel en el que los desarrolladores no tienen que volver a reescribir de nuevo el código desde cero para hacer que las aplicaciones funcionen en un determinado dispositivo. Ahora, puede que RIM sí disponga ahora de una plataforma adecuada y es más probable que los desarrolladores quieran portar sus aplicaciones a este nuevo sistema. El hecho de ser un sistema operativo POSIX va a facilitar en gran medida el desarrollo y Dan Dodge ha anunciado que, de entrada, habrá compatibilidad hacia atrás, por lo que las aplicaciones de Blackberry OS6 deberían funcionar desde el principio.

No hay duda de que el mayor problema al que se va a enfrentar RIM es lograr superar ese primer momento de duda con un sistema operativo nuevo y pocas aplicaciones disponibles para los potenciales usuarios. La clave va a estar en conseguir hacer atractiva la nueva plataforma y esto puede lograrlo elaborando buenas herramientas de desarrollo y preparando un market en condiciones (no como el Blackberry App World). Si alcanza con éxito estos dos objetivos es muy probable que supere los malos augurios de los analistas y mantenga (o amplíe) su cuota de mercado.

En opinión del que escribe, los de RIM ahora sí tienen un buen sistema operativo que puede albergar una importante plataforma de aplicaciones. Al mismo tiempo, tiene ante sí un reto importante: atraer a usuarios y desarrolladores, con la dificultad añadida de decidir si quiere mantener ese carácter de herramienta profesional que tienen sus equipos o seguir abriéndose  a un mercado más generalista.

Para ampliar información,

One thought on “Conociendo QNX, el sistema operativo que mueve el Playbook

  1. Pingback: Tweets that mention Conociendo QNX, el sistema operativo que mueve el Playbook « Doculinux -- Topsy.com

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s