I’ve got a new idea for data compression. Let’s just remove all the vowels from the English language! Sure, it may look like Welsh when we’re done, but just think of all the space we’d save.
That thought occurred to me during a good, long talk with the nice folks at QNX. You remember QNX: the embedded real-time operating system (RTOS) made by the company of the same name based in Ottawa, Canada. QNX employs about 800 people, so this is not a small startup. Indeed, QNX is probably one of the larger and more successful RTOS companies out there. So successful, in fact, that Research In Motion (the BlackBerry company) acquired the firm a few years ago. QNX has been operating under the RIM umbrella ever since.
To say that has been a mixed blessing would be generous. Back in 2010, the year RIM acquired QNX, things were looking pretty rosy for both Canadian companies. Since that time, BlackBerrys just haven’t been selling the way they used to and RIM’s fortunes have headed south. Though that’s obviously no fault of QNX, the software firm can’t help but catch the splash damage from its proprietor’s bad press. QNX’s new parent turned out to be less rich uncle and more ailing elder.
Nevertheless, QNX itself has been doing just fine, thank you very much. The microkernel-based RTOS can be found in hundreds of completely different and unrelated applications, as with most embedded operating systems. But QNX is particularly popular in automotive systems. At last count, QNX appears in more than 20 million vehicles scattered across 200+ different car models.
You’ll almost always find QNX behind the dashboard. That is, it powers the telematics and infotainment, not the drivetrain. That suits the QNX’ers just fine and, in fact, plays to QNX’s strengths. The company has always been proud of two things: the RTOS’s modularity and its user interfaces. It’s that human-machine interface (HMI) that attracts automakers to QNX. They generally aren’t interested in developing new GUIs from scratch, so they favor an RTOS that has HMI building blocks already installed. On the other hand, those same automakers also like to customize their GUI so that a Chevy OnStar doesn’t look like Hyundai’s BlueLink or Chrysler’s MyGig. QNX makes it easy to “reskin” the user interface to provide brand-specific look and feel.
Lately that work has gotten tougher. The Canadian coders firmly believe that HTML5 is the wave of the future, and they’re spending a good bit of effort to consolidate their GUI and HMI tools around that standard. As most Web developers will tell you, HTML5 provides most of the bells and whistles and levers and gears you need to develop a nicely featured user interface; kind of like Flash without the virus vectors or Apple antagonism. The trouble is that, like Flash, HTML5 is not easy to run on a lightweight embedded system. The QNX operating system itself is very small, light, and modular. HTML5, not so much.
Some of this effort takes the form of acquisition: QNX acquired Torch Mobile awhile back, a company that was focused on HTML for, well, mobile devices. The Ottawans have also spent considerable effort optimizing their code for various embedded graphics processors (think Mali or PowerVR), which is no mean feat. Programming a GPU can be tough; there’s even more variation between GPU architectures than there is between different CPUs. Although QNX runs on just about any popular CPU architecture you can name, that turned out to be the easy part. Supporting today’s elaborate GPUs is turning out to be a real challenge, but one that pays off in improved GUI performance and user experience.
And sometimes the demos can be fun. At this year’s CES, QNX showed off a Porsche with an “ultra HD” hands-free cell connection. The car’s audio was tuned specifically for the cabin to produce remarkably natural and realistic voices coming from a remote caller. Instead of the tinny voices we associate with cellphones, this one sounded rich and full-spectrum. It was even in stereo. This is one area where the company’s affiliation with RIM comes in handy. The BlackBerry guys definitely know how to handle voice processing over cellular connections.
At another show, a QNX-equipped Jeep automatically posted Facebook updates as its titular driver changed tracks on the in-dash MP3 player, all operated by voice command. (I’m not entirely sure I’d want to know what every Facebook user is listening to as they drive, but it makes an interesting demo nonetheless.)
On the subject of silicon, QNX is officially processor-agnostic, but…. Like most software companies, they don’t promote one CPU family over another. The customer is free to choose whatever CPU they want, and QNX will happily supply the appropriate binaries. Yet, over time, they’ve noticed a distinct increase in ARM-related requests, at the expense of other CPU families. Automotive customers, as well as those in more traditional embedded and industrial areas, have slowly but surely started shifting to ARM-based processors. Again, QNX is neutral in all this, but the company does admit that having one dominant architecture does make life easier for them. There are fewer development tools to support, less cross-platform development, less effort spent in porting, and so on. Ideally, the whole world would standardize on a single CPU and QNX could focus on that one alone. We may not be there yet, but we’re headed that way, and that suits QNX just fine.
At the rate QNX is going, it just might become one of the most ubiquitous, yet invisible, operating systems in the world. Whereas iOS- and Android-based gadgets are usually obvious (sometimes annoyingly so), and you can spot a Windows or MacOS box from forty paces, QNX is always hidden: a truly embedded operating system. Even its visible face, its GUI, is reshaped behind client-specific customization. When you see someone’s shiny new 2013 model roll off the showroom floor, you can point and say, “There goes the new QNX!”