QNX

QNX
Información sobre la plantilla
Parte de la familia Unix-like
Qnx 6dot2.jpg
El escritorio por defecto en QNX
Modelo de desarrolloCódigo Compartido
Lanzamiento inicial1982
Última versión estable6.6 Marzo de 2014
Tipo de núcleoMicronúcleo de tiempo real
Plataformas soportadasIntel 8088, x86, MIPS, PowerPC, SH-4, ARM, StrongARM, XScale
IdiomaMultilenguaje
LicenciaPropietaria
Sitio web
www.qnx.com

QNX es un sistema operativo en tiempo real de tipo Unix, destinado principalmente al mercado de sistemas embebidos. El producto fue desarrollado originalmente en la década de 1980 por la empresa canadiense Quantum Software Systems, más tarde llamado QNX Software Systems y finalmente adquiridas por BlackBerry en 2010. QNX fue uno de los primeros sistemas operativos microkernel de éxito comercial y se utiliza en una variedad de dispositivos, incluyendo coches y teléfonos móviles.

Descripción

Como sistema operativo basado en microkernel, QNX se basa en la idea de ejecutar la mayor parte del núcleo del sistema operativo en la forma de una serie de pequeñas tareas, conocidos como servidores. Esto difiere del kernel monolítico más tradicional, en el que el núcleo del sistema operativo es un programa único muy grande, compuesto de un gran número de "partes" con habilidades especiales. En el caso de QNX, el uso de un microkernel permite a los usuarios (desarrolladores) para desactivar cualquier funcionalidad, que no requieren, sin tener que cambiar el sistema operativo en sí.

QNX Neutrino (2.001) ha sido portado a una serie de plataformas y ahora se ejecuta en prácticamente cualquier CPU moderna que se utiliza en el mercado integrado. Esto incluye PowerPC, la familia x86, MIPS, SH-4, y la familia estrechamente inter relacionados de ARM, StrongARM y XScale CPU.

QNX ofrece una licencia para los usuarios no comerciales y académicas. Las computadora de la tabletas BlackBerry PlayBook, diseñado por BlackBerry utiliza una versión de QNX como sistema operativo principal. Dispositivos de BlackBerry que ejecutan el sistema operativo BlackBerry 10 también están basados en QNX.

Historia

Gordon Bell y Dan Dodge, estudiantes de la Universidad de Waterloo en 1980, ambos tomaron un curso de ciencias de la computación estándar en el diseño del sistema operativo, en el que los estudiantes construyeron un núcleo básico en tiempo real. Ambos estaban convencidos de que había una necesidad comercial de un sistema de este tipo, y se trasladó a la comunidad de alta tecnología planeado Kanata, Ontario, para empezar Quantum Software Systems ese año. En 1982, la primera versión de QNX fue lanzado para el Intel 8088 CPU.

A finales de la década de 1980, Quantum se dio cuenta de que el mercado se movía rápidamente hacia el modelo POSIX y decidió volver a escribir el kernel a ser mucho más compatible en un nivel bajo. El resultado fue QNX 4. Durante este tiempo Patrick Hayden, mientras trabajaba como pasante, junto con Robin Burgener (un empleado de tiempo completo en el momento), desarrolló un nuevo sistema de ventanas. Este concepto patentado fue desarrollado en el GUI integrable nombrado el QNX Fotón microGUI. QNX también proporcionó una versión del sistema X Window.

Hacia el final de la década de 1990, la empresa (ahora llamado QNX Software Systems) comenzó a trabajar en una nueva versión de QNX, diseñado desde cero para apoyar a todas las API POSIX actuales y las nuevas API POSIX que podrían ser anticipado al tiempo que conserva la arquitectura microkernel. Esto resultó en QNX Neutrino, lanzado en 2001.

