QNX ( or ) is a commercial
Unix-like
A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
real-time operating system
A real-time operating system (RTOS) is an operating system (OS) for real-time applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a time-sharing operating system, such as Unix, which m ...
, aimed primarily at the
embedded system
An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' as ...
s market. QNX was one of the first commercially successful
microkernel
In computer science, a microkernel (often abbreviated as μ-kernel) is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, ...
operating systems.
The product was originally developed in the early 1980s by
Canadian
Canadians (french: Canadiens) are people identified with the country of Canada. This connection may be residential, legal, historical or cultural. For most Canadians, many (or all) of these connections exist and are collectively the source of ...
company Quantum Software Systems, later renamed QNX Software Systems.
, it is used in a variety of devices including cars.
History
Gordon Bell
Chester Gordon Bell (born August 19, 1934) is an American electrical engineer and manager. An early employee of Digital Equipment Corporation (DEC) 1960–1966, Bell designed several of their PDP machines and later became Vice President of Engi ...
and
Dan Dodge Dan Dodge is a cocreator of the QNX microkernel real-time operating system, with Gordon Bell. They began the project while students at the University of Waterloo in 1980. Dodge then moved to Kanata, Ontario, a high-tech area outside Ottawa, to start ...
, both students at the
University of Waterloo
The University of Waterloo (UWaterloo, UW, or Waterloo) is a public research university with a main campus in Waterloo, Ontario
Waterloo is a city in the Canadian province of Ontario. It is one of three cities in the Regional Municipality ...
in 1980, took a course in real-time operating systems, in which the students constructed a basic real-time microkernel and user programs. Both were convinced there was a commercial need for such a system, and moved to the high-tech planned community
Kanata, Ontario
Kanata (, ) is a suburb of Ottawa, Ontario, Canada. It is located about west of the city's downtown core. As of 2021, Kanata had an urban population of 137,118. Before it was amalgamated into Ottawa in 2001, it was one of the fastest-growing ...
, to start Quantum Software Systems that year. In 1982, the first version of QUNIX was released for the
Intel 8088
The Intel 8088 ("''eighty-eighty-eight''", also called iAPX 88) microprocessor is a variant of the Intel 8086. Introduced on June 1, 1979, the 8088 has an eight-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers an ...
CPU. In 1984, Quantum Software Systems renamed QUNIX to QNX in an effort to avoid any trademark infringement challenges.
One of the first widespread uses of the QNX real-time OS (RTOS) was in the nonembedded world when it was selected as the operating system for the
Ontario
Ontario ( ; ) is one of the thirteen provinces and territories of Canada.Ontario is located in the geographic eastern half of Canada, but it has historically and politically been considered to be part of Central Canada. Located in Central Ca ...
education system's own computer design, the
Unisys ICON
The ICON (also the CEMCorp ICON, Burroughs ICON, and Unisys ICON, and nicknamed the bionic beaver) was a networked personal computer built specifically for use in schools, to fill a standard created by the Ontario Ministry of Education. It was b ...
. Over the years QNX was used mostly for larger projects, as its 44k kernel was too large to fit inside the one-chip computers of the era. The system garnered a reputation for reliability and became used in running machinery in many industrial applications.
In the late-1980s, Quantum realized that the market was rapidly moving towards the Portable Operating System Interface (
POSIX
The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming interf ...
) model and decided to rewrite the kernel to be much more compatible at a low 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 windowing system. This patented
concept was developed into the embeddable
graphical user interface
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
(GUI) named the QNX Photon microGUI. QNX also provided a version of the
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
.
To demonstrate the OS's capability and relatively small size, in the late 1990s QNX released a demo image that included the POSIX-compliant QNX 4 OS, a full graphical user interface, graphical text editor, TCP/IP networking, web browser and web server that all fit on a bootable 1.44
MB floppy disk
A floppy disk or floppy diskette (casually referred to as a floppy, or a diskette) is an obsolescent type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined w ...
for the 386 PC.
Toward the end of the 1990s, the company, then named QNX Software Systems, began work on a new version of QNX, designed from the ground up to be
symmetric multiprocessing
Symmetric multiprocessing or shared-memory multiprocessing (SMP) involves a multiprocessor computer hardware and software architecture where two or more identical processors are connected to a single, shared main memory, have full access to all ...
(SMP) capable, and to support all current
POSIX
The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming interf ...
application programming interface
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
s (APIs) and any new POSIX APIs that could be anticipated while still retaining the microkernel architecture. This resulted in QNX Neutrino, released in 2001.
Along with the Neutrino kernel, QNX Software Systems became a founding member of the
Eclipse
An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
(
integrated development environment
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
) consortium. The company released a suite of Eclipse
plug-ins packaged with the Eclipse workbench in 2002, and named QNX Momentics Tool Suite.
In 2004, the company announced it had been sold to
Harman International
Harman International Industries, commonly known as Harman (stylized in all-uppercase as HARMAN), is an American audio electronics company. Since 2017, the company has been an independent subsidiary of Samsung Electronics.
Headquartered in Stam ...
Industries. Before this acquisition, QNX software was already widely used in the automotive industry for
telematics
Telematics is an interdisciplinary field encompassing telecommunications, vehicular technologies ( road transport, road safety, etc.), electrical engineering (sensors, instrumentation, wireless communications, etc.), and computer science (multimedi ...
systems. Since the purchase by Harman, QNX software has been designed into over 200 different
automobile
A car or automobile is a motor vehicle with Wheel, wheels. Most definitions of ''cars'' say that they run primarily on roads, Car seat, seat one to eight people, have four wheels, and mainly transport private transport#Personal transport, pe ...
makes and models, in telematics systems, and in infotainment and navigation units. The QNX CAR Application Platform was running in over 20 million vehicles as of mid-2011.
The company has since released several
middleware
Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".
Middleware makes it easier for software developers to implement co ...
products including the QNX Aviage Multimedia Suite, the QNX Aviage Acoustic Processing Suite and the QNX HMI Suite.
The microkernels of
Cisco Systems
Cisco Systems, Inc., commonly known as Cisco, is an American-based multinational corporation, multinational digital communications technology conglomerate (company), conglomerate corporation headquartered in San Jose, California. Cisco develo ...
'
IOS-XR
IOS XR is a release train of Cisco Systems' widely deployed Internetwork Operating System (IOS), used on their high-end Network Convergence System (NCS) and carrier-grade routers such as the ASR 9000 series and Carrier Routing System ser ...
(ultra high availability IOS, introduced 2004)
and
IOS Software Modularity (introduced 2006)
are based on QNX.
In September 2007, QNX Software Systems announced the availability of some of its
source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
.
On April 9, 2010,
Research In Motion
BlackBerry Limited is a Canadian software company specializing in cybersecurity. Founded in 1984, it was originally known as Research In Motion (RIM). As RIM, it developed the BlackBerry brand of interactive pagers, smartphones, and tablets ...
(later renamed to
BlackBerry Limited
BlackBerry Limited is a Canadian software company specializing in cybersecurity. Founded in 1984, it was originally known as Research In Motion (RIM). As RIM, it developed the BlackBerry brand of interactive pagers, smartphones, and tablets ...
) announced they would acquire QNX Software Systems from Harman International Industries.
On the same day, QNX source code access was restricted from the public and hobbyists.
In September 2010, the company announced a
tablet computer
A tablet computer, commonly shortened to tablet, is a mobile device, typically with a mobile operating system and touchscreen display processing circuitry, and a rechargeable battery in a single, thin and flat package. Tablets, being comput ...
, the
BlackBerry PlayBook
The BlackBerry PlayBook is a mini tablet computer developed by BlackBerry and made by Quanta Computer, an original design manufacturer (ODM). , and a new operating system
BlackBerry Tablet OS
BlackBerry Tablet OS is an operating system from BlackBerry Ltd based on the QNX Neutrino real-time operating system designed to run Adobe AIR and BlackBerry WebWorks applications, currently available for the BlackBerry PlayBook tablet computer ...
based on QNX to run on the tablet.
On October 18, 2011, Research In Motion announced "BBX",
which was later renamed ''
BlackBerry 10
BlackBerry 10 is a discontinued proprietary mobile operating system for the BlackBerry line of smartphones, both developed by BlackBerry Limited (formerly Research In Motion). BlackBerry 10 is based on QNX, a Unix-like operating system that was o ...
'', in December 2011.
Blackberry 10 devices build upon the BlackBerry PlayBook QNX based operating system for touch devices, but adapt the user interface for
smartphone
A smartphone is a portable computer device that combines mobile telephone and computing functions into one unit. They are distinguished from feature phones by their stronger hardware capabilities and extensive mobile operating systems, whic ...
s using the
Qt based Cascades Native User-Interface framework.
At the Geneva Motor Show, Apple demonstrated
CarPlay
CarPlay is an Apple standard which enables a car radio or head unit to be a display and a controller for an iOS device. It is available on all iPhone models beginning with iPhone 5 running iOS 7.1 or later.
According to Apple's website, all m ...
which provides an
iOS
iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also includes ...
-like user interface to head units in compatible vehicles. Once configured by the automaker, QNX can be programmed to hand off its display and some functions to an Apple CarPlay device.
On December 11, 2014,
Ford Motor Company
Ford Motor Company (commonly known as Ford) is an American multinational automobile manufacturer headquartered in Dearborn, Michigan, United States. It was founded by Henry Ford and incorporated on June 16, 1903. The company sells automobi ...
stated that it would replace
Microsoft Auto with QNX.
In January 2017, QNX announced the upcoming release of its SDP 7.0, with support for Intel and ARM
32- and
64-bit
In computer architecture, 64-bit Integer (computer science), integers, memory addresses, or other Data (computing), data units are those that are 64 bits wide. Also, 64-bit central processing unit, CPUs and arithmetic logic unit, ALUs are those ...
platforms, and support for
C++14. It was released in March 2017.
Technology
As a
microkernel
In computer science, a microkernel (often abbreviated as μ-kernel) is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, ...
-based OS, QNX is based on the idea of running most of the
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
kernel in the form of a number of small tasks, named Resource Managers. This differs from the more traditional
monolithic kernel, in which the operating system kernel is one 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 functions they do not need without having to change the OS. Instead, such services will simply not run.
The QNX kernel,
procnto
, contains only
CPU scheduling,
interprocess communication,
interrupt redirection and timers. Everything else runs as a user process, including a special process known as
proc
which performs process creation and
memory management by operating in conjunction with the
microkernel
In computer science, a microkernel (often abbreviated as μ-kernel) is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, ...
. This is made possible by two key mechanisms: subroutine-call type interprocess communication, and a
boot loader which can load an image containing the kernel and any desired set of user programs and shared libraries. There are no
device drivers
In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and ot ...
in the kernel. The network stack is based on
NetBSD
NetBSD is a free and open-source Unix operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is a ...
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 (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
and
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
interprocess communication mechanisms lack this tight integration, although a
user space 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 such as early versions of
Mach
Mach may refer to Mach number, the speed of sound in local conditions. It may also refer to:
Computing
* Mach (kernel), an operating systems kernel technology
* ATI Mach, a 2D GPU chip by ATI
* GNU Mach, the microkernel upon which GNU Hurd is bas ...
. The recipient process need not be on the same physical machine.
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 may refer to:
Objects
* Thread (yarn), a kind of thin yarn used for sewing
** Thread (unit of measurement), a cotton yarn measure
* Screw thread, a helical ridge on a cylindrical fastener
Arts and entertainment
* ''Thread'' (film), 2016 ...
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 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
Rom, or ROM may refer to:
Biomechanics and medicine
* Risk of mortality, a medical classification to estimate the likelihood of death for a patient
* Rupture of membranes, a term used during pregnancy to describe a rupture of the amniotic sac
* R ...
, which is used for diskless embedded systems.
Neutrino supports
symmetric multiprocessing
Symmetric multiprocessing or shared-memory multiprocessing (SMP) involves a multiprocessor computer hardware and software architecture where two or more identical processors are connected to a single, shared main memory, have full access to all ...
and
processor affinity
Processor affinity, or CPU pinning or "cache affinity", enables the binding and unbinding of a process or a thread to a central processing unit (CPU) or a range of CPUs, so that the process or thread will execute only on the designated CPU or CPU ...
, called bound multiprocessing (BMP) in QNX terminology. 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 (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
real time
Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
, even when the system is overloaded.
The QNX operating system also contained a web browser known as 'Voyager'.
Due to its
microkernel
In computer science, a microkernel (often abbreviated as μ-kernel) is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, ...
architecture QNX is also a
distributed operating system
A distributed operating system is system software over a collection of independent software, networked, communicating, and physically separate computational nodes. They handle jobs which are serviced by multiple CPUs. Each individual node holds a ...
.
Dan Dodge Dan Dodge is a cocreator of the QNX microkernel real-time operating system, with Gordon Bell. They began the project while students at the University of Waterloo in 1980. Dodge then moved to Kanata, Ontario, a high-tech area outside Ottawa, to start ...
and
Peter van der Veen
Peter may refer to:
People
* List of people named Peter, a list of people and fictional characters with the given name
* Peter (given name)
** Saint Peter (died 60s), apostle of Jesus, leader of the early Christian Church
* Peter (surname), a sur ...
hold based on the QNX operating system's distributed processing features known commercially as Transparent Distributed Processing. This allows the QNX kernels on separate devices to access each other's system services using effectively the same communication mechanism as is used to access local services.
Releases
Uses
The
BlackBerry PlayBook
The BlackBerry PlayBook is a mini tablet computer developed by BlackBerry and made by Quanta Computer, an original design manufacturer (ODM). tablet computer
A tablet computer, commonly shortened to tablet, is a mobile device, typically with a mobile operating system and touchscreen display processing circuitry, and a rechargeable battery in a single, thin and flat package. Tablets, being comput ...
designed by BlackBerry uses
a version of QNX as the primary operating system. The
BlackBerry 10
BlackBerry 10 is a discontinued proprietary mobile operating system for the BlackBerry line of smartphones, both developed by BlackBerry Limited (formerly Research In Motion). BlackBerry 10 is based on QNX, a Unix-like operating system that was o ...
operating system is also based on QNX.
QNX is also used in car infotainment systems with many major car makers offering variants that include an embedded QNX architecture. It is supported by popular
SSL/TLS
Transport Layer Security (TLS) is a cryptographic protocol designed to provide communications security over a computer network. The protocol is widely used in applications such as email, instant messaging, and voice over IP, but its use in securi ...
libraries such as
wolfSSL.
In recent years QNX has been used in automated drive or
ADAS systems for automotive projects that require a
functional safety Functional safety is the part of the overall safety of a system or piece of equipment that depends on automatic protection operating correctly in response to its inputs or failure in a predictable manner (fail-safe). The automatic protection system ...
certification. QNX provides this with its QNX OS for Safety products.
QNX OS for Safety
/ref>
QNX Neutrino (2001) has been ported to a number of platforms and now runs on practically any modern central processing unit
A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, an ...
(CPU) family that is used in the embedded market. This includes the PowerPC
PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
, x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was introd ...
, MIPS, SH-4, and the closely interrelated of ARM, StrongARM, and XScale.
Licensing
QNX offers a license for noncommercial and academic users.
Community
* ''OpenQNX'' is a QNX Community Portal established and run independently. An IRC channel and Newsgroups access via web is available. Diverse industries are represented by the developers on the site.
* ''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.
See also
* Comparison of operating systems
These tables provide a comparison of operating systems, of computer devices, as listing general and technical information for a number of widely used and currently available PC or handheld (including smartphone and tablet computer) operating sy ...
* Android Auto
* Android Automotive
Android Automotive (aka Android Automotive OS or AAOS) is a variation of Google's Android operating system, tailored for its use in vehicle dashboards. Introduced in March 2017, the platform was developed by Google and Intel, together with car ma ...
* NNG
* Open Handset Alliance
* Windows Embedded Automotive
* Ford Sync
References
Further reading
*
External links
*
*
Development for QNX phones
Foundry27
QNX User Community
Open source applications
GUIdebook > GUIs > QNX
QNX used for Canadian Nuclear Power Plants
{{Authority control
1980 establishments in Ontario
ARM operating systems
BlackBerry Limited
Computing platforms
Distributed operating systems
Embedded operating systems
Information technology companies of Canada
Lightweight Unix-like systems
Microkernel-based operating systems
Microkernels
Mobile operating systems
Proprietary operating systems
Real-time operating systems
Tablet operating systems
Software companies established in 1980