All Topics  
QNX

 

   Email Print
   Bookmark   Link






 

QNX



 
 
QNX ( or ) 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 a Computer multitasking operating system intended for real-time computing applications. Such applications include embedded systems , industrial robots, spacecraft, industrial control , and scientific research equipment....
, aimed primarily at the embedded system
Embedded system

An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, often with real-time computing constraints....
s market. On September 12, 2007, the source of the QNX kernel was released for non-commercial use.

microkernel
Microkernel

In computer science, a microkernel is a computer kernel which provides the mechanisms needed to implement an operating system, such as 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 a Kernel architecture where the entire operating system is run in kernel space as supervisor mode. In difference with other architectures , the monolithic kernel defines alone a high-level virtual interface over computer hardware, with a set of primitives or system calls to implement all operating system services such...
, in which the operating system is a single very large program composed of a huge number of "parts" with special abilities.






Discussion
Ask a question about 'QNX'
Start a new discussion about 'QNX'
Answer questions from other users
Full Discussion Forum



Encyclopedia


QNX ( or ) 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 a Computer multitasking operating system intended for real-time computing applications. Such applications include embedded systems , industrial robots, spacecraft, industrial control , and scientific research equipment....
, aimed primarily at the embedded system
Embedded system

An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, often with real-time computing constraints....
s market. On September 12, 2007, the source of the QNX kernel was released for non-commercial use.

Description

As a microkernel
Microkernel

In computer science, a microkernel is a computer kernel which provides the mechanisms needed to implement an operating system, such as 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 a Kernel architecture where the entire operating system is run in kernel space as supervisor mode. In difference with other architectures , the monolithic kernel defines alone a high-level virtual interface over computer hardware, with a set of primitives or system calls to implement all operating system services such...
, 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, fitting in a minimal fashion on a single floppy.

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 x86
X86 architecture

The generic term x86 refers to the most commercially successful instruction set architecture in the history of personal computing. It derived from the model numbers, ending in "86", of the first few processor generations Backward compatibility with the original Intel 8086....
 family, MIPS
MIPS architecture

MIPS is a RISC instruction set architecture developed by MIPS Technologies . In the mid to late 1990s, it was estimated that one in three RISC microprocessors produced were MIPS implementations....
, PowerPC
PowerPC

PowerPC is a RISC instruction set architecture created by the 1991 Apple Inc.?IBM?Motorola alliance, known as AIM alliance. Originally intended for personal computers, PowerPC CPUs have since become popular embedded system and high-performance processors....
, SH-4
SuperH

The SuperH is brandname of a certain microcontroller and microprocessor architecture. The SuperH is fundamentally a 32-bit load/store reduced instruction set computer architecture found in a large number of embedded systems....
 and the closely related family of ARM
ARM architecture

The ARM architecture is a 32-bit RISC central processing unit architecture developed by ARM Limited that is widely used in embedded system designs....
, StrongARM
StrongARM

The StrongARM is a family of microprocessors that implemented the ARM architecture 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 CPUs.

As of September 12, 2007, QNX offers a license for non-commercial users.

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. After moving to Kanata, Ontario, to start Quantum Software Systems , the first commercial version of QNX was released for the Intel 8088 Central processing unit in 1982....
 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, Ontario, Canada. The school was founded in 1957 by Drs....
 in 1980, both took a standard computer science
Computer science

Computer 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

Kanata is a large suburban area in the western part of Ottawa, Ontario, Canada, it has a population of 90,000 and is growing rapidly. It is located just to the west of the Greenbelt and is one of the largest of several communities that surround central Ottawa....
, (a high-tech area in the western part of Ottawa
Ottawa

Ottawa is the Capital of Canada. The city has population of 812,000, the List of the 100 largest municipalities in Canada by population municipality in the country and second largest in Ontario....
) to start Quantum Software Systems that year. In 1982 the first version, QNX, was released for the Intel 8088
Intel 8088

The Intel 8088 is an Intel x86 microprocessor based on the Intel 8086, with 16-bit registers and an 8-bit external data bus. It can address up to 1 megabyte of random access memory....
 CPU
Central processing unit

A central processing unit is an electronic circuit that can execute computer programs. This broad definition can easily be applied to many early computers that existed long before the term "CPU" ever came into widespread usage....
.

One of QNX's first widespread uses was in the non-embedded world, when it was selected as the operating system for the Ontario
Ontario

Ontario is a Provinces and territories of Canada located in the Central Canada part of Canada, the largest by population and second largest, after Quebec, in total area....
 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 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 Personal Computers 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 or "Portable Operating System Interface" is the collective name of a family of related standardizations specified by the Institute of Electrical and Electronics Engineers to define the application programming interface , along with shell and utilities interfaces for software compatible with variants of the Unix operating system, altho...
 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 QNX 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 grillinged 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....
 named Photon microGUI. QNX also provided a version of the X Window System
X Window System

The X Window System is a computing software system and network protocol that provides a graphical user interface for networked computers. It implements the X Window System protocols and architecture and provides windowing system on raster graphics Visual display units and manages Keyboard and pointing device control functions....
. Due to the POSIX
POSIX

POSIX or "Portable Operating System Interface" is the collective name of a family of related standardizations specified by the Institute of Electrical and Electronics Engineers to define the application programming interface , along with shell and utilities interfaces for software compatible with variants of the Unix operating system, altho...
 interface, porting Unix
Unix

Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
 and BSD packages to QNX became much easier.

Toward the end of the 1990s QNX began work on a completely new version of QNX, designed from the ground up to be SMP
Symmetric multiprocessing

In computing, symmetric multiprocessing or SMP involves a multiprocessor computer-architecture where two or more identical processors can connect to a single shared main memory....
 capable, as well as support all current POSIX
POSIX

