QNX
Encyclopedia
QNX is a commercial Unix-like
Unix-like
A 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 system
Real-time operating system
A 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 system
Embedded system
An 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 BlackBerry
BlackBerry
BlackBerry 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 Motion
Research In Motion
Research 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 microkernel
Microkernel
In 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 kernel
Monolithic kernel
A 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 disk
Floppy disk
A 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 PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...

, x86
X86 architecture
The 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, MIPS
MIPS architecture
MIPS 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-4
SuperH
SuperH 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 ARM
ARM architecture
ARM 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...

, StrongARM
StrongARM
The 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 XScale
XScale
The 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 Playbook
BlackBerry PlayBook
The 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 computer
Tablet computer
A 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 Motion
Research In Motion
Research 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 QNX
BlackBerry Tablet OS
BlackBerry 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 Bell
Gordon Bell (QNX)
Gordon 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 Dodge
Dan Dodge
Dan 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 Waterloo
University of Waterloo
The 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 science
Computer science
Computer 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, Ontario
Kanata, Ontario
Situated 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 Ottawa
Ottawa
Ottawa 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 8088
Intel 8088
The 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...

 CPU
Central processing unit
The 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 Ontario
Ontario
Ontario 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 ICON
Unisys ICON
The 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 POSIX
POSIX
POSIX , 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 GUI
Gui
Gui 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 System
X Window System
The 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 POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...

 interface, porting Unix
Unix
Unix 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 SMP
Symmetric multiprocessing
In 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 POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...

 API
Application programming interface
An 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 Eclipse
Eclipse (software)
Eclipse 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 Industries
Harman International Industries
Harman 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 telematics
Telematics
Telematics 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 automobile
Automobile
An 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 middleware
Middleware
Middleware 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 Motion
Research In Motion
Research 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 computer
Tablet computer
A 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 PlayBook
BlackBerry PlayBook
The 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 OS
BlackBerry Tablet OS
BlackBerry 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.

Cisco
Cisco Systems
Cisco 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 scheduling
Scheduling (computing)
In 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, interrupt
Interrupt
In 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 management
Memory management
Memory 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 microkernel
Microkernel
In 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 NetBSD
NetBSD
NetBSD 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 UNIX
Unix
Unix 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 Linux
Linux
Linux 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 microkernel
Microkernel
In 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 system
Distributed operating system
A 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 Dodge
Dan Dodge
Dan 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 thread
Thread (computer science)
In 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 ROM
Read-only memory
Read-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 multiprocessing
Symmetric multiprocessing
In 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 scheduling
Adaptive Partition Scheduler
Adaptive 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 microkernel
Microkernel
In 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 microkernel
Microkernel
In 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 computer
Computer
A 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...

 node
Node (networking)
In 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

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK