stringtranslate.com

QNX

QNX ( / ˌ k juː ˌ ɛ n ˈ ɛ k s / o / ˈ k juː n ɪ k s / ) es un sistema operativo comercial en tiempo real similar a Unix , dirigido principalmente al mercado de sistemas integrados .

El producto fue desarrollado originalmente a principios de la década de 1980 por la empresa canadiense Quantum Software Systems, más tarde rebautizada como QNX Software Systems.

A partir de 2022 , se utiliza en una variedad de dispositivos, incluidos automóviles , [1] dispositivos médicos , controladores lógicos de programas , fabricación automatizada , trenes y más.

Historia

Gordon Bell y Dan Dodge , ambos estudiantes de la Universidad de Waterloo en 1980, tomaron un curso sobre sistemas operativos en tiempo real, en el que los estudiantes construyeron un microkernel básico en tiempo real y programas de usuario. Ambos estaban convencidos de que existía una necesidad comercial de un sistema de este tipo y se trasladaron a la comunidad planificada de alta tecnología de Kanata, Ontario , para iniciar Quantum Software Systems ese año. En 1982, se lanzó la primera versión de QUNIX para la CPU Intel 8088 . En 1984, Quantum Software Systems cambió el nombre de QUNIX a QNX en un esfuerzo por evitar cualquier impugnación por infracción de marcas.

Uno de los primeros usos generalizados del sistema operativo en tiempo real (RTOS) QNX fue en el mundo no integrado cuando fue seleccionado como sistema operativo para el diseño de computadora del sistema educativo de Ontario , Unisys ICON . A lo largo de los años, QNX se utilizó principalmente para proyectos más grandes, ya que su núcleo de 44k era demasiado grande para caber dentro de las computadoras de un solo chip de la época. El sistema se ganó la reputación de confiabilidad [ cita necesaria ] y se utilizó para hacer funcionar maquinaria en muchas aplicaciones industriales.

A finales de la década de 1980, Quantum se dio cuenta de que el mercado se estaba moviendo rápidamente hacia el modelo de interfaz de sistema operativo portátil ( POSIX ) y decidió reescribir el núcleo para que fuera mucho más compatible a 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 ese momento), desarrolló un nuevo sistema de ventanas. Este concepto patentado [2] se desarrolló en la interfaz gráfica de usuario (GUI) integrable denominada QNX Photon microGUI. QNX también proporcionó una versión del sistema X Window .

Para demostrar la capacidad del sistema operativo y su tamaño relativamente pequeño, a finales de la década de 1990 QNX lanzó una imagen de demostración que incluía el sistema operativo QNX 4 compatible con POSIX, una interfaz gráfica de usuario completa, un editor de texto gráfico, una red TCP/IP, un navegador web y un servidor web que todo cabe en un  disquete de arranque de 1,44 MB para la PC 386. [3] [4]

Hacia finales de la década de 1990, la empresa, entonces llamada QNX Software Systems, comenzó a trabajar en una nueva versión de QNX, diseñada desde cero para ser capaz de multiprocesamiento simétrico (SMP) y para admitir todas las interfaces de programación de aplicaciones (API) POSIX actuales. ) y cualquier nueva API POSIX que pueda anticiparse manteniendo la arquitectura del microkernel. Esto dio como resultado QNX Neutrino, lanzado en 2001.

Junto con el kernel Neutrino, QNX Software Systems se convirtió en miembro fundador del consorcio Eclipse ( entorno de desarrollo integrado ). La compañía lanzó un conjunto de complementos de Eclipse empaquetados con el banco de trabajo Eclipse en 2002 y lo denominó QNX Momentics Tool Suite.

En 2004, la empresa anunció que había sido vendida a Harman International Industries. Antes de esta adquisición, el software QNX ya se utilizaba ampliamente en la industria automovilística para sistemas telemáticos . Desde la compra por parte de Harman, el software QNX se ha diseñado en más de 200 marcas y modelos de automóviles diferentes , en sistemas telemáticos y en unidades de información, entretenimiento y navegación. [ cita necesaria ] La plataforma de aplicaciones QNX CAR se estaba ejecutando en más de 20 millones de vehículos a mediados de 2011. [5] Desde entonces, la compañía ha lanzado varios productos de middleware , incluidos QNX Aviage Multimedia Suite, QNX Aviage Acoustic Processing Suite y QNX HMI Suite.

