1 puntos por GN⁺ 2025-10-07 | 1 comentarios | Compartir por WhatsApp
  • QNX es un sistema operativo en tiempo real basado en microkernel que comenzó en Canadá a inicios de la década de 1980
  • Ofrece soporte para diverso hardware, como la IBM PC, además de alta portabilidad, mensajería distribuida y un entorno de gran confiabilidad y multitarea
  • Tuvo una gran influencia al ser adoptado en computadoras educativas, infraestructura industrial y sistemas de vehículos
  • Reforzó la compatibilidad con Unix mediante el cumplimiento de POSIX, y evolucionó con una GUI ligera (Photon) y diversas funciones de red
  • También ha respondido a los cambios más recientes del mercado en automotriz, embebidos y móvil, mejorando de forma continua la estabilidad, el rendimiento y la seguridad

El inicio del sistema operativo QNX

  • En 1979, Gordon Bell y Dan Dodge, de la University of Waterloo, adquirieron experiencia a través de un proyecto de sistema operativo en tiempo real llamado Thoth
    • Thoth se caracterizaba por su alta portabilidad, mensajería síncrona y funcionamiento independiente del hardware
  • Tras graduarse, Bell y Dodge fundaron Quantum Software Systems (más tarde QNX Software Systems) y comenzaron a desarrollar su propio sistema operativo en una microcomputadora prototipo basada en 6809

QUNIX — el antecesor de QNX

  • La primera versión, QUNIX 0.1, se desarrolló como un sistema operativo en tiempo real basado en microkernel, con una mezcla de elementos de CP/M y UNIX, y fue el primer sistema operativo en tiempo real con microkernel para IBM PC
  • A diferencia del Unix tradicional, introdujo una estructura de directorios propia como /cmds, /config y /sys, además de un sistema de comandos distintivo como help
  • Existían limitaciones tempranas, como el soporte de disco duro (HDD de 5 MB en QUNIX 0.4) y el arranque basado en disquete

Transición a QNX y crecimiento

  • Por un problema de marca registrada con AT&T, en 1982 cambió su nombre de QUNIX a QNX, y en 1983 se lanzó oficialmente QNX 1.0
    • Kernel: cerca de 10,000 líneas de código en C, con características de microkernel como planificación, paso de mensajes y manejo de prioridades
    • La mayoría de los servicios (sistema de archivos, drivers, red, etc.) usaban una estructura de comunicación basada en mensajes
    • Soportaba colas de mensajes transparentes por red, hasta 250 tareas simultáneas y uso multiusuario
  • Se vendía por 650 dólares (en 1983), incluyendo compilador de C, editor y soporte de red
  • QNX 1.2 (1984): mejoras en pattern matching, programación de shell, soporte para IBM AT, reducción de precio, etc.

Entrada al sector educativo: Burroughs ICON

  • Fue adoptado para el proyecto de computadora educativa estándar del Ministerio de Educación de Ontario, lo que llevó al desarrollo de la computadora ICON (80186, 512K RAM, con QNX)
  • Arranque desde servidor de archivos por red (ARCNET), sin dispositivo de almacenamiento individual; los usuarios utilizaban directorios personales alojados en el servidor
  • Se probó un sistema de “lessonware” basado en hipertexto, junto con diverso software educativo, funciones de red, audio y escalabilidad, acumulando experiencia en la construcción de un sistema avanzado

Expansión en mercados industriales y comerciales

  • A mediados y fines de los años 80 respondió a las demandas del mercado con soporte para IBM PS/2, LAN, GUI y emulación de DOS (QDOS, RUNDOS)
  • En 1987, QNX 2 incorporó mejoras como modo protegido de IBM AT, redes BSD, archivos de 1 TB, 32 puertos seriales y una GUI simple (House)
  • La organización también creció con expansión de oficinas y mudanza a una nueva sede

Adopción de POSIX y GUI Photon

  • En 1991, QNX 4.0: cumplimiento de POSIX, reducción del kernel (7K, 605 LOC), IPC, mejoras en redes y rendimiento
  • En 1994 se lanzó QNX Photon microGUI: GUI ligera basada en microkernel, transparencia de red y soporte para diversos dispositivos
    • Photon podía escalar desde entornos con recursos limitados hasta GUI de altas capacidades, e incluía una API compatible con X Window
    • Todo el entorno de demostración (red, navegador web, gestión de archivos, etc.) era lo bastante ligero como para ejecutarse desde un solo disquete de 1.44 MB

Sistemas embebidos y distribuidos, y evolución hacia Neutrino

  • Hasta QNX 4.25 (1997) recibió diversas mejoras y lideró el mercado de sistemas operativos en tiempo real en grandes empresas y entornos industriales (centrales eléctricas, medicina, transporte, espacio, etc.)
  • En 1996, QNX Neutrino 1.0: SMP, POSIX reforzado, amplio soporte de CPU, adopción de GNU/GCC y mejoras en la gestión de procesos/hilos
    • La gestión de memoria y el aislamiento de procesos se hicieron más rigurosos, y la incorporación del código de red de NetBSD mejoró su propósito general

Alianzas y entrada a mercados

  • En 1998 impulsó una alianza con Amiga (aunque finalmente Amiga adoptó Linux)
  • En 1999, Neutrino 2.0/2.1: UPM (mecanismo de protección a nivel de kernel), soporte multiarquitectura como PowerPC/MIPS/ARM, y mayor diversidad en el entorno de desarrollo
  • En 1999 colaboró con Motorola para entrar al mercado de sistemas de infoentretenimiento automotriz (navegación, audio, etc.)

Años 2000: hasta multimedia, automotriz y móvil

  • En 2001, QNX 6.0: streaming multimedia, administrador de paquetes web e integración de diversos entornos de desarrollo para CPU/arquitecturas
  • Modernización con Momentics Tool Suite basado en Eclipse (2002), clustering de red, IPv6, etc.
  • Tras la adquisición por Harman International en 2004, se enfocó en los mercados embebido y automotriz, introdujo la plataforma QNX CAR y fue adoptado por importantes fabricantes de vehículos
  • Comercialización masiva: para 2010 estaba instalado en 17 millones de vehículos y en más de 200 modelos

Adquisición por BlackBerry y evolución móvil/de seguridad

  • En 2010, Research in Motion (BlackBerry) adquirió QNX y lo expandió como sistema operativo de BlackBerry PlayBook y BB10 (=BBX)
    • QNX Safety kernel (certificaciones ISO/IEC, seguridad de misión crítica) amplió su presencia en el mercado de certificación embebida
    • Photon siguió evolucionando, junto con redes, multimedia, UI/UX y otros componentes
  • BBX (2013): interfaz centrada en gestos, multitarea y diversos frameworks de apps, con hardware de alto rendimiento
    • Fracasó frente a la competencia por factores como el ecosistema limitado de apps y la eliminación del teclado, aunque su vida útil se extendió hasta 2022

Conclusión

  • QNX destacó por su capacidad de tiempo real, diseño de kernel atómico, multiprocesamiento transparente por red, escalabilidad y seguridad
  • Construyó un espacio propio en compatibilidad con Unix y en los sectores industrial, automotriz y embebido
  • Aunque fracasó en la competencia por entrar en el código abierto y en los entornos móviles masivos, sigue manteniendo una reputación de nivel estándar industrial en áreas de misión crítica

1 comentarios

 
GN⁺ 2025-10-07
Opiniones de Hacker News
  • Tengo recuerdos divertidos relacionados con este OS. En la primaria había computadoras ICON en el salón, y recuerdo competir con mis amigos para girar el trackball lo más rápido posible. Cuando trabajaba en BlackBerry, desarrollé una función para usar QNX BlackBerry como dispositivo Bluetooth HID. Con eso también se podía controlar una laptop a distancia con el trackpad y el teclado físico, y era realmente útil en presentaciones. Pero algún PM decidió que esa función debía limitarse solo al PlayBook, así que en la práctica quedó inútil. Recuerdo claramente que Dan Dodge argumentó que, al ser un estándar, no debía tener restricciones. Empecé a respetar mucho a Dan Dodge, y no me gustaría volver a trabajar con ese PM

    • Me sorprende saber que la computadora ICON estaba basada en este OS. Era mucho más avanzada que una PC común de esa época. Aunque había una excepción: con la función para comunicarse entre ICONs era muy fácil tumbar otros sistemas o incluso toda la red

    • QNX terminó convirtiéndose en BlackBerry 10. Fue el mejor OS móvil que he usado. Lástima que tan poca gente lo haya usado

    • Yo usé esa función HID en la que trabajaste, y me encantó

    • KDE Connect hace básicamente lo mismo, pero mejor. Es sinceramente excelente

    • Ojalá se pudiera preservar la experiencia ICON con un emulador. Hoy en día hasta parece posible emular toda una red ICON desde el navegador

  • Me encantaba la estética minimalista de QNX Photon. Mantuve una configuración complicada de FVWM para conservar lo más posible esa vibra de Photon. Como referencia, esta es una captura de mi escritorio Gentoo de 2004 captura del escritorio

    • Yo también adopté tu configuración y la he mantenido por más de 15 años

    • Incluso hoy se ve muy bien. Me pregunto si todavía conservas los dotfiles

    • Muy superior a mi tema de WindowMaker. Tu tema de FVWM está buenísimo

    • ¿Lo que aparece en la captura no es una imitación de Winamp?

  • La idea de QNX me gustó muchísimo, así que tenía expectativas enormes. En ese momento nuestro equipo estaba migrando un optical food processor desde un DSP a hardware de propósito general (FireWire, 1394). El aislamiento de procesos de QNX era excelente, pero el overhead de la transferencia de datos basada en mensajes no nos dejó tan satisfechos. Al final pagamos 2 mil dólares para que el driver 1394 de Linux soportara isochronous mode/dma, y lo usamos junto con RT extensions. La lección que saqué de eso fue justamente la “ley de conservación de la fealdad”. En un sistema de software siempre queda alguna “fealdad” nada elegante en alguna parte, y cuando mejoras un lado, esa “fealdad” se mueve a otro lugar

    • Creo que la “ley de conservación de la fealdad” es, en esencia, muy parecida al “principio de la cama de agua”. En un sistema con cierto nivel de complejidad, si presionas un problema en un lado, inevitablemente salta en otro. Si quieres saber más sobre el principio de la cama de agua, puedes ver aquí

    • Hay una idea para acelerar el paso de mensajes en QNX. Consiste en enviar mensajes usando el mecanismo de paginación, es decir, actualizar solo la tabla de páginas sin copiar datos. Claro, sigue existiendo el overhead del double TSS load frente a un macro kernel, pero aun así es rápido. De todos modos, la elegancia tiene un costo. Si también consideras latencia, confiabilidad, estabilidad y exactitud, estos factores pesan mucho más que la simple velocidad de procesamiento

    • Hoy en día, con soporte completo para DSMP (Direct System Memory Protection) y con el rendimiento del sistema muy superior, creo que el overhead del paso de mensajes ya no es un problema tan grande. Más bien, las otras ventajas pesan más

    • Me pregunto si “optical food processor” es una metáfora o si realmente era un dispositivo que usaba imágenes para cortar comida

  • La foto de ICON en este blog es justamente mi ICON, y la tomaron de mi blog (gracias por dar crédito). Comparto mi post sobre computadoras ICON en QNX. En la primera entrada también hay un enlace a un video demo de QNX en YouTube
    post sobre ICON
    post sobre LEXICON

    • Me pregunto si tienes pensado respaldar el software o las ROMs en archive.org. La creación de un emulador para este sistema se había frenado por problemas de acceso a las ROMs
  • Alrededor de 2002 hice telnet a un cable módem y me pareció fascinante descubrir que estaba corriendo QNX

  • Hacia 1996, recibí QNX en un solo floppy con GUI de RTOS y stack de red incluidos, y me impresionó muchísimo lo pequeño que era. Solo instalar Slackware ya requería varios discos, así que QNX parecía increíble

    • Yo también me acuerdo. Ese demo tan pequeño incluso incluía un navegador web. Si quieres probarlo por ti mismo, puedes hacerlo aquí

    • En realidad, ese tipo de versiones demo servían precisamente para presumir capacidades. En esa época, QNX era tan impresionante en el mercado de los live CD que todo el mundo hablaba maravillas de él. Como dato, también había Linux con X11 y navegador web corriendo desde floppy, y eso también era realmente impresionante enlace al comentario de HN

    • Recuerdo haber estado explorando escritorios Linux alrededor del 2000 y luego descargar el demo de QNX; me dejó sorprendido

  • Construí un sistema robótico en la universidad con QNX 4. Usamos tarjetas CPU 486/Pentium conectadas en red y logramos una configuración robótica completamente hard real-time. Me impresionó que la syscall básica de QNX (send/receive/reply) estuviera implementada inline en el header file en casi 3 líneas de ensamblador. A partir de esa experiencia, aprendí mucho implementando funciones parecidas en robótica sobre vxWorks, SunOS, Linux y otros
    artículo sobre el sistema robótico

    • QNX alguna vez fue el estándar que hizo posible lo “imposible” de un OS de microkernel realmente usado en el mundo real. Hoy me pregunto qué lugar tendría comparado con OS modernos como Nintendo Switch Horizon, seL4 o HarmonyOS NEXT
  • Si quieres probar QNX en una Raspberry Pi, comparto un artículo que puede servirte de referencia guía para instalar QNX en Raspberry Pi

  • Hice un servidor de audio con QNX y hasta porté funciones de codificación y reproducción de MP3. Cuando visité directamente la oficina central, Dan Dodge le indicó a su equipo que nos ayudaran por completo. Gracias a eso pudimos arrancar la startup con estabilidad, y nos fue de gran ayuda hasta que migramos a Linux 6 años después

    • Es una historia increíble. Vamos a revivir ese espíritu a través de QNX Everywhere. El plan es ofrecer acceso gratuito a la comunidad y brindar el mayor apoyo posible
  • En Quantum decían que respetaban Unix, pero promocionaban QNX como un OS de los 90 diseñado en los 80. En ese momento no supieron anticipar GNU, internet, Microsoft Windows, el desarrollo de terceros, la barrera de entrada de las apps basadas en Windows, la web, el shareware, los BBS, los VAR, el movimiento de software libre, etc. El mercado de sistemas operativos es de tipo winner-takes-all, y su política de precios de varios cientos de dólares fue un error fatal. Tal vez era inevitable en esa época, pero el problema era claro. Por supuesto, también tardaron en reconocer la importancia de la GUI, y Photon GUI recién apareció en QNX 4.1 (1994)

    • Este OS era un sistema único: compatible con POSIX, escalable hasta escritorio/servidor, extremadamente estable y capaz de control en tiempo real. Gracias a sus características de tiempo real, la interacción era muy fluida, y entre los 90 y los 2000 existía un nicho suficiente para que la empresa sobreviviera. El demo de 1999 que metía GUI completa, red y navegador web en 1.44MB sigue pareciéndome algo increíble; todavía no he visto otra compresión funcional de ese nivel. Hoy, con Linux en tiempo real alcanzando un rendimiento comparable al de QNX, y con el desarrollo self-hosting abandonado desde QNX 6.6, su atractivo se ha ido diluyendo. Desde el punto de vista del negocio, tiene sentido enfocarse en automotriz y embebidos, pero como entusiasta de la tecnología, me da un poco de pena. Entre licencias caras y la competencia de Linux en tiempo real (gama alta) y Zephyr/FreeRTOS (gama baja), no se me ocurre bien por qué elegir QNX para un proyecto nuevo. Si alguien lo ha elegido recientemente, me gustaría escuchar su opinión