1 points par GN⁺ 2025-10-07 | 1 commentaires | Partager sur WhatsApp
  • QNX est un système d’exploitation temps réel à microkernel né au début des années 1980 au Canada
  • Il offre une prise en charge de matériels variés, dont l’IBM PC, une grande portabilité, une messagerie distribuée et une excellente fiabilité dans un environnement multitâche
  • Il a eu une influence majeure grâce à son adoption dans les ordinateurs éducatifs, les infrastructures industrielles et les systèmes automobiles
  • Sa conformité POSIX a renforcé sa compatibilité avec Unix, et il a évolué avec une GUI légère (Photon) ainsi que diverses fonctions réseau
  • Il a continué à améliorer sa stabilité, ses performances et sa sécurité tout en s’adaptant aux évolutions récentes des marchés de l’automobile, de l’embarqué et du mobile

Les débuts du système d’exploitation QNX

  • En 1979, Gordon Bell et Dan Dodge de l’University of Waterloo acquièrent de l’expérience grâce à un projet de système d’exploitation temps réel appelé Thoth
    • Thoth se distinguait par sa grande portabilité, sa messagerie synchrone et son fonctionnement indépendant du matériel
  • Après leurs études, Bell et Dodge fondent Quantum Software Systems (qui deviendra plus tard QNX Software Systems) et commencent à développer leur propre OS sur un prototype de micro-ordinateur basé sur le 6809

QUNIX — le prédécesseur de QNX

  • La première version, QUNIX 0.1, reposait sur un microkernel, mélangeait des éléments de CP/M et d’UNIX, et fut développée comme le premier OS temps réel à microkernel pour IBM PC
  • Contrairement à Unix traditionnel, il introduisait une structure de répertoires propre comme /cmds, /config, /sys, ainsi qu’un jeu de commandes spécifique, dont la commande help
  • Les premières limites comprenaient le support du disque dur (HDD de 5 Mo dans QUNIX 0.4) et un démarrage basé sur disquette

Transition vers QNX et croissance

  • En raison d’un problème de marque avec AT&T, le nom passe de QUNIX à QNX en 1982, puis QNX 1.0 est officiellement lancé en 1983
    • Noyau : environ 10 000 lignes de code C, avec des caractéristiques de microkernel comme l’ordonnancement, le passage de messages et la gestion des priorités
    • La plupart des services (système de fichiers, pilotes, réseau, etc.) reposaient sur une architecture de communication par messages
    • Prise en charge d’une file de messages réseau transparente, jusqu’à 250 tâches simultanées, et fonctionnement multi-utilisateur
  • Vendu 650 $ (en 1983) avec compilateur C, éditeur et support réseau inclus
  • QNX 1.2 (1984) : renforcement du pattern matching, de la programmation shell, support IBM AT, baisse de prix, etc.

Entrée dans l’éducation : Burroughs ICON

  • Adopté dans le cadre du projet d’ordinateur éducatif standard du ministère de l’Éducation de l’Ontario, il donne naissance à l’ordinateur ICON (80186, 512K de RAM, sous QNX)
  • Démarrage via serveur de fichiers en réseau (ARCNET), sans unité de stockage locale, les utilisateurs disposant d’un répertoire personnel hébergé sur serveur
  • L’expérience acquise inclut un système avancé avec hypertexte de type « lessonware », divers logiciels éducatifs, des fonctions réseau, audio et une bonne extensibilité

Expansion sur les marchés industriel et commercial

  • À la fin des années 1980, il répond aux besoins du marché avec le support de l’IBM PS/2, du LAN, de la GUI et de l’émulation DOS (QDOS, RUNDOS)
  • En 1987, QNX 2 apporte des améliorations comme le mode protégé IBM AT, le réseau BSD, des fichiers de 1 To, 32 ports série et une GUI simple (House)
  • L’organisation grandit avec l’extension des bureaux et l’installation dans un nouveau siège

Adoption de POSIX et GUI Photon

  • En 1991, QNX 4.0 : conformité POSIX, réduction de la taille du noyau (7K, 605 LOC), IPC, réseau et performances améliorés
  • En 1994, lancement de QNX Photon microGUI : GUI légère à microkernel, transparence réseau, prise en charge de nombreux appareils
    • Photon pouvait évoluer d’environnements contraints en ressources à des GUI riches en fonctionnalités, tout en offrant une API compatible X Window
    • L’ensemble de l’environnement de démonstration (réseau, navigateur web, gestion de fichiers, etc.) était suffisamment léger pour tenir sur une seule disquette 1,44 Mo

