QNX is a commercial
Unix-likeA Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
real-time operating systemA real-time operating system is an operating system intended to serve real-time application requests.A key characteristic of a RTOS is the level of its consistency concerning the amount of time it takes to accept and complete an application's task; the variability is jitter...
, aimed primarily at the
embedded systemAn embedded system is a computer system designed for specific control functions within a larger system. often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal...
s market. The product was originally developed by Canadian company, QNX Software Systems, which was later acquired by Canadian
BlackBerryBlackBerry is a line of mobile email and smartphone devices developed and designed by Canadian company Research In Motion since 1999.BlackBerry devices are smartphones, designed to function as personal digital assistants, portable media players, internet browsers, gaming devices, and much more...
-producer
Research In MotionResearch In Motion Limited or RIM is a Canadian multinational telecommunications company headquartered in Waterloo, Ontario, Canada that designs, manufactures and markets wireless solutions for the worldwide mobile communications market...
.
Description
As a
microkernelIn computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system . These mechanisms include low-level address space management, thread management, and inter-process communication...
-based OS, QNX is based on the idea of running most of the OS in the form of a number of small tasks, known as
servers. This differs from the more traditional
monolithic kernelA monolithic kernel is an operating system architecture where the entire operating system is working in the kernel space and alone as supervisor mode...
, in which the operating system is a single very large program composed of a huge number of "parts" with special abilities. In the case of QNX, the use of a microkernel allows users (developers) to turn off any functionality they do not require without having to change the OS itself; instead, those servers are simply not run.
The system is quite small, with earlier versions fitting on a single
floppy diskA floppy disk is a disk storage medium composed of a disk of thin and flexible magnetic storage medium, sealed in a rectangular plastic carrier lined with fabric that removes dust particles...
.
QNX Neutrino (2001) has been ported to a number of platforms and now runs on practically any modern CPU that is used in the embedded market. This includes the
PowerPCPowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
,
x86The term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's 8-bit based 8080 microprocessor and also introduced segmentation to overcome the 16-bit addressing barrier of such designs...
family,
MIPSMIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...
,
SH-4SuperH is a 32-bit reduced instruction set computer instruction set architecture developed by Hitachi. It is implemented by microcontrollers and microprocessors for embedded systems....
and the closely related family of
ARMARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...
,
StrongARMThe StrongARM is a family of microprocessors that implemented the ARM V4 instruction set architecture . It was developed by Digital Equipment Corporation and later sold to Intel, who continued to manufacture it before replacing it with the XScale....
and
XScaleThe XScale, a microprocessor core, is Intel's and Marvell's implementation of the ARMv5 architecture, and consists of several distinct families: IXP, IXC, IOP, PXA and CE . Intel sold the PXA family to Marvell Technology Group in June 2006....
CPUs.
As of September 12, 2007, QNX offers a license for non-commercial users.
The
BlackBerry PlaybookThe BlackBerry PlayBook is a tablet computer by Research In Motion , best known for the BlackBerry smartphone. It competes against Apple's iPad and a slew of Android-powered tablets....
tablet computerA tablet computer, or simply tablet, is a complete mobile computer, larger than a mobile phone or personal digital assistant, integrated into a flat touch screen and primarily operated by touching the screen...
designed by
Research In MotionResearch In Motion Limited or RIM is a Canadian multinational telecommunications company headquartered in Waterloo, Ontario, Canada that designs, manufactures and markets wireless solutions for the worldwide mobile communications market...
uses
a version of QNXBlackBerry Tablet OS is an operating system based on the QNX Neutrino real-time operating system designed to run Adobe AIR and BlackBerry WebWorks applications...
as the primary operating system.
History
Gordon BellGordon Bell is the co-creator of the QNX Realtime Operating System . They began the project while students at the University of Waterloo in 1980...
and
Dan DodgeDan Dodge is the co-creator of the QNX Realtime Operating system . They began the project while students at the University of Waterloo in 1980...
, students at the
University of WaterlooThe University of Waterloo is a comprehensive public university in the city of Waterloo, Ontario, Canada. The school was founded in 1957 by Drs. Gerry Hagey and Ira G. Needles, and has since grown to an institution of more than 30,000 students, faculty, and staff...
in 1980, both took a standard
computer scienceComputer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
course in operating system design, in which the students constructed a basic real-time kernel. Both were convinced there was a commercial need for such a system, and moved to
Kanata, OntarioSituated in the Ottawa Valley, Kanata is located about west-southwest of Downtown Ottawa along Highway 417 at a latitude of 45°18' North and a longitude of 75°55' West, with an area of . Its northern end is just to the west of the Ottawa River....
(a high-tech area then to the west of
OttawaOttawa is the capital of Canada, the second largest city in the Province of Ontario, and the fourth largest city in the country. The city is located on the south bank of the Ottawa River in the eastern portion of Southern Ontario...
and now amalgamated into that city) to start Quantum Software Systems that year. In 1982 the first version of QNX was released for the
Intel 8088The Intel 8088 microprocessor was a variant of the Intel 8086 and was introduced on July 1, 1979. It had an 8-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers and the one megabyte address range were unchanged, however...
CPUThe central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
.
One of first widespread uses of the QNX real-time OS (RTOS) was in the non-embedded world, when it was selected as the operating system for the
OntarioOntario is a province of Canada, located in east-central Canada. It is Canada's most populous province and second largest in total area. It is home to the nation's most populous city, Toronto, and the nation's capital, Ottawa....
education system's own computer design, the
Unisys ICONThe ICON was a computer built specifically for use in schools, to fill a standard created by the Ontario Ministry of Education. They were widely used, mostly in high schools in the mid- to late 1980s, but disappeared after that time with the widespread introduction of PCs and Apple Macintoshes...
. Over the years QNX was used mostly for "larger" projects, as its 44k kernel was too large to fit inside the single-chip computers of the era. The system garnered a reputation for reliability and found itself in use running machinery in a number of industrial applications.
In the late-1980s, Quantum realized that the market was rapidly moving towards the
POSIXPOSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
model and decided to rewrite the kernel to be much more compatible at a lower level. The result was QNX 4. During this time Patrick Hayden, while working as an intern, along with Robin Burgener (a full time employee at the time), developed a new concept for a . This patented concept was developed into the embeddable
GUIGui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...
named the QNX Photon microGUI. QNX also provided a version of the
X Window SystemThe X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
. Due to the
POSIXPOSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
interface, porting
UnixUnix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
and BSD packages to QNX became much easier.
Toward the end of the 1990s, the company (now called QNX Software Systems) began work on a completely new version of the QNX RTOS, designed from the ground up to be
SMPIn computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...
capable, and to support all current
POSIXPOSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
APIAn application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
s and any new POSIX APIs that could be anticipated while still retaining the microkernel architecture. This resulted in the QNX Neutrino RTOS, which was released in 2001.
Along with the Neutrino kernel, QNX Software Systems made a serious commitment to tooling, and became a founding member of the
EclipseEclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
consortium. The company released a suite of Eclipse plug-ins packaged with the Eclipse workbench in 2002 under the name QNX Momentics Tool Suite.
In 2004 the company announced it had been sold to
Harman International IndustriesHarman International Industries is an American-based international audio and infotainment equipment company. The company designs, manufactures and markets audio and infotainment products for the car, the home, theatres and venues, as well as electronics for audio professionals...
. Prior to this acquisition, QNX software was already widely used in the automotive industry for
telematicsTelematics typically is any integrated use of telecommunications and informatics, also known as ICT...
systems. Since the purchase by Harman, QNX software has been designed into over 200 different
automobileAn automobile, autocar, motor car or car is a wheeled motor vehicle used for transporting passengers, which also carries its own engine or motor...
makes and models - not only in telematics systems but in infotainment and navigation units as well. The QNX CAR Application Platform is running in over 20 million vehicles as of mid-2011. The company has since released several
middlewareMiddleware is computer software that connects software components or people and their applications. The software consists of a set of services that allows multiple processes running on one or more machines to interact...
products including the QNX Aviage Multimedia Suite, the QNX Aviage Acoustic Processing Suite and the QNX HMI Suite.
In September 2007 QNX Software Systems announced the availability of some of its source code.
On April 9, 2010,
Research In MotionResearch In Motion Limited or RIM is a Canadian multinational telecommunications company headquartered in Waterloo, Ontario, Canada that designs, manufactures and markets wireless solutions for the worldwide mobile communications market...
announced they would acquire QNX Software Systems from Harman International Industries. On the same day, QNX source code access was restricted. In September, 2010, the company announced a
tablet computerA tablet computer, or simply tablet, is a complete mobile computer, larger than a mobile phone or personal digital assistant, integrated into a flat touch screen and primarily operated by touching the screen...
, the
BlackBerry PlayBookThe BlackBerry PlayBook is a tablet computer by Research In Motion , best known for the BlackBerry smartphone. It competes against Apple's iPad and a slew of Android-powered tablets....
, and a new operating system
BlackBerry Tablet OSBlackBerry Tablet OS is an operating system based on the QNX Neutrino real-time operating system designed to run Adobe AIR and BlackBerry WebWorks applications...
based on QNX to run on the tablet.
CiscoCisco Systems, Inc. is an American multinational corporation headquartered in San Jose, California, United States, that designs and sells consumer electronics, networking, voice, and communications technology and services. Cisco has more than 70,000 employees and annual revenue of US$...
's IOS-XR (ultra high availability IOS) is based on QNX software, as is IOS Software Modularity.
Technology
The QNX kernel contains only
CPU schedulingIn computer science, a scheduling is the method by which threads, processes or data flows are given access to system resources . This is usually done to load balance a system effectively or achieve a target quality of service...
, interprocess communication,
interruptIn computing, an interrupt is an asynchronous signal indicating the need for attention or a synchronous event in software indicating the need for a change in execution....
redirection and timers. Everything else runs as a user process, including a special process known as
proc which performs process creation, and
memory managementMemory management is the act of managing computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. This is critical to the computer system.Several...
by operating in conjunction with the
microkernelIn computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system . These mechanisms include low-level address space management, thread management, and inter-process communication...
. This is made possible by two key mechanisms - subroutine-call type interprocess communication, and a boot loader which can load an image containing not only the kernel but any desired collection of user programs and shared libraries. There are no device drivers in the kernel. The network stack is based on
NetBSDNetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...
code. Along with its support for its own, native, device drivers, QNX supports its legacy,
io-net manager server, and the network drivers ported from NetBSD.
QNX interprocess communication consists of sending a message from one process to another and waiting for a reply. This is a single operation, called
MsgSend. The message is copied, by the kernel, from the address space of the sending process to that of the receiving process. If the receiving process is waiting for the message, control of the CPU is transferred at the same time, without a pass through the CPU scheduler. Thus, sending a message to another process and waiting for a reply does not result in "losing one's turn" for the CPU. This tight integration between message passing and CPU scheduling is one of the key mechanisms that makes QNX message passing broadly usable. Most
UNIXUnix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
and
LinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
interprocess communication mechanisms lack this tight integration, although an implementation of QNX-type messaging for Linux
does exist. Mishandling of this subtle issue is a primary reason for the disappointing performance of some other microkernel systems.
Due to the
microkernelIn computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system . These mechanisms include low-level address space management, thread management, and inter-process communication...
architecture QNX is also a
distributed operating systemA distributed operating system is the logical aggregation of operating system software over a collection of independent, networked, communicating, and spatially disseminated computational nodes. Individual system nodes each hold a discrete software subset of the global aggregate operating system...
.
Dan DodgeDan Dodge is the co-creator of the QNX Realtime Operating system . They began the project while students at the University of Waterloo in 1980...
and Peter van der Veen hold a
patent based on the QNX operating system's distributed processing features known commercially as Transparent Distributed Processing.
All I/O operations, file system operations, and network operations were meant to work through this mechanism, and the data transferred was copied during message passing. Later versions of QNX reduce the number of separate processes and integrate the network stack and other function blocks into single applications for performance reasons.
Message handling is prioritized by
threadIn computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...
priority. Since I/O requests are performed using message passing, high priority threads receive I/O service before low priority threads, an essential feature in a hard real-time system.
The boot loader, although seldom discussed, is the other key component of the minimal microkernel system. Because user programs can be built into the boot image, the set of device drivers and support libraries needed for startup need not be, and are not, in the kernel. Even such functions as program loading are not in the kernel, but instead are in shared user-space libraries loaded as part of the boot image. It is possible to put an entire boot image into
ROMRead-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...
, which is used for diskless embedded systems.
Neutrino supports
symmetric multiprocessingIn computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...
and bound multiprocessing (BMP), which is QNX's term for being able to lock selected threads to selected CPUs. BMP is used to improve cache hitting and to ease the migration of non-SMP safe applications to multi-processor computers.
Neutrino supports strict priority-preemptive scheduling and
adaptive partition schedulingAdaptive partition schedulers are a relatively new type of partition scheduler, pioneered with the most recent version of the QNX operating system. Adaptive partitioning, or AP, allows the real-time system designer to request that a percentage of processing resources be reserved for a particular...
(APS). APS guarantees minimum CPU percentages to selected groups of threads, even though others may have higher priority. The adaptive partition scheduler is still strictly priority-preemptive when the system is underloaded. It can also be configured to run a selected set of critical threads strictly realtime, even when the system is overloaded.
Transparent Distributed Processing
Transparent Distributed Processing, or TDP, is the name that the QNX operating system uses to refer to its network distributed architecture. Since QNX is a
microkernelIn computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system . These mechanisms include low-level address space management, thread management, and inter-process communication...
it is inherently network distributable, so TDP actually boils down to a protocol module that plugs in to the QNX networking stack. This protocol module (known as qnet) links the
microkernelIn computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system . These mechanisms include low-level address space management, thread management, and inter-process communication...
s across the network together, so that operating system services are accessed using exactly the same mechanism without regard to the
computerA computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...
nodeIn communication networks, a node is a connection point, either a redistribution point or a communication endpoint . The definition of a node depends on the network and protocol layer referred to...
on which they reside.
TDP is covered by
U.S. Patent 5,745,759.
Foundry27
Foundry27 is a web-based QNX community established by the company. It serves as a hub to QNX Neutrino development where developers can register, choose the license, and get the source code and related toolkit of the RTOS. As of April 9th 2010 (after the acquisition by RIM), the full QNX source code is no longer available to hobbyists or to the general public.
External links