It's somewhat refreshing to see this OS going strong in 2024. I briefly used it for some ill fated project around 2008 and that's when I learned to appreciate its design and well written documentation (including a warning that a timer would overflow after 400-odd years of continous uptime).
Probably about 1996(?) remember getting this on a floppy disk, full RTOS GUI with a networking stack, wondering how they could do that with such a small footprint. For reference I recall having to write stacks of disk set floppies for Slackware basic install, let alone Windows 95 :)
QNX is a really cool OS (it's fast AND elegant AND extremely reliable) and QNX dude Dan Dodge gave the only conference keynote so far that I greatly enjoyed. It was basically fun stories from over 30 years (at the time) of OS development. It's sad to see QNX use, apparently, decline.
What a great summary. I was reminded of QNX through the Blackberry acquisition but I had forgotten it's history went back so far. (I should have remembered, I was around in those early PC days) With so many things these days having an operating system running them (including the mentioned cars, rockets and robots) QNX seems to have a bright future ahead doing what it does best, being the solid core to build upon.
It's funny.. We've spent a lot of time at universities this year, and that's the same reaction we sometimes get there when we say we're over 45 years old and have nearly 1000 staff members. "Yo, bro, I thought you were like a little startup bro!"
I was involved in porting some software to Qt back when Photon was deprecated, and I always found the system very interesting. This is the first time I'm actually learning more about its history. Thanks for the great read.
I was also a huge fan of BlackBerry phones (having used Q5 and Z10 as daily drivers). The system was solid and had some really cool ideas. Too bad it didn't work out...
First, we had ICON computers in my elementary school, we'd all try to spin the trackball as quickly as it would go. Not sure if we ever broke one.
The second is when I worked at BlackBerry. I was building a feature that allowed you to use your QNX BlackBerry as a Bluetooth HID device. You could connect it to any device and use the trackpad + physical keyboard to remotely control a computer. It was fantastic. You could hook your laptop up to a project and control slides from your BlackBerry.
Then some product manager with questionable decision making told me to lock it down so it would only work with Blackberry Playbooks for "business purposes", rendering it effectively useless (since Playbooks are all ewaste). I distinctly remember that meeting where Dan Dodge argued that since it's a standard, it should not be locked down.
I respect Dan Dodge for that, I don't think I'd work with that PM again.
I had to use QNX for realtime applications in the late 1990s before the Pentium came along. Windows, Linux and existing UNIX flavours were not an option as none of them could do the realtime thing in quite the same way that QNX could. That was the strength of the OS and I am glad I knew this before reading the article.
What I also liked about QNX was the petite size. If I remember correctly it came on one floppy disk, and that included a GUI, not that you need a GUI with QNX since the product will be an embedded system of sorts. All of the documentation was clear and, even if you had not read the manual, the overlap with UNIX meant that the system was far from intimidating as most of the commands that I knew would work fine, albeit with different options to commands.
I had not fully realised how QNX had gone from strength to strength in automotive, and I didn't even know Harmon owned them for a while.
Given that we have gone from single core, 32 bit 386/486 to today's sophisticated SOCs that are thousands of times more capable, the question has to be asked, how important is QNX's superpower of realtime goodness, particularly if it is just for automotive applications such as turning on the A/C?
Surely a modern CPU that goes so much faster can do a better job without having to care about realtime performance? Or maybe Android Auto and Automotive Linux have those bases covered? Regardless, I am sure that if you want realtime embedded applications then you hire the guys that know QNX and reject those that haven't a clue.
Interesting to see this a couple of days after my post. I wonder if there is any link, but in case there isn't: QNX is well worth studying, it is in so many ways an OS done right.
This Icon was a hunk of junk. The only value it provided were to the students with any sort of curiosity about how this frankensystem worked. It was only later that it was clear it took advantage of procurement processes in the most extreme sense. A pure embarrassment of technology, grifters, and government. We learned more from the PETs, Commodores, and after that the PS/2s.
QNX 6 was the first non-Microsoft non-Apple OS I ever used, even before Linux, and after trying and failing to pirate OS/2 Warp 4. It came on the Maximum CD with the March 2001 issue of Maximum PC alongside the “Alt OS” article in the same issue: https://books.google.com/books?id=yAEAAAAAMBAJ&lpg=PT53&dq=%...
So much '90s anime in those screenshots — super nostalgic!
Oh this brings back some fun memories. I worked with QNX for the ICON computer at Cemcorp and ESP Educational Software Products.
The OS was so clean but it lacked a lot of basic tooling. Back then there was no GUI or even a graphics library. We had to build or port a lot of things, including a VCS, from scratch. My editor of choice was JOVE (I couldn't get Emacs to build). I remember digging up various papers on graphics and creating our first graphics library.
I used QNX in the 2000s at NIH to run experiments! We eventually replaced it with Linux and Windows and dedicated "experiment" hardware to handle the "real time" needs.
I used ICONs in school growing up in Ontario, Canada, they were so cool. It was a sad day when Windows PCs replaced them in the computer lab.
All but a few of these computers were destroyed by the ministry of education. And without the LEXICON server that accompanied them, they're basically useless.
For a bit of fun, I ran the DOOM shareware demo using the official QNX4 port on a 486SX with 8M of ram.
I picked up QNX6 again as a hobbyist later in life... until self-hosted QNX was killed, no bootable .ISOs after 6.5. Then they killed the hobbyist license, killed the Photon desktop GUI, dropped any native toolchain support in place of a Windows/Linux-hosted IDE. Porting software became difficult, pkgsrc no longer maintained.
They are completely noncommittal as a company, nothing short of actually open-sourcing it under the MIT/BSD would convince me to use it again.. and not another source-available effort that they inevitably rug pull again.
I loved the idea of QNX. Got way excited about it. We were moving our optical food processor from dedicated DSPs to general purpose hardware, using 1394 (FireWire). The process isolation was awesome. The overhead of moving data through messages, not so much. In the end, we paid someone $2K to contribute isochronous mode/dma to the Linux 1394 driver and went our way with RT extensions.
It was a powerful lesson (amongst others) in what I came to call “the Law of Conservation of Ugly”. In many software problems, there’s a part that just is never going to feel elegant. You can make one part of the system elegant, which often causes the inelegance surface elsewhere in the system.
Today though, I'd argue that with full DSMP support and much more capable systems, any overhead from message passing is much less of a concern, or at least outweighed by other benefits.
There's an older talk Simon Peyton Jones (IIRC?) gave about some development or other in haskell, in which he suggested that many software systems have some aspect of the swamp or the marsh into which you must eventually wade - that there's a mucky, sticky, irreducible aspect to the problem that must be dealt with somewhere, regardless of how elegant the rest of the system is.
"that marsh thing" has stuck with me, and been a frequent contributor to my work and thinking. I'll happily take Law of Conservation of Ugly as a _much_ better name for the thought :)
We're in 270+ million vehicles on the road today, 1 in 7 globally (and growing!) It's awesome going to shows and reminding people that every time they turn their key (okay, okay: _push the ON button_), there's a good chance they are booting up QNX under the hood!
> Don't misunderstand us. We at Quantum have a great deal of respect for Unix. It was a major force in moving operating systems out of the 60's and into the 70's. QNX however, was designed in the 80's and will be a driving force of the 90's. Over 20,000 systems have been sold since 1982.
Things they weren't anticipating included GNU, the internet, Microsoft Windows, third-party development, the Windows applications barrier to entry, the World-Wide Web, shareware, BBSes, VARs, and the free-software movement. They didn't understand how operating systems were a winner-take-all game, so pricing your OS at hundreds of dollars was a losing strategy.
But it was 01986, so who could blame them? Their 01987 ad does try to reach out to VARs.
Still, they were certainly aware of Unix, and you'd think that would mean they were aware of uucp. They just didn't anticipate its significance. Again, though, who did?
They also don't seem to have appreciated the importance of GUIs until version 2.0 in 01987, despite the popularity of the Macintosh, the "Jackintosh" Atari ST, and GEOS on the C64. The article says that the "Photon" GUI everyone remembers wasn't until QNX 4.1 in 01994.
56 comments
[ 5.6 ms ] story [ 65.1 ms ] threadhttps://carleton.ca/rcs/qnx/installing-qnx-on-raspberry-pi-4...
https://devblog.qnx.com/tag/from-the-board-up-series/
I was also a huge fan of BlackBerry phones (having used Q5 and Z10 as daily drivers). The system was solid and had some really cool ideas. Too bad it didn't work out...
First, we had ICON computers in my elementary school, we'd all try to spin the trackball as quickly as it would go. Not sure if we ever broke one.
The second is when I worked at BlackBerry. I was building a feature that allowed you to use your QNX BlackBerry as a Bluetooth HID device. You could connect it to any device and use the trackpad + physical keyboard to remotely control a computer. It was fantastic. You could hook your laptop up to a project and control slides from your BlackBerry.
Then some product manager with questionable decision making told me to lock it down so it would only work with Blackberry Playbooks for "business purposes", rendering it effectively useless (since Playbooks are all ewaste). I distinctly remember that meeting where Dan Dodge argued that since it's a standard, it should not be locked down.
I respect Dan Dodge for that, I don't think I'd work with that PM again.
With one exception - you could crash other ICON systems or the overall network just via machine-machine chatting functions.
The Neutrino 6.4 version, which was made accessible as "openQNX" to the public, can still be downloaded from e.g. https://github.com/vocho/openqnx.
Here is an AI generated documentation of the source: https://deepwiki.com/vocho/openqnx
https://en.wikipedia.org/wiki/Gordon_Bell
What I also liked about QNX was the petite size. If I remember correctly it came on one floppy disk, and that included a GUI, not that you need a GUI with QNX since the product will be an embedded system of sorts. All of the documentation was clear and, even if you had not read the manual, the overlap with UNIX meant that the system was far from intimidating as most of the commands that I knew would work fine, albeit with different options to commands.
I had not fully realised how QNX had gone from strength to strength in automotive, and I didn't even know Harmon owned them for a while.
Given that we have gone from single core, 32 bit 386/486 to today's sophisticated SOCs that are thousands of times more capable, the question has to be asked, how important is QNX's superpower of realtime goodness, particularly if it is just for automotive applications such as turning on the A/C?
Surely a modern CPU that goes so much faster can do a better job without having to care about realtime performance? Or maybe Android Auto and Automotive Linux have those bases covered? Regardless, I am sure that if you want realtime embedded applications then you hire the guys that know QNX and reject those that haven't a clue.
So much '90s anime in those screenshots — super nostalgic!
The OS was so clean but it lacked a lot of basic tooling. Back then there was no GUI or even a graphics library. We had to build or port a lot of things, including a VCS, from scratch. My editor of choice was JOVE (I couldn't get Emacs to build). I remember digging up various papers on graphics and creating our first graphics library.
All but a few of these computers were destroyed by the ministry of education. And without the LEXICON server that accompanied them, they're basically useless.
For a bit of fun, I ran the DOOM shareware demo using the official QNX4 port on a 486SX with 8M of ram.
https://brynet.ca/video-qnxdoom.html
I picked up QNX6 again as a hobbyist later in life... until self-hosted QNX was killed, no bootable .ISOs after 6.5. Then they killed the hobbyist license, killed the Photon desktop GUI, dropped any native toolchain support in place of a Windows/Linux-hosted IDE. Porting software became difficult, pkgsrc no longer maintained.
They are completely noncommittal as a company, nothing short of actually open-sourcing it under the MIT/BSD would convince me to use it again.. and not another source-available effort that they inevitably rug pull again.
https://www.osnews.com/story/23565/qnx6-is-closed-source-onc...
It was a powerful lesson (amongst others) in what I came to call “the Law of Conservation of Ugly”. In many software problems, there’s a part that just is never going to feel elegant. You can make one part of the system elegant, which often causes the inelegance surface elsewhere in the system.
"that marsh thing" has stuck with me, and been a frequent contributor to my work and thinking. I'll happily take Law of Conservation of Ugly as a _much_ better name for the thought :)
This was a screenshot of my Gentoo desktop around 2004!
https://lock.cmpxchg8b.com/img/fvwm_desktop.jpg
Things they weren't anticipating included GNU, the internet, Microsoft Windows, third-party development, the Windows applications barrier to entry, the World-Wide Web, shareware, BBSes, VARs, and the free-software movement. They didn't understand how operating systems were a winner-take-all game, so pricing your OS at hundreds of dollars was a losing strategy.
But it was 01986, so who could blame them? Their 01987 ad does try to reach out to VARs.
Still, they were certainly aware of Unix, and you'd think that would mean they were aware of uucp. They just didn't anticipate its significance. Again, though, who did?
They also don't seem to have appreciated the importance of GUIs until version 2.0 in 01987, despite the popularity of the Macintosh, the "Jackintosh" Atari ST, and GEOS on the C64. The article says that the "Photon" GUI everyone remembers wasn't until QNX 4.1 in 01994.