1. Since the acquisition of QNX Software Systems by Harman International, has the direction of QNX's software or strategy changed?
Vince Davis: Harman has taken the attitude that QNX Software Systems knows what's good for itself, and that what's good for QSS is good for Harman's telematics needs. So basically QSS retains its autonomy. Having said that, some things have changed, and for the better.
Harman's financial backing has helped us go ahead with research and implementation that would have otherwise waited, so we can be more aggressive in delivering new technology to the marketplace. This means we can compete more effectively in the embedded arena against some of our larger competitors, such as WindRiver and Microsoft, and support new hardware faster, closer to its release date.
2. How is the competition going with Linux/Montavista? What are QNX's advantages over Linux?
Vince Davis: Real-time Linux is simply real-time kernel extensions running on top of a non-real-time kernel. I guess one could say Linux's advantages over QNX would be that it's more familiar to some customers since their developers know Linux already. In other words, our competition with Linux in the embedded space is with customers' comfort and prior investment with Linux.
QNX is better for real-time applications because it is built from the ground up with our microkernel which requires fewer system resources to run and less development time to customize. Linux's regular monolithic structure with extensions is a real kludge, so system deployment is nowhere near as efficient during development or runtime. Projects that have very specific requirements benefit greatly from our software.
We're working on a porting guide and some slick porting tools for release with QNX Momentics 6.4 to help ease developers from Linux to QNX. Changes are already minimal since we use POSIX, but we're doing everything we can to make moving to QNX effortless. Eventually we'll be including more GNU tools as well, making the QNX experience more similar to Linux than ever (see below for more details).
3. How does QNX compare to WindowsCE?
Vince Davis: WinCE is a lot of things to a lot of people, and to discount Microsoft in the embedded market is foolish. We're always keeping abreast of competitor's progress, and having said that, QNX Neutrino compares to Windows CE favorably both in mindshare and technology.
The embedded market is a lot different than the desktop market, and Microsoft's desktop offerings are far from being reliable and stable. Microsoft has had to work very hard to make inroads to the embedded world beyond its existing partners. A lot of people see using software from Microsoft as a bad bet and tend to stay with proven technologies from established embedded market players.
As far as the technology goes, WinCE was once based on a sub-set of the Win32 API but has evolved on its own since then. So if you're familiar with Win32, writing for WinCE shouldn't be much of a problem. The problem lies in that Win32 was made for the desktop and was never that elegant; it was more of a forced march with a lot of hacks and fixes along the way.
QNX offers the standard POSIX API, which makes porting Unix software a breeze. Alongside that we offer Photon which was specifically built for running on small system with limited resources, so developer won't have to sacrifice a lot of the system to include a graphical interface. There are also many third-party libraries for use in writing software for QNX platforms.
The kernel of WinCE is specially written for WinCE and its specs aren't publicly available, but it is used in some soft real-time applications. It's probably a monolithic kernel, which compares poorly with QNX's microkernel model. In QNX the kernel just passes messages and talks to hardware, and all other processes — from TCP/IP stacks to Photon applications — run as processes outside the kernel.
4. A few years ago there was an interesting project, eQip. Are there any plans for smartphones or PDAs?
Vince Davis: eQip stand for "Embedded QNX on Intelligent Platforms" and began as an effort to port QNX Neutrino to the iPaq, but quickly broadened to other PDA platforms. It was basically the QNX platform for PDA systems. The project stalled out in early '04 for a number of reasons, one of which was that QNX integrated the efforts this project was focused on, making it redundant.
As for what QNX's plans for smart phones and PDAs are, I can't talk about a lot but I can say it's the one market where QNX is underrepresented and that's changing. QNX makes an excellent phone/PDA operating system platform, especially with QNX Neutrino 6.3's new energy management. I'd keep an ear open in the next year or so for more news regarding QNX on phones and PDAs.
5. Are there plans for a new desktop release of the QNX RTOS for x86? If yes, what features should we expect?
By the second half of '06 we'll release QNX Momentics 6.4, which will include the QNX Neutrino RTOS 6.4. This upgrade will be a large step forward for the platform just as QNX 6.3 was from QNX 6.2. Among the advancements:
- Integration of SMP support into one kernel. The SMP code is mature enough to sit in with the main kernel without a performance hit, so out of the box QNX will support up to four processors.
- More of the GNU software library is being ported to QNX. With QNX 6.4, QNX will host all of the typical command-line tools a regular distribution of Linux would include.
- Photon will support more modularization for ultra-embedded devices. There's some tweaks to how windows are rendered and buffers are retained, so there'll be less of a footprint than before.
- Compiles using remote resources, more command-line tool support in the GUI, more board support packages, GCC 4.0 integration, and better support for older target versions.
- Support for the latest Intel processors and chipsets, including the Pentium M and dual-core processors. QNX 6.4 should also be running on Apple's first wave of Intel Macintosh systems as well.
6. Do QNX Neutrino releases have code-names during development?
Vince Davis: Yes, though these generally aren't used beyond the development cycle. QNX 6.0 was Amiga, since it was supposed to be Amiga's new operating system. QNX 6.1 went by Homo Erectus because it was the first entirely QNX-driven release — our first to stand on its own — and Patches A and B were called Neandertal Man and Cro-Magnon Man respectively. We dubbed QNX 6.2 A Night at the Opera and its follow-up, QNX 6.2.1, A Day at the Races. QNX 6.3 was Godzilla and Service Pack 1 was Son of Godzilla. QNX 6.4 goes by Overfiend.
7. What are the minimum chip speed and memory requirements for the QNX Neutrino operating system and QNX Momentics development suite?
Vince Davis: Keep in mind the requirements and recommendations we list are for the QNX Momentics development suite and not the operating system itself. Minimum requirements for QNX Momentics 6.3 are a 700 MHz Pentium III with 256M RAM. We recommend a 2 GHz Pentium 4 and 512M RAM.
Minimum requirements for the QNX 6.4 development suite are likely to be around a 2 GHz Pentium 4 and 256M RAM. (Minimum requirements aren't ironed out until very late in the development cycle, and usually end up being the low-end of PCs at the time of release.)
Happily for many developers and enthusiasts, the QNX operating system will run on much less powerful hardware than what the development suite requires. The bare minimum for RAM is 32M (though 128M is more realistic for actually doing anything) and we've gotten QNX to run on some pretty old processors.
I have QNX 6.3 SP1 running on a dual-233 MHz Pentium Pro system with 512M RAM while another engineer has QNX 6.2.1 running on a 100 MHz Pentium box with 128M RAM. If you want to get QNX running on something older, adjust the boot iso's startup script and go to town. Serious developers will definitely want to stick to something above 500 MHz, however.