Comment by Theodores

10 days ago

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.

It's not all about the realtime. It's also about the process isolation. If a Linux driver crashes, it takes down the entire system. If a QNX driver crashes, it's not part of the kernel so it can just be restarted. It's not good to wait for 5 or 6 seconds for your car to reboot so your brakes will start operating again while you careen towards that retaining wall on the highway.

Keep in mind there's a distict possibility that the Android you see as a driver is running as a guest on a QNX Hypervisor system ;)