VxWorks is POSIX-compliant and has the strange sense of feeling like Unix but with all commands internal to your program and as functions. Device drivers follow the Unix model, and while the VxWorks kernel itself is closed source, source to all available drivers is provided. VxWorks usually uses a gcccross compiler to compile for its targets, but this is often hidden behind the TornadoIDE, which supports a point-and-click configuration mechanism for VxWorks that rivals similar development facilities in Microsoft's Visual Studio.

While it is a POSIX-compliantreal-timeoperating system like QNX, there are notable differences that reduce the apparent competition between them. Unlike QNX, which has a microkernel architecture, the VxWorks kernel is fairly sizeable — about 300k if I remember correctly (the Wind River website claims it's scalable down to small numbers of kilobytes, but this must involve some severe cutting down of the OS, while a full QNX system installs off of a handful of floppies last time I used it). QNX is x86-oriented, with few forays into other processors (though this is changing), while VxWorks is available for PowerPC, ColdFire, Motorola 68k, ARM, x86, MIPS, and SuperH. QNX's network facilities
are generally more primitive than VxWorks as well, and QNX has no IDE. QNX also compiles using a propietary compiler, while VxWorks, as stated above, uses gcc.

For more information, you'll probably want to check out http://www.windriver.com/.