Issue
138 January 2002
EXPLORING QNX
NEUTRINO
by
Duane Mattern
Yes,
QNX has been around for a while. But, that doesn’t mean
it’s outdated nor that it isn’t a helpful solution to
some of today’s real-time problems. Duane takes us step
by step through everything from downloading the eval copy
to displaying bootable images in real time.
Start
Installation
Tools Hardware
Examples
What's Missing?
What You Get
Sources & PDF
The
QNX real-time operating system (RTOS) isn’t new. It’s
been around since the early 1980s. When I first encountered
QNX in ’87 I thought, "this is a lot better than
Windows." Today, it’s still better than Windows for
real-time applications. In addition, QNX has added a lot
of GUI applications, making it competitive on the desktop.
Since
September 2000, we’ve been able to download QNX real-time
platform (RTP) for evaluation, prototyping, personal use,
or other noncommercial purposes at no charge. And, since
July 2001, RTP has included the x86 version of QNX Neutrino
6.1. Through-out the article, I will refer to these as
QNX unless a distinction needs to be made.
What
is QNX? QNX is a RTOS with a microkernel architecture.
It supports MIPS, PowerPC, SH4, StrongArm, and x86 hardware.
It is scalable from constrained embedded to multiprocessor
platforms. The architecture provides multitasking, priority-driven
preemptive scheduling, synchronization, and TCP/IP protocol.
Utilities including PPP, DHCP, NFS, RPC, and SNMP are
provided as well.
QNX
has native message-based networking called Qnet. The Photon
microGUI windowing system is a GUI with a small memory
footprint. For GUI applications, there is also an integrated
development environment called Photon Application Builder
(PhAB), which reminds me of Visual Basic with drag-and-drop
controls. And, don’t forget about the self-hosting capabilities
that simplify development. QNX is not Unix but they have
a lot in common. QNX even uses a version of the GNU GCC
compiler.
For
anyone who wants to do hard real-time work, QNX is a good
place to start. If you’ve ever attempted to do real-time
work under Windows, you know how difficult it can be to
get deterministic timing. Windows CE is a possibility
if you want to drop $2500 (US $) in a hurry for Platform
Builder. For simple jobs, you can jump backward to MS-DOS,
but then you start to have problems with software and
hardware support.
Linux
is a possibility for real-time applications, but you have
to make a tough choice. Which real-time implementation
of Linux do you want? There are many choices to evaluate.
The list includes RTLinux from FSMLabs, Embedix from Lineo,
Hard Hat from MontaVista, TimeSys, and others. [1] The
different approaches to scheduling and the supported hardware
complicate the choice. If you want to start quickly and
for free with a proven RTOS, then QNX is a good candidate
to explore.