POSIX or "Portable Operating System Interface" is the collective name of a family of related standardizations specified by the Institute of Electrical and Electronics Engineers to define the application programming interface , along with shell and utilities interfaces for software compatible with variants of the Unix operating system, altho...
 API
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
s, and any new POSIX
POSIX

POSIX or "Portable Operating System Interface" is the collective name of a family of related standardizations specified by the Institute of Electrical and Electronics Engineers to define the application programming interface , along with shell and utilities interfaces for software compatible with variants of the Unix operating system, altho...
 API
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
s that could be anticipated; but still retaining the microkernel architecture. This resulted in QNX Neutrino, which was released in 2001. Along with the Neutrino kernel, QNX 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 a plug-in system to extend it....
 consortium. QNX soon released a suite of Eclipse plug-ins packaged with the Eclipse workbench under the name Momentics.

In 2004 the company announced it had been sold to Harman International Industries
Harman International Industries

Harman International Industries is an 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 the acquisition by Harman International, QNX was already widely used in the automotive industry for telematics
Telematics

The term telematics is used in a number of ways:File:Lexus Gen V navigation system.jpg* The integrated use of telecommunications and informatics, also known as ICT ....
 systems. Since the purchase by Harman, QNX has been designed into over 180 different automobile
Automobile

An automobile or motor car is a wheeled motor vehicle for transportation passengers, which also carries its own car engine or motor. Most definitions of the term specify that automobiles are designed to run primarily on roads, to have seating for one to eight people, to typically have four wheels, and to be constructed principally f...
 models.

On 12th of September 2007 QNX made a press release announcing the immediate availability of the source code.

Cisco
Cisco Systems

Cisco Systems, Inc. is a multinational corporation with more than 66,000 employees and annual revenue of United States dollar39 billion as of 2008....
's IOS-XR (ultra high availability IOS), is based on QNX, as is IOS Software Modularity
IOS Software Modularity

IOS Software Modularity is an extension to the Cisco IOS operating system that allows for an In-Service Software Upgrade of router or switch functionality....
.

Technology

The QNX kernel contains only CPU scheduling
Scheduling (computing)

Scheduling is a key concept in computer multitasking and multiprocessing operating system design, and in real-time operating system design. In modern operating systems, there are typically many more processes running than there are CPUs available to run them....
, interprocess communication, interrupt
Interrupt

In computing, an interrupt is an asynchronous communication signal from hardware 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. In its simpler forms, this involves providing ways to allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed....
 by operating in conjunction with the microkernel
Microkernel

In computer science, a microkernel is a computer kernel which provides the mechanisms needed to implement an operating system, such as 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 redistributable, open source version of the Unix-derivative Berkeley Software Distribution computer operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed....
 code . There are three variety of drivers supported: native, legacy io-net and 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 computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
 and Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
 interprocess communication mechanisms lack this tight integration, although an implementation of QNX-type messaging for Linux . 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 a computer kernel which provides the mechanisms needed to implement an operating system, such as low-level address space management, thread management, and inter-process communication....
 architecture QNX is also a distributed 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 based on the QNX operating system's distributed processing features (known commercially as Transparent Distributed Processing
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 it is inherently network distributable, so TDP actually boils down to a protocol module that plugs in to the QNX networking stack....
).

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 a Fork of a computer program into two or more Concurrency running task s. The implementation of threads and process es 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 computer storage media used in computers and other electronic devices. Because data stored in ROM cannot be modified , it is mainly used to distribute firmware ....
, which is used for diskless embedded systems.

Neutrino supports Symmetric multiprocessing
Symmetric multiprocessing

In computing, symmetric multiprocessing or SMP involves a multiprocessor computer-architecture where two or more identical processors can connect to a single shared main memory....
 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 heating 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....
 (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.

Foundry27

Foundry27, the new QNX community established by the company, will serve as a hub to QNX Neutrino development where developers can register, choose the license, and get the source code and the related toolkit of the RTOS.

Competitors

Some important competitors in the embedded market are LynxOS
LynxOS

The LynxOS RTOS is a Unix-like real-time operating system from LynuxWorks . Sometimes known as the Lynx Operating System, LynxOS features full POSIX conformance and, more recently, Linux compatibility....
, VxWorks
VxWorks

VxWorks is a real-time operating system operating system made and sold by Wind River Systems of Alameda, California, California, USA.VxWorks is designed for use in embedded systems....
, Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
, eCos
ECos

eCos is an open source, royalty-free, real-time operating system intended for embedded systems and applications which need only one Process with Thread ....
, ThreadX
ThreadX

ThreadX, developed and marketed by Express Logic, Inc. of San Diego, California, USA, is a real-time operating system . Similar RTOSes are available from other vendors such as VxWorks, Nucleus RTOS, Operating System Embedded, QNX, LynxOS, etc....
, Windows CE
Windows CE

Windows CE is Microsoft's operating system for minimalistic computers and embedded systems. Windows CE is a distinctly different operating system and Kernel , rather than a trimmed-down version of desktop Windows....
, RTEMS
RTEMS

RTEMS is a free open source real-time operating system designed for embedded systems.The acronym RTEMS initially stood for Real-Time Executive for Missile Systems, then became Real-Time Executive for Military Systems before changing to its current meaning....
, and OS-9
OS-9

OS-9 is a family of real-time computing, process , computer multitasking, multi-user, Unix-like operating systems, developed in the 1980s, originally by Microware for the Motorola 6809 microprocessor....
.

Bibliography


See also

  • Comparison of operating systems
    Comparison of operating systems

    These tables compare general and technical information for a number of widely used and currently available operating systems.Due to the large number and variety of available Linux distributions, they are all grouped under a single entry; see comparison of Linux distributions for a detailed comparison....


External links