Re: Jack Ganssle's column, “The cost of insurance.” There is a middle ground between VxWorks and Linux.
QNX, since version 6.0, has a fully compliant POSIX interface and a bee-you-tee-ful microkernel architecture with get this ladies and gents restartable device drivers. Whoo-hoo flaky drivers don't crash the OS during development nor out in the field. Why didn't I think of that?
Seriously, you folks should look at QNX for your next embedded job. The memory (flash and RAM) footprints are much smaller than embedded Linux. The stability/availability is as good as anything out there, and it's got a POSIX interface , which means that you can develop portable POSIX code on cheap Linux boxen, test it out, recompile it for the target hardware under QNX, and be up and running in no time.
Furthermore, if you wish to join this newfangled “open source” thing we have going here, you can “port” ANY POSIX code to your QNX-based widget in about 3 minutes. And, as you know that includes mysql, apache, php, samba, boa, thttpd, djbdns, ISC dhcpd, and a few hundred million other lines of GNU/GPL/BSD/etc source code. Example POSIX sockets TCP/IP network code is plentiful and my bet is that if you are thinking about coding something up, it's already been done, documented, tweaked, and stress tested. Use it instead of coding in your own bugs.
With QNX you get all the advantages of an open POSIX development environment and all the advantages of a real realtime microkernel. QNX is not free but it is not expensive. And, as Jack pointed out in his column, think about how much your time costs before declaring something “expensive.” Our per-system costs for QNX licenses were very, very reasonable.
Having used it for a metro optical product development, which utilized multiple processor architectures (PPC and x86), I can opine that the build, compile, reliability, debuggability (GNU gdb), and portability aspects of QNX 6.x are all second to none. I wasn't a QNX-zealot beforehand; now I know better.
The author is an Embedded.com reader.