Oct 9, 2007

QNX Missed the 64-bit Bus

Why, on my eight-way Xeon 5365 system, does QNX only report a single 1.333 GHz chip? And why, after spending thousands dollars on RAM, does QNX only see four gigabytes of it? These were the first signs something was amiss with this tiny operating system touted as being capable of running cars, hospital devices, and entire networks all from a single floppy.

And being on an ISO apparently doesn't help. Freely available from their site with a gratis license, I decided to give it a spin after reading the announcement that QNX Software Systems had Open Sourced their kernel and, a week later, their multi-core support. They had even rolled up the last several years' worth of updates, something devotees had been clamoring for.

But all to no avail. After repeatedly power-cycling my system, I stumbled upon a nice little quirk of the OS. To run QNX with SMP or MMCP support, you have to manually backup, copy, and rename an alternate kernel into place from the command line. If this were Mac OS X there would be a mutiny. QNX ought to keep that in mind if it wants to be taken seriously.

So now, with all eight 3 GHz cores showing, QNX still only saw four of my thirty-two gigabytes of memory. Returning to EFI, I saw QNX was booting in 32-bit mode. After poking around the operating system, QSS's site, and finally Google, I came to the cringe-inducing conclusion that QNX wasn't booting in 32-bit mode — it's just 32-bit. Period. Not 64-bit, not mixed-mode, nada.

Let's allow that to sink in. QNX is a wholly 32-bit operating system. The CPU industry has moved to 64-bit, which addresses up to 16 XB of memory, two magnitudes greater than what is typical today. Think of the difference between kilobytes and gigabytes, and then imagine being able to use only four kilobytes of your sixteen gigabytes of RAM. Infuriating, no? Not to mention stupid.

Truth be told, I was so disappointed in QNX that I completely gave up when I realized top wasn't installed with the OS. I did install the GNU package, didn't I? If my name were Dan Dodge I'd be ashamed of myself. Even Linux includes a more or less complete UNIX command utility set.

I understand having to run a car with 96K of system memory, or an emergency respirator with half that much, but with the breadth and depth of networks today leaving QNX only capable of addressing four gigabytes is shortsighted. We're talking QNX developers, the platform's lifeblood, not being able to use the latest systems to make great new QNX apps with.

If you're running a Pentium 4 and don't particularly care about having a usable OS or developing good software, check QNX out. If you're pushing the limits, however, don't expect QNX to push with you.