Previously, nick caruso wrote in comp.os.qnx:
We’re looking for a development environment and OS for an embedded
application, and QNX and VxWorks are both candidates at this point. I’d
be curious if anyone here who knows VxWorks would be so kind as to
contrast it with QNX.
Heh heh heh…
Ok, first I should say that my knowledge of VxWorks is over a year old, and I dropped out of class after the first day…
We (IFS) were at the same crossroads. Our requirements were: high reliability, minimal footprint, full MMU support, flash file system, x86, and gui development tools. We had narrowed our choices down to VxWorks and QNX 4.
Here’s the comparison
VxWorks fits into 40-50k. QNX is heftier (our .boot file is about 500k). QNX is smaller than Linux, but bigger than OS-9.
VxWorks runs on practically everything. QNX 4 only runs on x86 (but QNX 6 supports PowerPC, MIPS, and maybe ARM).
VxWorks had an optional component (i.e., you pay extra for it) that lets the programmer MANUALLY set protected regions in memory. QNX does virtual memory “as God intended” - each process lives in it’s own protected, virtual address space. QNX is POSIX, so it handles memory just like Linux, Solaris, etc., except that it doesn’t have a swap file. BTW, VxWorks doesn’t have real processes like QNX. What they call tasks are really threads. You don’t even get to write your own main()… your code gets compiled in with everything else - one big, happy namespace!
VxWorks had a flash file system as a third party option. QNX has one-stop shopping.
VxWorks had Zinc (a GUI library) and an HTML-based UI tool. QNX has Photon (think of it as a light-weight form of X Windows) and Phab (an integrated GUI application builder). Phab has definitely saved us some time.
Presumably, the VxWorks executive is flawless since there’s not much to it. QNX 4 is pretty solid, but hiccups do happen. QSSL has to support a tremendous variety of PC hardware, as well as a GUI, a web browser, etc. Still, I haven’t seen anything that would make me question our decision to go with QNX.
Licensing costs per unit were very similar. The cost of development tools, however, was quite different. 2 VxWorks seats cost approximately $40K; 2 QNX seats (including 1 Phab seat) cost about $8K. Also, Wind River charges a “per project” fee - if you use the development tools for another project/product, you have to pay them a percentage of the original tool cost. They also have a yearly maintenance fee.
If you’re going to be cranking out a million widgets per year at $50 per widget, and if each widget only has to do 1 thing (like control a CD player), VxWorks may be the way to go. Otherwise, I’d recommend QNX.
… or embedded Linux.
DISCLAIMER: All of the above is my opinion ONLY. My employer is not responsible.