En 2004, la compañía anunció que se había sido vendido a Harman International Industries. Antes de esta adquisición, el software QNX ya era ampliamente utilizado en la industria del automóvil para los sistemas telemáticos. Desde la compra por parte de Harman, el software QNX se ha diseñado en más de 200 diferentes marcas y modelos de automóviles. No sólo en los sistemas telemáticos, sino en unidades de información y entretenimiento y navegación. La plataforma de aplicaciones QNX CAR está en ejecución en más de 20 millones de vehículos a mediados de 2011. La compañía desde entonces ha lanzado varios productos middleware incluido el QNX Aviage Multimedia Suite, tha QNX Aviage acústica Procesamiento suite y el QNX HMI suite.

Tecnología

El núcleo de QNX sólo contiene la programación de la CPU, la comunicación entre procesos, redirección de interrupciones y temporizadores. Todo lo demás se ejecuta como un proceso de usuario, incluyendo un proceso especial conocido como proc que realiza la creación de procesos y de gestión de memoria mediante la operación en conjunción con el microkernel. Esto es posible gracias a dos mecanismos clave, subrutina llamada comunicación tipo entre procesos, y un gestor de arranque que puede cargar una imagen que contiene no sólo el núcleo sino cualquier colección deseada de los programas de usuario y bibliotecas compartidas. No hay controladores de dispositivos en el kernel. La pila de red se basa en código de NetBSD.

Todas las operaciones, las operaciones del sistema de archivos, y las operaciones de red estaban destinadas a trabajar a través de este mecanismo, y los datos transferidos se copian durante el paso de mensajes. Las versiones posteriores de GNU/Linux reducen el número de procesos separados e integran la pila de red y otros bloques de función en las aplicaciones individuales por motivos de rendimiento.

Neutrino soporta multiprocesamiento simétrico y la afinidad del procesador, llamado multiprocesamiento unido (BMP) en la terminología QNX. BMP se utiliza para mejorar el bateo caché y para facilitar la migración de los SMP y las aplicaciones seguras entre multi-procesador y las computadoras.

Neutrino apoya estricta programación prioridad preventiva y programación partición adaptativo (APS). APS garantiza porcentajes mínimos de CPU a grupos seleccionados de las discusiones, aunque otros pueden tener mayor prioridad. El planificador partición de adaptación sigue siendo estrictamente prioridad preventiva cuando se carga baja del sistema. También se puede configurar para ejecutar un conjunto seleccionado de hilos críticos estrictamente en tiempo real, incluso cuando se sobrecarga el sistema.

Variantes de QNX

El microkernel de QNX, llamado Neutrino, está implementado en 4 variantes que desarrolla y comercializa la compañía:

  • QNX Neutrino RTOS

Ésta versión es la más completa y robusta pensada para cumplir los requerimientos de sistemas embebidos. Es un microkernel real de arquitectura modular.

  • QNX OS for Safety

Está diseñada para cumplir con las normas ISO 26262 en ASIL D y las normas IEC 61508 en SIL3. Provee de un sistema diseñado sobre una base segura, para implementar en sistemas críticos como automóviles, trenes y automatización industrial.

  • QNX OS for Medical

Cumple las normas IEC 62304 y está diseñado para reducir el esfuerzo en el desarrollo de dispositivos médicos que requieren de aprobaciones regulativas.

  • QNX OS for Security

Es un RTOS de características completas, certificado en norma ISO/IEC 15408 EAL 4+.

Fuentes

  • Artículo en: QNX. Disponible en: "francisconi.org". Consultado: 21 de Enero de 2016.
  • Artículo en: QNX. Disponible en: "wiki.qt.io". Consultado: 21 de Enero de 2016.
  • Artículo (en Inglés) en: QNX. Disponible en: "www.qnx.com". Consultado: 21 de Enero de 2016.
  • Artículo en: QNX. Disponible en: "www.monografias.com". Consultado: 21 de Enero de 2016.
  • Artículo en: QNX. Disponible en: " toastytech.com". Consultado: 21 de Enero de 2016.