← Back to context

Comment by tombert

11 hours ago

I've only ever used QNX in the form of Blackberry products (mostly the Playbook), so I am afraid I don't what the advantages of it would be compared to Linux or something.

I know it's a microkernel which is inherently cool to me, but I don't know what else it buys you.

Can anyone here give me a high-level overview of why QNX is cool?

Hard real time (so latency guarantees), microkernel (and they actually mean it, so your device drivers can't hose your system), standardized networked IPC including network transparency for all services, ISRs at the application level.

  • >IPC including network transparency

    Sadly not anymore, Qnet was removed in 8.0

    • Oh! I only worked with it commercially prior to that so I never got the memo. What an insanely stupid move. That was one of their USPs.

      In general QnX was commercially mismanaged and technically excellent. I'm imagining a world where they clued in early on that an open source real time OS would have run circles around the rest of the offerings and they'd have cleaned up on commercial licensing. Since the 80's they've steadily lost mind and marketshare though I suspect they'll always be around in some form.

QNX is hard realtime. At one point, its kernel had O(1) guarantees for message passing and process switching. It could have been rewritten without any loops. I'm not sure if that's still true.

It's also really compact. This used to be a great selling point for underpowered car infotainment systems. Some cars had around 1Mb of RAM for their infotainment, yet they were able to run fairly complex media systems.

QNX is also used for non-UI components, just as a good realtime OS.