stringtranslate.com

QNX

QNX ( / ˌ k juː ˌ ɛ n ˈ ɛ k s / o / ˈ k juː n ɪ k s / ) es un sistema operativo comercial en tiempo real tipo 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, posteriormente 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 programa , 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 para un sistema de este tipo y se mudaron a la comunidad planificada de alta tecnología de Kanata, Ontario , para fundar 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 desafío por infracción de marca registrada.

Uno de los primeros usos generalizados del sistema operativo en tiempo real QNX (RTOS) fue en el mundo no integrado, cuando fue seleccionado como sistema operativo para el diseño de computadora del sistema educativo de Ontario , el 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ó una reputación de confiabilidad [ cita requerida ] y se utilizó para operar maquinaria en muchas aplicaciones industriales.

A finales de los años 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 bajo nivel. El resultado fue QNX 4. Durante este tiempo, Patrick Hayden , mientras trabajaba como pasante, junto con Robin Burgener (un empleado a 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 llamada microGUI QNX Photon. QNX también proporcionó una versión del X Window System .

Para demostrar la capacidad del sistema operativo y su tamaño relativamente pequeño, a fines 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, redes TCP/IP, un navegador web y un servidor web que cabían en un  disquete de arranque de 1,44 MB para la PC 386. [3] [4]

Hacia finales de los años 90, la empresa, que entonces se llamaba QNX Software Systems, comenzó a trabajar en una nueva versión de QNX, diseñada desde cero para que fuera capaz de realizar multiprocesamiento simétrico (SMP) y para soportar todas las interfaces de programación de aplicaciones (API) POSIX actuales y cualquier API POSIX nueva que pudiera anticiparse, manteniendo al mismo tiempo la arquitectura del microkernel. Esto dio como resultado QNX Neutrino, lanzado en 2001.

Junto con el núcleo Neutrino, QNX Software Systems se convirtió en miembro fundador del consorcio Eclipse ( entorno de desarrollo integrado ). La empresa lanzó un conjunto de complementos de Eclipse empaquetados con el entorno de trabajo Eclipse en 2002, denominado 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 automotriz para sistemas telemáticos . Desde la compra por parte de Harman, el software QNX se ha diseñado para 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 requerida ] 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 empresa 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, presentado en 2004) [6] [7] y IOS Software Modularity (presentado en 2006) [8] de Cisco Systems se basaban en QNX. IOS Software Modularity nunca ganó fuerza y ​​se limitó solo a pequeñas tiradas para Catalyst 6500, mientras que IOS XR se trasladó a Linux a partir de la versión 6.x.

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, se restringió el acceso al código fuente de QNX para el público y los aficionados. [11]

En septiembre de 2010, la compañía anunció una computadora tableta , la 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 BlackBerry PlayBook QNX para dispositivos táctiles, pero adaptan la interfaz de usuario para teléfonos inteligentes utilizando el marco de interfaz de usuario nativa Cascades basado en Qt .

En el Salón del Automóvil de Ginebra, Apple presentó CarPlay , que ofrece una interfaz de usuario similar a la de iOS para las unidades principales de los 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 a Microsoft Auto con QNX. [1]

En enero de 2017, QNX anunció el próximo lanzamiento de su SDP 7.0, compatible con plataformas Intel y ARM de 32 y 64 bits , y con C++14 . Se lanzó 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 con soporte para 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 núcleo del sistema operativo en forma de una serie de pequeñas tareas, llamadas 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 se ejecutarán.

El núcleo 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 memoria al operar en conjunto con el micronúcleo . Esto es posible gracias a dos mecanismos clave: comunicación entre procesos de tipo llamada a subrutina y un cargador de arranque que puede cargar una imagen que contiene el núcleo y cualquier conjunto deseado de programas de usuario y bibliotecas compartidas. No hay controladores de dispositivos en el núcleo. La pila de red se basa en código NetBSD . [19] Junto con su soporte para sus propios controladores de dispositivos nativos, QNX admite su servidor de administrador io-net heredado y los controladores de red portados desde NetBSD. [20]

