QNX is an operating system that all of us have used, but few of us realize it when we do. The OS was created in the early 1980’s by QNX Software Systems, a Canadian company, but the version we are previewing today (unreleased yet, version 6.2), based on the Neutrino kernel, was pretty much (re)written from scratch some years ago. QNX is used everywhere, from VCRs, to DVDs, to medical machinery and even satellites and space shuttles. Many of you maybe even have tried the old demodisk, a demo of the QNX4 RTOS, plus the previous version of the Photon GUI, fitting in a single 1.44 floppy. The desktop-enhanced version of QNX RtP (free for non-commercial use) runs on almost all modern x86 CPUs, and if we judge from the following screenshots, it looks pretty good for an embedded system OS.
The first version of QNX RtP (RtP==Real-time Platform) was released in September 2000, and it was downloaded from more than a million users off the web. QNX Software Systems has released several patches and updates since then, so today we are exclusively previewing version 6.2, which is still under closed beta test. Earlier versions of RtP could be either installed in its own partition, or as a big bootable image file off a FAT32 partition. As far as I can see today, version 6.2 is only available as a bootable ISO image (250+ MBs) ready to be installed in its own partition. I think it is wise of QNX Software Systems not to provide a FAT32 image file anymore, as a lot of users are now using NTFS under Windows 2000 or XP, a filesystem not supported by QNX, therefore the OS would not boot and would only create confusion among inexperienced users.
Installation is not difficult at all. Boot with the ISO CD, and follow the instructions to install. Only problem is that it overwrites the MBR with its own boot manager without asking you, which is not really a problem, just somewhat… rude.
You will need about 1 GB of free hard drive space. Anything more than that is certainly welcomed by the system. QNX RtP 6.2 installed fine on both of our BP6 dual Celeron systems, but it could not load at all on my CTX eZBook 800 notebook (AMD K6-2 300, 64 MB) most probably because of problems with the Fujitsu hard drive, being somewhat unconventional since many Fujitsu drives do not return the correct ‘IDENTIFY’ string. [Update: QNX Software just sent me an updated bootable floppy disk that fixes the IDE driver problem. RtP 6.2 now boots wonderfully on my laptop. Thanks guys!]
QNX RtP has its own UI engine called Photon. Photon existed in the previous version of QNX 4 for years, but it is now enhanced to be more modern, more user friendly and it looks better. Users will not have problems finding their way around the graphical interface. The desktop has a taskbar with a ‘Launch’ menu and little menus for the running applications. Pretty similar to Windows’ taskbar. On the right hand side, you will find a sidebar that includes a list of application shortcuts and application plugins (cd player, virtual desktops, cpu/mem monitors etc). Consult the screenshots to get a feel how the sidebar looks like. Photon (still) does not support desktop icons, but the sidebar is there as a substitute for it.
There are GUI-based utilities to modify your networking setup, dialup and graphics drivers. But if you have to install new drivers, the action should be done ‘by hand’ (by using the command line).
There are lots of help files, but mostly documentation for programmers regarding several APIs rather than user-suitable docs. The best part of QNX is possibly its Package Installer. It is a really nifty installer, allowing you to download and install applications from several sources (hdd, cd, web), making the application adminstration pretty easy.
QNX RtP has support for anti-aliased fonts, and in version 6.2 we see extensive support for Asian fonts. The new version also brings improvements to the Mailer app, the Find panel, the file manager (meaning that it is now.. usable), the text editor, basic support for ATi TV cards, and a beefed up Photon graphics setup application.
There is also a very nice & consistent media player application, which supports .wav, mp3s, mpeg video and more. QNX Software Systems had also ported the XingDVD module that is able to play DVDs, but for some unfortunate circumstances, the XingDVD module was never shipped with any RtP version.
There is also an image viewer (with some basic manipulated functionality), the Voyager web browser (pretty much an equivelant or somewhat better to Netscape 3 capabilities) with support for Macromedia Flash and Real Player (however, I did not spot the Real Player addon in this specific RtP version). Voyager is so modular that you can even change its HTML engine and replace it (as a drop-in replacement) with Opera 5! You can download the Opera 5 binary from the Opera Software web site.
There are about 250-300 applications for QNX RtP so far. Among those you will find a rootless X Server, GTK+/Gimp/X11Amp ports, Python, Allegro, SDL, Mozilla, AbiWord, Apache and more. Unfortunately, the main web site for QNX-related news and software repository, QNXStart, has been down for more than a month now, making difficult tracking down all this software and enhancing the QNX experience.
The QNX Neutrino microkernel offers superior real-time response. With features like multitasking, threads, priority-driven preemptive scheduling, synchronization, and fast context switching (0.55 µsec on a Pentium III), the RTOS provides serious realtime performance. By real time, we mean that a command will be executed in the time it is expected e.g. immediately (but its priority can also be scheduled by the programmer), no matter what the conditions are. At first reading, this sounds great. But things are not so great when you have 1-2 videos playing and at the same time you are using the web or the doing a resource intensive search on your hard disk. Real Time is the absolute bless for embedded system purposes, but not so great for the ultimate desktop experience. When you only have one application running, QNX is incredibly speedy and responsive, add one-two more intensive apps, and the system becomes unnaturally slow and unresponsive (when compared to the behaviour of other OSes under similar circumstances). This is not due to multitasking reasons (which is implemented and works fine), but due to the real time nature of the kernel being more suitable for embedded purposes.
QNX and Photon is written in C, and the APIs are also C-based. There are three (!) third party efforts to add C++ bindings to Photon, but all these efforts are still far from finished.
Additionally, when developing a commercial product for QNX RtP, you should pay a license fee to QNX Software Systems before you will be allowed to release your product to the market. This may sound a bit restrictive to most people, but it is a fairly common practice in the embedded world. And we should not forget that QSSL is not focusing on the desktop market almost at all. QNX RtP is serving as the self hosted development platform for QNX-based internet appliances and other QNX embedded applications.
Other strong points of QNX is that it is POSIX certified, which means that people familiar with the Unix model will feel like home. There is even a port of the BASH shell. Massively scalable transparent networking is another of its strong points. More information here.
In QNX RtP 6.2 you will find many bug fixes and some new drivers. However, I somewhat got the feeling from the new version that QSSL is moving even more far away from a “desktop QNX.” A handfull of previously familiar apps could not be found in 6.2 (or at least, I could not find them). I lost track of phPDF, Real Player, phAB (the excellent RAD program), Java support, Renderware (3D engine), and even the 3-4 classic games that were included in previous versions!
I was somewhat dissapointed that drag-n-drop is still not supported Photon-wide, the DVD issue was still not resolved after 1.5 years, and 3D support seems to still only work with Glide and Voodoo3. A better performed filesystem would be welcomed too.
Version 6.2 does not bring a whole lot of new things over 6.1PatchA. The OS is, however, more polished and some fixes and new drivers are there, along with better printing support, but also a lot of things are now missing. There are no radical changes to QNX RtP. It is a fun ride, but without the QNXStart software repository coming back online soon and some more effort by QNX Software Systems on the desktop side of the OS, RtP’s further success feels a bit questionable.
If you have tried QNX RtP in the past, you already have a taste of the OS. If you have never tried it, I sincerely urge you to do so. It is a good experience on a stable system. And if you are a professional in the embedded systems field, it is definetely a must-see.
Hardware Support: 7.5/10
Ease of use: 8/10
Speed: 8/10 (UI responsiveness, latency, throughput)
Overall: 8 / 10