Los microkernels de IOS-XR (IOS de ultra alta disponibilidad, introducido en 2004) de Cisco Systems [6] [7] y IOS Software Modularity (introducido en 2006) [8] se basan en QNX.

En septiembre de 2007, QNX Software Systems anunció la disponibilidad de parte de su código fuente . [9]

El 9 de abril de 2010, Research In Motion (más tarde rebautizada como BlackBerry Limited ) anunció que adquiriría QNX Software Systems de Harman International Industries. [10] El mismo día, el acceso al código fuente de QNX fue restringido para el público y los aficionados. [11]

En septiembre de 2010, la compañía anunció una tableta , el BlackBerry PlayBook , y un nuevo sistema operativo BlackBerry Tablet OS basado en QNX para ejecutarse en la tableta. [12]

El 18 de octubre de 2011, Research In Motion anunció "BBX", [13] que luego pasó a llamarse BlackBerry 10 , en diciembre de 2011. [14] Los dispositivos Blackberry 10 se basan en el sistema operativo basado en BlackBerry PlayBook QNX para dispositivos táctiles, pero adaptan el Interfaz de usuario para teléfonos inteligentes que utiliza el marco de interfaz de usuario nativo Cascades basado en Qt .

En el Salón del Automóvil de Ginebra, Apple demostró CarPlay , que proporciona una interfaz de usuario similar a iOS a las unidades principales de vehículos compatibles. Una vez configurado por el fabricante de automóviles, QNX se puede programar para transferir su pantalla y algunas funciones a un dispositivo Apple CarPlay. [15] [16]

El 11 de diciembre de 2014, Ford Motor Company declaró que reemplazaría Microsoft Auto con QNX. [1]

En enero de 2017, QNX anunció el próximo lanzamiento de su SDP 7.0, con soporte para plataformas Intel y ARM de 32 y 64 bits , y soporte para C++14 . Fue lanzado en marzo de 2017. [17]

En diciembre de 2023, QNX lanzó QNX SDP 8.0, que funciona con un microkernel de próxima generación compatible con las últimas plataformas Intel y ARM [v8 y v9] de 64 bits, una cadena de herramientas basada en GCC12 y un kit de herramientas QNX para Visual Studio Code . [18]

Tecnología

Como sistema operativo basado en microkernel , QNX se basa en la idea de ejecutar la mayor parte del kernel del sistema operativo en forma de una serie de pequeñas tareas, denominadas administradores de recursos. Esto difiere del núcleo monolítico más tradicional , en el que el núcleo del sistema operativo es un programa muy grande compuesto por una gran cantidad de partes, con capacidades especiales. En el caso de QNX, el uso de un microkernel permite a los usuarios (desarrolladores) desactivar cualquier función que no necesiten sin tener que cambiar el sistema operativo. En cambio, dichos servicios simplemente no funcionarán.

El kernel QNX, procnto(también nombre del programa ejecutable binario para el proceso QNX Neutrino ('nto') ('proc') en sí), contiene solo programación de CPU , comunicación entre procesos , redirección de interrupciones y temporizadores. Todo lo demás se ejecuta como un proceso de usuario, incluido un proceso especial conocido como procque realiza la creación de procesos y la gestión de la memoria operando junto con el microkernel . Esto es posible gracias a dos mecanismos clave: comunicación entre procesos de tipo llamada de subrutina y un cargador de arranque que puede cargar una imagen que contiene el kernel y cualquier conjunto deseado de programas de usuario y bibliotecas compartidas. No hay controladores de dispositivos en el kernel. La pila de red se basa en código NetBSD . [19] Además de admitir sus propios controladores de dispositivo nativos, QNX admite su servidor io-net manager heredado y los controladores de red transferidos desde NetBSD. [20]

La comunicación entre procesos QNX consiste en enviar un mensaje de un proceso a otro y esperar una respuesta. Esta es una única operación, llamada MsgSend. El núcleo copia el mensaje [ cita necesaria ] desde el espacio de direcciones del proceso de envío al del proceso de recepción. Si el proceso receptor está esperando el mensaje, el control de la CPU se transfiere al mismo tiempo, sin pasar por el programador de la CPU. Por lo tanto, enviar un mensaje a otro proceso y esperar una respuesta no resulta en "perder el turno" para la CPU. Esta estrecha integración entre el paso de mensajes y la programación de la CPU es uno de los mecanismos clave que hace que el paso de mensajes QNX sea ampliamente utilizable. La mayoría de los mecanismos de comunicación entre procesos de Unix y Linux carecen de esta estrecha integración, aunque sí existe una implementación en el espacio de usuario de mensajería tipo QNX para Linux . El mal manejo de este sutil problema es la razón principal del desempeño decepcionante de algunos otros sistemas de micronúcleo, como las primeras versiones de Mach . [ cita necesaria ] No es necesario que el proceso del destinatario esté en la misma máquina física.