Systèmes embarqués et distribués, évolution vers Neutrino

  • Jusqu’à QNX 4.25 (1997), de nombreuses améliorations en font un OS temps réel de référence dans les grandes entreprises et sur des sites industriels (centrales électriques, médical, transport, spatial, etc.)
  • En 1996, QNX Neutrino 1.0 : SMP, POSIX renforcé, large prise en charge CPU, adoption de GNU/GCC, gestion des processus et threads améliorée
    • La gestion mémoire et l’isolation des processus deviennent plus rigoureuses, et l’adoption du code réseau de NetBSD améliore sa polyvalence

Partenariats et entrée sur de nouveaux marchés

  • En 1998, un partenariat est envisagé avec Amiga (qui adoptera finalement Linux)
  • En 1999, Neutrino 2.0/2.1 : UPM (mécanisme de protection au niveau noyau), support multi-architectures comme PowerPC/MIPS/ARM, diversification de l’environnement de développement
  • En 1999, collaboration avec Motorola pour entrer sur le marché des systèmes d’infodivertissement automobile (navigation, audio, etc.)

Années 2000 : jusqu’au multimédia, à l’automobile et au mobile

  • En 2001, QNX 6.0 : streaming multimédia, gestionnaire de paquets web, intégration d’environnements de développement pour divers CPU/architectures
  • Modernisation avec la suite d’outils Momentics basée sur Eclipse (2002), le clustering réseau, IPv6, etc.
  • Après son acquisition par Harman International en 2004, QNX se concentre sur les marchés de l’embarqué et de l’automobile, introduit la plateforme QNX CAR et est adopté par de grands constructeurs
  • Industrialisation à grande échelle : en 2010, il équipait 17 millions de véhicules et plus de 200 modèles

Acquisition par BlackBerry et évolution mobile/sécurité

  • En 2010, Research in Motion (BlackBerry) rachète QNX et l’étend comme système d’exploitation de BlackBerry PlayBook et de BB10 (=BBX)
    • Le noyau QNX Safety (certifications ISO/IEC, sécurité mission-critical) permet d’élargir sa présence sur le marché des systèmes embarqués certifiés
    • Photon continue d’évoluer, ainsi que les fonctions réseau, multimédia et UI/UX
  • BBX (2013) : UI centrée sur les gestes, multitâche, divers frameworks d’applications, avec matériel haute performance
    • La limitation de l’écosystème applicatif et la suppression du clavier, entre autres, entraînent un échec face à la concurrence, malgré une durée de vie prolongée jusqu’en 2022

Conclusion

  • QNX s’est distingué par son temps réel, sa conception atomique du noyau, son multiprocessing transparent sur le réseau, son extensibilité et sa sécurité
  • Il a construit un espace propre grâce à sa compatibilité Unix et à sa présence dans l’industrie, l’automobile et l’embarqué
  • Il a échoué face à la concurrence dans l’open source et dans l’entrée sur le marché mobile grand public, mais conserve une réputation de niveau standard industriel dans les domaines mission-critical

1 commentaires

 
GN⁺ 2025-10-07
Commentaires sur Hacker News
  • J’ai des souvenirs amusants liés à cet OS. À l’école primaire, il y avait un ordinateur ICON dans la classe, et je me souviens qu’avec mes amis, on faisait la course pour faire tourner la trackball le plus vite possible. Quand je travaillais chez BlackBerry, j’ai développé une fonctionnalité permettant d’utiliser le QNX BlackBerry comme périphérique Bluetooth HID. Cela permettait aussi de contrôler à distance un ordinateur portable avec le trackpad et le clavier physique, ce qui était vraiment pratique pour les présentations. Mais un PM a demandé que cette fonctionnalité soit limitée au PlayBook, ce qui l’a pratiquement rendue inutile. Je me souviens très bien de Dan Dodge affirmant qu’il ne fallait pas imposer de restrictions à un standard. J’en suis venu à admirer Dan Dodge, et je n’ai aucune envie de retravailler avec ce PM

    • Je suis surpris d’apprendre que les ordinateurs ICON étaient basés sur cet OS. À l’époque, ils étaient bien plus avancés que les PC ordinaires. À une exception près : la fonction de dialogue entre ICON pouvait facilement faire tomber un autre système, voire tout le réseau

    • QNX est finalement devenu BlackBerry 10. C’est le meilleur OS mobile que j’aie jamais utilisé. Dommage que si peu de gens s’en soient servis

    • J’ai utilisé la fonctionnalité HID sur laquelle tu as travaillé, et je l’ai vraiment beaucoup aimée

    • KDE Connect fait en gros la même chose, mais en mieux. Franchement excellent

    • J’aimerais qu’on puisse préserver l’expérience ICON via un émulateur. Aujourd’hui, on pourrait probablement émuler tout un réseau ICON dans le navigateur

  • J’adorais l’esthétique minimaliste de QNX Photon. J’avais gardé une configuration FVWM complexe pour retrouver autant que possible l’esprit de Photon. À titre indicatif, voici une capture d’écran de mon bureau Gentoo en 2004 capture d’écran du bureau

    • J’ai repris ta configuration et je l’ai gardée pendant plus de 15 ans

    • Même aujourd’hui, ça a de l’allure. Je me demande si tu as encore tes dotfiles

    • C’est largement supérieur à mon thème WindowMaker. Ton thème FVWM est vraiment superbe

    • Ce qu’on voit sur la capture, ce n’est pas un clone de Winamp ?

  • J’aimais vraiment l’idée de QNX, donc j’en attendais énormément. À l’époque, notre équipe était en train de migrer un processeur alimentaire optique d’un DSP vers du matériel générique (FireWire, 1394). L’isolation des processus de QNX était impressionnante, mais la surcharge des transferts de données basés sur les messages n’était pas très satisfaisante. Au final, on a payé 2 000 dollars pour obtenir la prise en charge du mode isochrone/DMA dans le pilote 1394 de Linux, puis on l’a utilisé avec des extensions RT. La leçon que j’en ai tirée, c’est la « loi de conservation de la laideur ». Dans un système logiciel, il reste toujours quelque part une forme de « laideur » irréductible ; si on améliore un côté, cette « laideur » se déplace ailleurs

    • Je pense que la « loi de conservation de la laideur » ressemble beaucoup, au fond, au « principe du waterbed ». Dans un système d’une certaine complexité, si on appuie sur un problème à un endroit, il ressort forcément ailleurs. Si vous voulez en savoir plus sur le principe du waterbed, vous pouvez regarder ici

    • Il existe une idée pour accélérer le passage de messages sur QNX. Elle consiste à utiliser le mécanisme de pagination pour envoyer les messages, c’est-à-dire à ne mettre à jour que la table des pages sans recopier les données. Bien sûr, il reste toujours la surcharge du double chargement de TSS par rapport à un macro kernel, mais c’est rapide. Cela dit, l’élégance a un prix. Si l’on prend en compte la latence, la fiabilité, la stabilité et la justesse, ces critères pèsent bien plus lourd qu’une simple vitesse de traitement

    • Aujourd’hui, avec la prise en charge complète du DSMP (Direct System Memory Protection) et des performances système bien supérieures, je pense que la surcharge du passage de messages n’est plus vraiment un gros problème. À mes yeux, les autres avantages pèsent davantage

    • Je me demande si « optical food processor » est une métaphore, ou s’il s’agit vraiment d’un appareil qui découpe des aliments à l’aide d’images

  • La photo d’ICON sur ce blog, c’est justement mon ICON, reprise depuis mon blog (merci pour la mention de la source). Je partage mon billet sur les ordinateurs ICON sous QNX. Le premier article contient aussi un lien YouTube vers une vidéo de démonstration de QNX
    billet ICON
    billet LEXICON

    • Je me demande si vous prévoyez de sauvegarder le logiciel ou les ROM sur archive.org. La création d’un émulateur de ce système a été bloquée à cause de problèmes d’accès aux ROM
  • Vers 2002, j’ai ouvert une connexion telnet sur un modem câble et j’ai trouvé fascinant de voir que QNX tournait dessus

  • Vers 1996, j’ai reçu QNX sur une seule disquette, avec à la fois un GUI RTOS et une pile réseau, et j’ai été stupéfait par sa petite taille. Rien que l’installation de Slackware demandait plusieurs disques, donc QNX paraissait incroyable

    • Je m’en souviens aussi. Il y avait même un navigateur web dans cette petite démo. Si vous voulez l’essayer vous-même, c’est possible ici

    • En réalité, ce genre de version démo servait justement à mettre les fonctionnalités en vitrine. À l’époque, QNX avait tellement marqué les esprits sur le marché des live CD que tout le monde en disait du bien. À titre de comparaison, il existait aussi un Linux tenant sur disquette avec X11 et un navigateur web, et c’était lui aussi vraiment impressionnant lien vers le commentaire HN

    • Vers 2000, alors que je commençais à toucher aux desktops Linux, j’ai téléchargé la démo QNX et j’en ai été abasourdi

  • J’ai construit un système robotique à l’université avec QNX 4. En utilisant des cartes CPU 486/Pentium reliées en réseau, nous avons réussi à mettre en place un robot totalement hard real-time. J’avais été impressionné par le fait que l’appel système de base de QNX (send/receive/reply) soit implémenté en inline dans le fichier d’en-tête avec à peine trois lignes d’assembleur. À partir de cette expérience, j’ai énormément appris en réimplémentant des fonctionnalités similaires en robotique sur vxWorks, SunOS, Linux, etc.
    article sur le système robotique

    • QNX a un temps été la référence qui rendait possible, dans le monde réel, un OS à microkernel réellement utilisé. Je me demande où il se situerait aujourd’hui face à des OS modernes comme Nintendo Switch Horizon, seL4 ou HarmonyOS NEXT
  • Si vous voulez découvrir QNX sur un Raspberry Pi, voici un article utile guide d’installation de QNX sur Raspberry Pi

    • Voici aussi une image gratuite de QNX 8.0. On peut la flasher directement sur un Pi 4, et elle peut aussi être adaptée au Pi 400 et au CM4
      image gratuite de QNX 8.0 et explications

    • Si vous voulez l’utiliser dans une machine virtuelle, on peut récupérer d’anciennes images sur archive.org
      anciennes images QNX

  • J’ai créé un serveur audio sous QNX et j’y ai même porté l’encodage et la lecture MP3. Quand nous avons rendu visite au siège, Dan Dodge a demandé à ses équipes de nous aider pleinement. Grâce à cela, nous avons pu lancer notre startup dans de bonnes conditions, et QNX nous a énormément aidés jusqu’à notre migration vers Linux six ans plus tard

    • C’est une histoire géniale. Nous comptons faire revivre cet esprit avec QNX Everywhere. L’idée est d’offrir un accès gratuit à la communauté et de fournir autant de soutien que possible
  • Chez Quantum, on disait respecter Unix, tout en présentant QNX comme un OS des années 1990 conçu à partir d’une architecture des années 1980. À l’époque, ils n’avaient pas anticipé GNU, Internet, Microsoft Windows, les développeurs tiers, la barrière d’entrée des applications sous Windows, le web, le shareware, les BBS, les VAR, le mouvement du logiciel libre, etc. Le fait que le marché des systèmes d’exploitation fonctionne selon une logique de winner-takes-all, ainsi qu’une politique tarifaire de plusieurs centaines de dollars, ont été des erreurs fatales. C’était peut-être inévitable à l’époque, mais le problème était bien réel. Bien sûr, ils ont aussi pris conscience tardivement de l’importance du GUI, et Photon GUI n’est arrivé qu’avec QNX 4.1 en 1994

    • Cet OS était un système unique : compatible POSIX, capable de monter jusqu’au desktop et au serveur, extrêmement stable, et apte au contrôle en temps réel. Grâce à ses caractéristiques temps réel, l’interaction était très fluide, et il existait un marché de niche pour cela entre les années 1990 et 2000, ce qui a permis à l’entreprise de survivre. La démo de 1999 qui faisait tenir dans 1,44 Mo un GUI complet, le réseau et même un navigateur web reste encore aujourd’hui l’une des démonstrations de compression fonctionnelle les plus impressionnantes que j’aie vues. De nos jours, Linux temps réel atteint des performances comparables à celles de QNX, et depuis QNX 6.6, le développement en self-hosting a lui aussi disparu, ce qui lui enlève une partie de son attrait. D’un point de vue business, il est rationnel de se concentrer sur l’automobile et l’embarqué, mais en tant que passionné de technologie, cela me laisse un goût amer. Entre des licences coûteuses, la concurrence du Linux temps réel (haut de gamme) et de Zephyr/FreeRTOS (entrée de gamme), j’ai du mal à voir pourquoi on choisirait QNX pour un nouveau projet. Si quelqu’un a récemment opté pour QNX, je serais curieux d’avoir son avis