QNX Porsche

When BlackBerry 10 launches this week, it will mark a major transition in the underlying operating system that powers BlackBerry. From the moment that BlackBerry 10 hits the market, the operating system that powers devices will now be the QNX Neutrino Real Time Operating System (RTOS).

BLACKBERRY'S SECOND MAJOR OS TRANSITION

Most readers may not realize this, but this is actually Research In Motion's second major platform transition since the original BlackBerry products hit the market in 1999. The first devices were actually programmed in C++. They ran on a single AA battery cell, which lasted 3 weeks for the average user. They had a data modem that could move 8 kilobits per second. There were no third party apps.

By 2001, RIM launched its very first BlackBerry device that actually made phone calls too. This device, the BlackBerry 5810, had an operating system written entirely in Java 2 Micro Edition (J2ME). This allowed RIM to improve security by isolating the radio code from the application code. It was also much easier, at the time, to find programmers who knew Java, so it helped the ecosystem grow.

Founder of Research In Motion, Mike Lazaridis, is a brilliant man. He invented the BlackBerry and is largely responsible for its success. Yet he could be stubborn. I remember speaking to him at an informal gathering of financial analysts in Orlando a few years ago. For a minute or two, my conversation with him was uninterrupted. Other analysts were speaking to other executives. Smart technology folks were starting to make noise that RIM was running out of room to further advance the Java platform. I asked Lazaridis if they need to redo the BlackBerry OS. His reply was crystal clear. I'm paraphrasing, but his answer was pretty much, "Oh we'll never rewrite the OS. It would be too risky."

What he meant by this, I assume, was that BlackBeryOS had amassed industry leading security certification. Re-writing the OS would mean starting over and risking these certifications.

NEVER SAY NEVER

For many investors, developers and other RIM-watchers, it wasn't the first time the RIM founder said "never". Over the years we've been told that BlackBerry would never have a color screen, and would never include a camera. Ask anybody who has been following RIM since the early 2000s and you'll surely be provided with a longer list of things RIM would never do.

But in April of 2010, RIM announced the acquisition of QNX Systems. Mike Lazaridis had clearly changed his mind, but in order to keep things quiet, he wasn't talking about the company's next big OS transition yet. One week after RIM announced the QNX acquisition, I held a "fireside chat" style of interview with the BlackBerry founder in front of institutional investors. When I asked about QNX, he was very cool about it and said, "We see the car as the ultimate BlackBerry accessory". This was, of course, a reference to the fact that QNX has been embedded into the control systems of over 200 models of cars including high end names like Audi, Porsche and Jaguar.

QUIETLY EXPERIMENTING IN A NON-CORE MARKET

While Lazaridis wasn't about to tell the world that Java was a thing of the past (that would only scare developers off), the acquisition of QNX gave RIM a way to build a brand new device running a brand new operating system.

That new device would be the BlackBerry PlayBook. According to many former RIM employees I've spoken to, Lazaridis always recognized that mobile computing would advance rapidly. He wanted to build a laptop or a tablet to enter this new market. Lazaridis understood this long before Apple launched the iPad. But the iPad is probably what gelled the idea of a tablet in Lazaridis' mind versus a netbook or laptop form factor. 

The man to make it happen was Dan Dodge, the founder of QNX Systems and the guy who wrote the Neutrino OS. Dodge, and University of Waterloo buddy, Gordon Bell, founded QNX back in the early 1980s. They released the first version of QNX in 1982. Little did they know they'd end up powering BlackBerry hardware 30 years later. At the time, QNX was built for embedded computing systems.

In 2000, almost 20 years after the first version of QNX hit the market, the QNX team had completely re-written the OS and launched Neutrino. As Dan Dodge describes it, "QNX is used in systems where the cost of failure is very high". The Neutrino operating system is used to control huge Cisco Internet routers, lighting and equipment for huge Las Vegas shows, slot machines, windmill turbines, and nuclear reactors, just to name a few markets.

The way Neutrino has been architected also makes it ideal for today's modern mobile computing platform, which is explained in more detail below.

The proving ground, inside of RIM, was the PlayBook. If you measure the PlayBook's financial contribution to RIM, it was a disaster. But if you look at the bigger picture, it accomplished an important goal. It proved that the QNX Neutrino OS could massively succeed in powering a mobile computer with all sorts of rich media applications and a highly responsive touch screen interface. QNX did it's job. The rest is up to application developers and user interface designers.

WHAT MAKES QNX SO PERFECT FOR MOBILE?

QNX was built as a super tiny OS. It has something called a Micro Kernel architecture. This differs from Unix, MacOS and Windows which have much larger, monolithic kernels. Even the older Java-based BlackBerry OS is a monolithic system.

Ultimately, a micro kernel design gives you an OS that is easier to maintain, more secure, and much more flexible.

