posted by Eugenia Loli on Mon 14th Jul 2003 17:38 UTC
IconToday 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?

Click for a larger version 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.

Table of contents
  1. "Interview with Chris McKillop, Page 1"
  2. "Interview with Chris McKillop, Page 2"
e p (0)    48 Comment(s)

Technology White Papers

See More