Todas las operaciones de E/S, operaciones del sistema de archivos y operaciones de red estaban destinadas a funcionar a través de este mecanismo, y los datos transferidos se copiaban durante el paso del mensaje. Las versiones posteriores de QNX reducen la cantidad de procesos separados e integran la pila de red y otros bloques de funciones en aplicaciones únicas por razones de rendimiento.

El manejo de mensajes tiene prioridad según la prioridad del hilo . Dado que las solicitudes de E/S se realizan mediante el paso de mensajes, los subprocesos de alta prioridad reciben el servicio de E/S antes que los subprocesos de baja prioridad, una característica esencial en un sistema de tiempo real estricto .

El gestor de arranque es el otro componente clave del sistema mínimo de microkernel. Debido a que los programas de usuario pueden integrarse en la imagen de arranque, el conjunto de controladores de dispositivo y bibliotecas de soporte necesarios para el inicio no necesitan estar ni están en el kernel. Incluso funciones como la carga de programas no están en el kernel, sino en bibliotecas de espacio de usuario compartido cargadas como parte de la imagen de arranque. Es posible colocar una imagen de arranque completa en la ROM , que se utiliza para sistemas integrados sin disco.

Neutrino admite multiprocesamiento simétrico y afinidad de procesador , llamado multiprocesamiento vinculado (BMP) en la terminología QNX. BMP se utiliza para mejorar el acceso al caché y facilitar la migración de aplicaciones seguras que no son SMP a computadoras multiprocesador.

Neutrino admite una programación estricta de prioridad prioritaria y una programación de partición adaptativa (APS). APS garantiza porcentajes mínimos de CPU para grupos seleccionados de subprocesos, aunque otros puedan tener mayor prioridad. El programador de particiones adaptativo sigue siendo estrictamente prioritario cuando el sistema está subcargado. También se puede configurar para ejecutar un conjunto seleccionado de subprocesos críticos estrictamente en tiempo real , incluso cuando el sistema está sobrecargado.

El sistema operativo QNX también contenía un navegador web conocido como 'Voyager'. [21]

Debido a su arquitectura microkernel , QNX también es un sistema operativo distribuido . Dan Dodge y Peter van der Veen poseen la patente estadounidense 6.697.876: sistema operativo de núcleo distribuido basado en las funciones de procesamiento distribuido del sistema operativo QNX, conocidas comercialmente como procesamiento distribuido transparente. Esto permite que los núcleos QNX en dispositivos separados accedan a los servicios del sistema de cada uno utilizando efectivamente el mismo mecanismo de comunicación que se utiliza para acceder a los servicios locales. [ se necesita fuente no primaria ]

Lanzamientos

Usos

La tableta BlackBerry PlayBook diseñada por BlackBerry utiliza una versión de QNX como sistema operativo principal. El sistema operativo BlackBerry 10 también se basa en QNX.

QNX también se utiliza en sistemas de información y entretenimiento para automóviles y muchos de los principales fabricantes de automóviles ofrecen variantes que incluyen una arquitectura QNX integrada. Es compatible con bibliotecas SSL/TLS populares como wolfSSL . [25]

Desde la introducción de su "Safe Kernel 1.0" en 2010, QNX se proyectó y utilizó posteriormente en sistemas de accionamiento automatizado o ADAS para proyectos automotrices que requieren un RTOS certificado en seguridad funcional . QNX proporciona esto con sus productos QNX OS for Safety. [26]

QNX Neutrino (2001) se ha adaptado a varias plataformas y ahora se ejecuta en prácticamente cualquier familia de unidades centrales de procesamiento (CPU) modernas que se utilicen en el mercado integrado. Esto incluye PowerPC , x86 , MIPS , SH-4 y el grupo estrechamente interrelacionado de ARM , StrongARM y XScale .

Licencia

QNX ofrece una licencia para usuarios académicos y no comerciales. [27] En enero de 2024, BlackBerry presentó QNX Everywhere para hacer que QNX sea más accesible para los aficionados. QNX Everywhere aún no se ha hecho accesible al público.

