Today we host an interview with Chris McKillop, software engineer of QNX Software Systems. Chris is probably the most well known QNX engineer as he is always helping out the QNX community in forums, IRC etc. In this interview we talk about the embedded space, the competition but also about the QNX Momentics 6.2.x release (preview with screenshots), a free OS to download and try out on your PC (~260 MB ISO image, ~1 GB primary partition required for installation).
1. Some developers swear by the “real time” kernel architecture, while others prefer more traditional kernels. What is your belief? Can a real-time kernel do the same kinds of jobs as well as a monolithic kernel, and vice versa? Or some things are better done with a real-time kernel and other without?
Chris McKillop: Actually, a real-time OS *can* use a traditional monolithic kernel. The real question is whether a real-time microkernel – such as the one used in QNX Neutrino – can do everything that a traditional monolithic kernel is capable of.
Short answer: Yes.
Of course, microkernels and monolithic kernels both have their strong points. Monolithic kernels, for example, must either use a single “big” kernel lock (BSD) and suffer the consequences of poorer scalability or use many finer-grained locks (Linux) and suffer the consequences of complex system design, such as potential deadlocks. With a microkernel you don’t have these problems since the kernel does very little and uses existing thread-level scheduling to naturally achieve scalability and parallelism. Monolithic kernels, on the other hand, have an easier time sharing some resources – buffer caches, for example – since all of their drivers reside within the kernel. Nonetheless, these kernel-space drivers also make kernel faults more likely.
In my experience, a microkernel will do anything a monolithic kernel can, but with added benefits. For instance, it lets your system recover gracefully from faults in drivers; it also allows system services to be upgraded dynamically. What’s more, a microkernel lets you do system-level coding and debugging at the process level. Not having to reboot on each test-debug cycle makes for much shorter development times.
Regardless of whether you use a micro or mono kernel, there is a lot of value in designing your system with real-time in mind. Doing this forces you to be more aware of what is going on since you are always trying to achieve the lowest possible overhead and the fastest interrupt-servicing times. Sometimes, standard real-time schedulers – FIFO, Round-Robin, and so on – aren’t the best options for a desktop system, but you can add in other types of schedulers without compromising the system’s real-time capabilities. For example, in an OS that supports multiple scheduling types, you can keep your drivers running with a FIFO scheduler while moving your applications to an adaptive one.
2. What are the biggest obstacles today to “make it” in the OS consumer market? Hardware compatibility, hype, money and focus, app support, something else or all the above?
Chris McKillop: It’s important to remember that QNX targets the embedded market. Our customers build networking equipment, medical instruments, in-car telematics systems, and other mission-critical “stuff.” So while we do end up in some cool consumer devices, we’re not targeting the desktop.
To survive in the embedded space, your technology has to be very, very solid. For instance, people use QNX Neutrino in systems where just a few seconds of downtime can mean loss of life or huge financial penalties. Being “good enough” doesn’t play well in this space.
The desktop OS space is very different. To attract users, you need excellent – and very aggressive – marketing. To keep users, you need lots of third-party software that people can buy in their local computer stores. Achieving all of this takes very deep pockets. In fact, as long as you have strong marketing and a large pool of applications that people can buy, you can get by with a “good enough” OS.
Consequently, I don’t believe that any single vendor marketing their own OS can make a real dent in the consumer market. Instead, find a niche, work it hard, and let Apple and Microsoft duke it out for Mom ‘n’ Dad’s computer. 🙂
3. The Linux kernel has made strides lately in the embedded market, mostly with the strong presence of MontaVista (after the demise of Lineo). Do you see Embedded Linux as a serious threat to QNX and to other “traditional” RTOSs in a similar manner as Linux is threat to UNIX today – or do you think there is space for everybody? And the real question truly is, does Linux scales as well down as it does up?
Chris McKillop: The embedded market is an interesting place. The vast majority of embedded systems shipped in the world run an OS written in-house by the people who built the system. This is where open-source OSs may gain some traction. Instead of maintaining their own in-house OS, a company could turn to established bases such as NetBSD and Linux. In fact, I honestly think that NetBSD is doing far better in this space than Linux, but since there are no marketing machines behind it, you don’t hear about it in the press.
Can NetBSD or Linux be stripped down to a smallish embedded device? Yep. Does it happen magically? Nope. It requires work and maintenance on the part of the company using those kernels. Does the OS become an RTOS because it now smaller? Nope, it is fundamentally the same general-purpose architecture, but with less stuff.
Really, choosing something like Linux or NetBSD as your base means you are signing up to be responsible for maintaining your embedded OS. And when you do this, it doesn’t take many days of work to eliminate the cost benefits of going with a “free” alternative. In comparison, a commercial RTOS tailored for embedded development can let you focus on what’s important – getting product out the door.
4. What new features are you working on for the future of QNX Neutrino RTOS? What most clients are asking for these days? Have the demands on RT embedded OSs changed through the years? If yes, in what way?
Chris McKillop: There are lots of cool features coming up in the next release. The Photon microGUI, for instance, is getting an internal face lift to make it scale even smaller than it does today. Beyond that, I’m not at liberty to say – though I will point out that we’re about to release a new power management framework for mobile devices. Existing power-management models tend to impose rigid power policies on your system. In comparison, our framework offers a lot of fine-grained control over exactly when peripherals are powered up or down. This is something that our in-car telematics customers are particularly excited about.
As to your second question, demands on RTOSs are definitely changing. Today, customers want RTOSs to be more and more like general-purpose OSs but without sacrificing real-time behavior. We’ve got customers using QNX Neutrino on 4-way Xeon boxes with 6G of memory doing massive amounts of network data processing. That isn’t something your dad’s RTOS – or most RTOSs today! – could do. 🙂
5. What can you tell us about the future of QNX Momentics? There has been only a small update over 6.2.0 in 1.5 years, and we have heard nothing regarding any future plans for this desktop version of QNX. Has the ‘trick’ of marketing QNX Momentics as the development platform of QNX Neutrino RTOS paid off?
Chris McKillop: Actually, the commercial release of QNX Momentics Professional Edition 6.2.0, our Eclipse-based development environment, began shipping just over a year ago, in June 2002. Since then, we’ve added many enhancements. For instance, version v6.2.1, which shipped in February, introduced the system profiler, a very slick visualization tool that lets you pinpoint subtle errors or performance bottlenecks in your application. We’ve also added a lot of other things to make day-to-day development work easier: faster incremental compiles, better tool integration, human factors improvements, and, importantly, a large number of board support packages – these are critical to giving embedded projects a jump start.
There are really two versions of QNX Momentics: 1) the Eclipse-based Professional Edition, or PE, which provides a graphical IDE and runs on Windows, Solaris, or QNX Neutrino development hosts; and 2) the Noncommercial Edition, or NC, which provides GNU tools and runs on an QNX Neutrino host. The important thing to remember is that QNX Momentics is the development environment, and QNX Neutrino is the OS. So, when you download QNX Momentics NC 6.2.1, you are actually installing QNX Neutrino on your computer and then installing the QNX Momentics environment under Neutrino.
If you go to the Product Evaluation section of www.qnx.com, the difference between PE and NC is nicely spelled out.
As for improving the development environment, yes, there is work going forward in this area all the time. A good percentage of our customers use the self-hosted environment for their QNX development. Since it is built using the same components that our customers embed in their systems, anything we do to make their systems better also makes the self-hosted environment better. There has also been a lot of work done to enhance SWT on the QNX Photon microGUI to make the Eclipse IDE run faster and more smoothly.
6. I remember when the QNX RTP (Momentics’ old name) was marketed as a development platform for your Internet Appliance initiative. Today we know that the IA market never took off. Why was that, in your opinion?
Chris McKillop: The RTP, the precursor of today’s QNX Momentics NC, was never intended for the IA market only. Like NC, it was for anyone who wanted to either learn about QNX technology, use it at home or school, or prototype systems without having to get a purchase order signed by their boss. Mind you, QNX was doing a lot of IA marketing at the same time; in fact, we were built into a number of IA devices – 3Com’s Audrey, for instance. That would account for some of the confusion.
As to why the IA market didn’t take off, a number of reasons came into play. Price was a huge factor: PC prices were dropping like a rock and PCs offered more functionality. It’s also very hard to sell benefits like lower energy costs and taking up less space to people who drive fuel-guzzling cars and live in huge houses. 🙂
Interestingly, many of the same features that made us popular in the IA market also make us popular for automotive. In fact, one reason QNX Software Systems has done so well in the tech downturn is that we never made the mistake of focusing on just one market segment. Some of our competitors put most of their eggs in telecom, for instance, and are still trying to recover.
7. We talked about the Linux competition in the embedded field, but what do you think about the Windows competition? Microsoft offers already 2-3 micro versions of its Windows OS for devices and they try to gear their OS mostly for PDAs, writstwatches, and phones. Does QNX Software feel any danger from Microsoft’s presence in the field?
Chris McKillop: Anyone who fails to respect Microsoft’s power and position does so to their own detriment. But unlike the PC space, Microsoft isn’t selling to consumers anymore. So marketing alone isn’t enough, you need solid technology. And that’s where QNX Neutrino excels, hands down. Of course, Microsoft has good tools (leveraging their experience from Visual Studio) and lots of ties to hardware vendors from their years in the PC market. But even there, we are catching up very quickly with QNX Momentics. Because it is based on Eclipse, our customers are beginning to leverage the many third-party tools being developed for the Eclipse platform, such as Rational’s ClearCase Eclipse plug-in.
One of the nicest things about the embedded space is diversity. I seriously doubt that any one company will ever achieve the >90% market share that Microsoft currently enjoys in the PC space. And, in my opinion, that’s a good thing for everyone. Competition breeds innovation. Imagine how much better a certain large company’s web browser would be today if Netscape still had 30-40% of the browser market…