Foreword to the First Edition by Brian Stecher

For those of you who haven't yet read Rob's earlier book, Getting Started with QNX Neutrino — A Guide for Realtime Programmers, let me reiterate some of the comments made by my foreword predecessor, Peter van der Veen. Not only does Rob explain the how and why of the QNX philosophy, he also makes excellent points that all programmers should take note of, no matter what they're doing.

This book differs from the previous one by being — for the lack of a better word — more “concrete.” Not to say that there weren't plenty of examples in Rob's previous tome, but in this one they're presented as complete, fully functional programs, a number of which are currently whirring away at actual customer sites. Most unusual for examples in this kind of book, you're not just presented with the finished product — you also get to see the steps that were taken to get there in the design process.

If you want, you can treat QNX Neutrino as JAPOS (Just Another POSIX Operating System) and write your programs that way, but that misses the point (and fun!) of QNX. Rob's code shows you the other way — the QNX way. QNX extends the UNIX philosophy of “each program should do only one thing, and do it well” from user programs to the operating system itself and the examples in these pages take that to heart.

What programmer in the deep recesses of his or her heart hasn't wanted to write their own OS once or twice? QNX lets you have that fun without the pain, and Rob shows you how here with the code for two complete file systems and overviews of several more — some of which would send programmers working with other operating systems howling to a madhouse! :-)

The QNX OS source code has gone through a lot of changes since Dan Dodge and Gord Bell started working on it over twenty years ago — with several complete re-implementations — but the QNX design philosophy has never wavered. Start turning pages and let Rob take you on a tour through our house. It's a comfy place and there's room for everybody.

Brian Stecher, Architect, QNX Software Systems, September 2003