Comunidad

Ver también

Referencias

  1. ^ ab Burns, Matt (11 de diciembre de 2014). "Ford abandona Microsoft por QNX en la última plataforma tecnológica para vehículos". TechCrunch . Consultado el 26 de febrero de 2015 .
  2. ^ Estados Unidos5745759
  3. ^ Hildebrand, Dan (6 de junio de 1997). "Piense en pequeño. (El desafío web de 1,44 millones)". marc.info .
  4. ^ "¡Cómo lo hicimos!". Archivado desde el original el 28 de noviembre de 1999 . Consultado el 3 de agosto de 2020 .
  5. ^ COCHE QNX http://www.qnx.com/products/qnxcar/
  6. ^ Personal de QNX (17 de agosto de 2004). "QNX ofrece un micronúcleo extremadamente confiable para un sistema de enrutamiento masivamente escalable" . Consultado el 16 de marzo de 2012 .
  7. ^ "Mejores prácticas operativas de CRS-1 e IOS XR". Cisco .
  8. ^ Brad Reese-BradReese.Com (26 de septiembre de 2006). "¿Qué sistema operativo está detrás de IOS?". Archivado desde el original el 22 de diciembre de 2011 . Consultado el 16 de marzo de 2012 .
  9. ^ Leroux, Paul (12 de septiembre de 2007). "QNX publica el código fuente de Neutrino y abre el proceso de desarrollo". www.qnx.com .
  10. ^ "RIM comprará el software QNX". El globo y el correo . Toronto. La prensa canadiense . 9 de abril de 2010 . Consultado el 9 de abril de 2010 .
  11. ^ "foundry27: Ver página Wiki: UpdatedQNXSourceAccessPolicyFAQ". comunidad.qnx.com .
  12. ^ "RIM presenta el BlackBerry PlayBook" (comunicado de prensa oficial). 27 de septiembre de 2010.
  13. ^ Molen, Brad (18 de octubre de 2011). "Research in Motion anuncia BBX, 'combina lo mejor de BlackBerry y QNX'". Engadget . Consultado el 20 de enero de 2013 .
  14. ^ Arturo, Charles (7 de diciembre de 2011). "RIM, fabricante de BlackBerry, se vio obligado a eliminar el nombre BBX para un nuevo software". Guardián . Londres . Consultado el 20 de enero de 2013 .
  15. ^ Hartley, Matt (3 de marzo de 2014). "Apple Inc CarPlay lleva las funciones del iPhone a los tableros de GM, BMW, Ford y otros automóviles". Puesto financiero . Consultado el 28 de marzo de 2014 .
  16. ^ "QNX de BlackBerry: por qué es tan valioso para Apple, Google y la industria automotriz". ZDNet . Consultado el 27 de octubre de 2014 .
  17. ^ "BlackBerry QNX lanza su plataforma de software integrada más avanzada y segura para conducción autónoma y automóviles conectados". 2017-01-04.
  18. ^ "Plataforma de desarrollo de software (SDP) QNX® 8.0". 11 de diciembre de 2023.
  19. ^ "Core Networking 6.4: Foundry27 y pila de redes de próxima generación de Neutrino".
  20. ^ "foundry27: Ver página Wiki: Drivers_wiki_page". comunidad.qnx.com .
  21. ^ "QNX Neutrino RTOS - SO integrado | BlackBerry QNX | BlackBerry QNX".
  22. ^ Lévénez, Éric (1 de mayo de 2011). "Historia de UNIX". levenez.com . Consultado el 18 de mayo de 2011 .
  23. ^ "Notas de la versión de QNX® Neutrino® Core OS 6.3.2". 16 de agosto de 2006.
  24. ^ "Plataforma de desarrollo de software (SDP) QNX® 8.0: Notas de la versión". 11 de diciembre de 2023.
  25. ^ "Tamaños de compilación de wolfSSL para RTOS integrado QNX". loboSSL . 17 de septiembre de 2010 . Consultado el 13 de febrero de 2019 .
  26. ^ "QNX OS para seguridad".
  27. ^ "Sistema operativo en tiempo real QNX Neutrino". QNX . 2010-07-15 . Consultado el 15 de octubre de 2012 .
  28. ^ Portal de la comunidad OpenQNX: anunciar
  29. ^ Comunicados de prensa de QNX: Foundry27

Otras lecturas

enlaces externos