QNX generates a lot of interest from Linux enthusiasts.
FreeOS.com interviews Paul Leroux of QNX on the differences between
QNX and other operating systems (Linux specifically) and the
reasons the QNX OS hasn't been released under the GPL despite the
company's move toward a more open source approach to source
"...First of all, there's a lot of common ground. QNX
and Linux share APIs, tools, etc. so that Linux developers can
easily learn QNX, and vice versa. Actually, you can think of QNX
and Linux as providing a very nice form of synergy. Together, they
allow developers to leverage the same skill sets across a very wide
spectrum of applications -- much wider, in fact, than any single
operating system could do on its own.
Nonetheless, they are different. While they share programming
interfaces, QNX is inherently realtime, whereas Linux is a
general-purpose OS. QNX has a microkernel architecture (i.e.
drivers, protocols, and file systems are dynamically upgradable,
memory-protected processes), whereas Linux follows a far more
traditional "monolithic" kernel architecture. I can name other
differences (e.g. QNX is inherently network-distributed, QNX can
scale smaller, etc.), but the point is that QNX and Linux are
different tools suited to different jobs. For example, QNX is
extremely well suited to the network-distributed architecture of a
high-end router. It's also a superior choice for small,
memory-constrained Web appliances or for any application that
requires `hard' realtime determinism.
I'm only talking about technical merits here. But you also have
to consider the company and people behind the QNX RTOS. We serve
the embedded market, and embedding is hard stuff. OEMs building
embedded products have very complex requirements and expect a
phenomenal amount of expertise and experience on the part of their
OS vendor. That's where we have a real edge, since we've been in
the embedded business for over 20 years. We know the needs of
embedded developers intimately."