If you've ever been a Windows user, you're familiar with the blue screen of death. You know what I mean, right? Your computer crashes, the screen turns blue, and some total incomprehensible message is displayed on your screen telling you about a fatal system error.

Huge monolithic kernels are more likely to run into these "blue screen of death" problems because various applications and processes all share the same memory. Let's say a third party app has a bug in it that overwrites memory allocated to another application, or a core part of the operating system. The entire system can come crashing down, and it would be very hard to figure out what's causing the problem.

The Neutrino micro kernel architecture avoids this problem by allocating virtual memory to each process. There are only two required elements in a QNX Neutrino system. The first is the micro kernel. The second is the process manager. Everything else runs as a process, and is managed by the process manager, and handed off to the micro kernal OS for execution. If a buggy application accidentally tries to write into memory that it doesn't control, the process manager will recognize it as an address not allocated to the app, and tell the kernel to shut down the problem on the spot. No blue screen of death.

That's why it is exceptionally rare to hear of PlayBook owners who complain that their device crashed, while BlackBerry handhelds can crash much more often. Individual applications can crash. But the core OS? Rarely.

Within QNX, everything runs as a process that plugs into the main OS. Things like TCP/IP or wireless communications are all processes. Drivers are all individual processes, as are each application running on the device.The keyboard, the gesture recognition, and the rendering of anything to the screen are all individual processes. If something goes wrong, in most cases, the kernel can reboot these processes without you, the user, even knowing that anything happened.

Metaphorically, you can see this on a PlayBook or BlackBerry 10 device. Every time a new application loads, you can see a new thumbnail (or active frame) open up, and the application lives within that frame. When the frame is out of view, the app is still running. It's just not rendering anything to the screen because the process in charge of rendering to the screen is being asked to render something else. In this way, the PlayBook OS and the BlackBerry 10 OS are true multitasking beasts.

When it comes to security and reliability, this micro kernel architecture with protected virtual memory is ideal. Rogue apps can't steal data they haven't been granted access to.

The Neutrino OS is also fully POSIX compliant. In case you are wondering what this means (and it's important), POSIX stands for Portable Operating System Interface for UniX. It's a set of standards that programmers adhere to when writing code. In other words, it's a bunch of API specifications. For QNX to be fully POSIX compliant means that it is very easy for Unix, Linux and even MacOS developers to write code for QNX.

QNX Neutrino is also ready to accommodate future demands. It was designed, up front, to run on multi-core processors. I'm not talking about 2 and 4 cores, either. I'm talking about 32, 64 or even more. And these processor cores can even be distributed geographically. In theory this means that one instance of the OS could run multiple devices, screens, and in multiple locations. I won't pretend to be smart enough to envision what this means for the future, but I think it's safe to say that QNX can do things that other operating systems, such as iOS or Windows Phone 8, were never designed to do.

EVERYTHING ELSE RIDES ON TOP

The QNX Neutrino operating system is not the entirety of a BlackBerry 10 device. It's just the foundation. When Lazaridis brought Dan Dodge up on stage at DevCon 2010, he introduced QNX with a building metaphor. If you want to build a skyscraper, you don't build it on top of the foundation for a house. You have to properly engineer the skyscraper foundation to bear the immense load that will be placed upon it.

QNX is a skyscraper foundation. It's ready to handle whatever your throw at it. But just like any other computing environment, the quality of the core applications and user interface matter. After all, you don't ever inspect the foundation of a skyscraper. You just assume it's there, working.

In much the same way, QNX can be running perfectly well, and still result in a horrible experience if the core apps are ugly, non-responsive, lacking features, or crash due to buggy programming.

That's why a QNX-powered BlackBerry, at least in theory, should be exceptionally stable. But various processes, which are part of the BlackBerry system, need to be just as stable to deliver an incredible user experience. For example the current PlayBook OS implements the on-screen keyboard using Adobe Air. Sometimes it gets bogged down and doesn't respond. This has nothing to do with QNX and everything to do with the keyboard process being executed by the kernel. In BlackBerry 10, the keyboard has been completely re-written in native code. Any user of the Dev Alpha can attest to the fact that it's much more smooth and reliable than the PlayBook's keyboard.

Same goes for the browser. The PlayBook browser was a huge step forward from the BlackBerry OS. But it's far from perfect. Again, this isn't a reflection on QNX, but instead a reflection of the quality of the work done by the BlackBerry browser team responsible for building it. The BlackBerry 10 browser has been completely rebuilt, and should perform significantly better as a result.

Overall, QNX proved its worth as an underlying kernel on the PlayBook, but many other components of the Tablet OS were rushed to market. With the launch of BlackBerry 10, RIM has completely the core apps that make up BlackBerry using native code. This is why we're confident it's going to be an incredibly smooth customer experience.

Read more