The QNX realtime platform is highly compatible with Linux, and uses many of the same industry-standard APIs and tools. In fact, any Linux developer can become productive almost immediately on QNX. So why should developers and OEMs choose QNX over Linux when creating embedded products? This article outlines several reasons.
QNX better understands the needs of embedded OEMs
QNX Software Systems has been serving the embedded market for over 20 years. Since most commercial Linux vendors are basically retail operations; they do not have the deep experience needed to address the fundamental, and often complex, requirements of embedded OEMs. QNX Software knows the needs of OEMs intimately, and has a proven track of helping them build everything from Internet appliances to life-critical medical instruments.
QNX's smaller size can save OEMs millions
Thanks to unique technologies like the Photon microGUI, QNX uses a small fraction of the memory required by Linux. That's key, since even a $2 reduction in memory costs per unit can save millions of dollars in a high-volume embedded device, such as an Internet appliance or an in-car computing system.
OEMs can keep their IP
By mixing their code with the GPL and LGPL code that comes with Linux, embedded OEMs risk losing or compromising their hard-earned intellectual property (IP). In fact, many OEMs refuse to use Linux for that reason. In comparison, OEMs can freely use QNX source code and applications, while maintaining the rights to their IP.
Embedded OEMs have a faster head-start with QNX
While Linux OS code is freely distributed, it is rarely usable for specific projects in its existing state. Engineering expertise is required to take the raw Linux source and turn it into a core of a useful embedded product. QNX, on the other hand, provides OEMs with a large suite of applications and OS components that are thoroughly tested and highly optimised for embedded use. No re-engineering required. This gives developers a head-start: instead of losing time on low-level kernel issues (and spending money on OS maintenance teams), OEMs using QNX can focus right away on creating unique features and applications for their embedded device.
Easier to customise and extend
In Linux, all system-level software - drivers, protocol stacks, and so on - runs in the same address space as the OS kernel. As a result, developing these components requires kernel tools (hard to use), kernel rebuilds (time-consuming), and kernel programmers (expensive). With QNX, however, all these system-level components run as optional, memory-protected processes outside the kernel. As a result, developing drivers and OS extensions do not require specialised debuggers or specialised developers. The OS is inherently more open to customisation.
QNX can target a greater variety of embedded systems
This is true for several reasons. For example, QNX is designed from the ground up for realtime performance, which is essential for a large number of embedded products - Internet routers, medical instruments, multimedia appliances, automotive safety systems, factory robots, to name a few. QNX can also target a greater variety of embedded systems because of its much smaller memory footprint; see next point.
It is better suited to 7/24 embedded systems
While Linux has a reputation for reliability, it cannot match QNX's inherent ability to enable the 99,999% availability (ie less than five minutes downtime a year) required by embedded products like Internet routers and medical instruments. For example, because Linux drivers and protocol stacks are all bound to the OS kernel, a single programming error in any driver can cause a kernel fault and crash the system. In QNX, these components are all memory-protected; they cannot corrupt the kernel. Better yet, they can all be upgraded 'on the fly' without a reboot - critical for any system that must stay running 24 hours, 365 days a year.
© Technews Publishing (Pty) Ltd | All Rights Reserved