But, one key difference between the QNX approach
and that of
most other current OS's is the microkernel architecture.
Instead of a BIG monolithic kernel with ALL the drivers
installed (or, extra glue for LKM support, etc.), a microkernel
based design treats all of these as components which can be
plugged together. And *talk* to each other (instead of being
invoked "from above").
Yes, you just have the IPC overhead, though.
Not sure if it's IPC or cheaper hardware, but large network operations on my
Macintosh (System 10) bring the machine
much closer to it's knees than any monolithic UNIX or even VMS on a VAX 4000/200. NB
- I haven't used the microkernel
based Tru64 yet.
Microkernels are neat in theory, but a well-trimmed monolithic kernel seems to do pretty
well with not too much space.
I think the "problem" with the microkernel approach is trying
to compare apples and oranges. Getting a conventional UN*X
running on a microkernel architecture and trying to have that
compete *performance wise* with a monolithic kernel that
has been tweaked for MANY years is a no-win position.
The appeal of the microkernel approach is getting multiple
OS's to coexist on the same box (at the same time!) as well
as a cleaner conceptual design.
It also lends itself more cleanly to distributed systems
(which are difficult to implement using traditional
monolithic kernels which must make all the communications
very *visible* -- vs. their implicit roles in microkernel
approaches)