La comunicación entre procesos de QNX consiste en enviar un mensaje de un proceso a otro y esperar una respuesta. Esta es una operación única, llamada MsgSend. El kernel copia el mensaje [ cita requerida ] desde el espacio de direcciones del proceso que envía al del proceso que lo recibe. Si el proceso que recibe 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 da como resultado que la CPU "pierda el turno". 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 de 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 existe una implementación de espacio de usuario de mensajería de tipo QNX para Linux . El mal manejo de este sutil problema es una razón principal del rendimiento decepcionante de algunos otros sistemas de microkernel como las primeras versiones de Mach . [ cita requerida ] El proceso receptor no necesita estar en la misma máquina física.

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

El manejo de mensajes se prioriza según la prioridad del subproceso . 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 cargador de arranque es el otro componente clave del sistema de microkernel mínimo. Debido a que los programas de usuario se pueden incorporar a la imagen de arranque, el conjunto de controladores de dispositivos y bibliotecas de soporte necesarias para el arranque no necesitan estar, y no están, en el núcleo. Incluso funciones como la carga de programas no están en el núcleo, sino en bibliotecas compartidas en el espacio de usuario que se cargan 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 procesadores , denominado multiprocesamiento limitado (BMP) en la terminología de QNX. BMP se utiliza para mejorar el uso de caché y facilitar la migración de aplicaciones no seguras para SMP a computadoras con múltiples procesadores.

Neutrino admite una programación estricta con prioridad preferente y una programación de particiones adaptativa (APS). APS garantiza porcentajes mínimos de CPU para grupos de subprocesos seleccionados, 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 de 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 características 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 una 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 ha diseñado y utilizado posteriormente en sistemas de conducción automatizada o ADAS para proyectos automotrices que requieren un sistema operativo operativo (RTOS) con certificación de seguridad funcional . QNX lo proporciona con sus productos QNX OS for Safety. [26]

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

Licencias

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

Comunidad

Véase 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. ^ US5745759
  3. ^ Hildebrand, Dan (6 de junio de 1997). "Piensa en pequeño. (El desafío de la 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 microkernel extremadamente confiable para un sistema de enrutamiento escalable de manera masiva" . 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á QNX Software". The Globe and Mail . Toronto. The Canadian Press . 9 de abril de 2010 . Consultado el 9 de abril de 2010 .
  11. ^ "foundry27: Ver página wiki: Preguntas frecuentes sobre la política de acceso a fuentes de QNX actualizada". community.qnx.com .
  12. ^ "RIM presenta el BlackBerry PlayBook" (nota 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. ^ Arthur, Charles (7 de diciembre de 2011). "El fabricante de BlackBerry, RIM, se vio obligado a abandonar el nombre BBX para su nuevo software". Guardian . 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 instrumentos de GM, BMW, Ford y otros vehículos". Financial Post . 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 integrado 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: la pila de redes de próxima generación de Neutrino y Foundry27".
  20. ^ "foundry27: Ver página wiki: Drivers_wiki_page". community.qnx.com .
  21. ^ "QNX Neutrino RTOS - SO integrado | BlackBerry QNX | BlackBerry QNX".
  22. ^ Lévénez, Éric (1 de mayo de 2011). «UNIX History». levenez.com . Consultado el 18 de mayo de 2011 .
  23. ^ "Notas de la versión 6.3.2 de QNX® Neutrino® Core OS". 16 de agosto de 2006.
  24. ^ "Plataforma de desarrollo de software QNX® (SDP) 8.0: Notas de la versión". 11 de diciembre de 2023.
  25. ^ "Tamaños de compilación de wolfSSL para el sistema operativo en tiempo real QNX Embedded". wolfSSL . 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 . 15 de julio de 2010 . Consultado el 15 de octubre de 2012 .
  28. ^ Portal de la comunidad OpenQNX: Anuncio
  29. ^ Comunicados de prensa de QNX: Foundry27

Lectura adicional

Enlaces externos