HOME

TheInfoList



OR:

QNX ( or ) is a commercial
Unix-like A Unix-like (sometimes referred to as UN*X, *nix 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 Uni ...
real-time operating system, aimed primarily at the
embedded system An embedded system is a specialized 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 e ...
s market. The product was originally developed in the early 1980s by
Canadian Canadians () 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 their being ''C ...
company Quantum Software Systems, founded March 30, 1980, and later renamed QNX Software Systems. , it is used in a variety of devices including
automobiles A car, or an automobile, is a motor vehicle with wheels. Most definitions of cars state that they run primarily on roads, Car seat, seat one to eight people, have four wheels, and mainly transport private transport#Personal transport, peopl ...
,
medical devices A medical device is any device intended to be used for medical purposes. Significant potential for hazards are inherent when using a device for medical purposes and thus medical devices must be proved safe and effective with reasonable assura ...
, program logic controllers, automated manufacturing,
trains A train (from Old French , from Latin">-4; we might wonder whether there's a point at which it's appropriate to talk of the beginnings of French, that is, when it wa ... , from Latin , "to pull, to draw") is a series of connected vehicles th ...
, and more.


History

Gordon Bell and Dan Dodge, both students at the
University of Waterloo The University of Waterloo (UWaterloo, UW, or Waterloo) is a Public university, public research university located in Waterloo, Ontario, Canada. The main campus is on of land adjacent to uptown Waterloo and Waterloo Park. The university also op ...
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 satellite city, satellite community and former city within Ottawa, Ontario. It is located about west of the city's Downtown Ottawa, downtown core. As of 2021, the former City of Kanata had a population of 98,938, with the ...
, 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 ...
CPU. In 1984, Quantum Software Systems renamed QUNIX to QNX (Quantum's Network eXecutive) 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 the southernmost Provinces and territories of Canada, province of Canada. Located in Central Canada, Ontario is the Population of Canada by province and territory, country's most populous province. As of the 2021 Canadian census, it ...
education system's own computer design, the Unisys ICON. 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 application programming interfaces (APIs), along with comm ...
) 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 A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
(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 originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
. 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, a diskette, or a disk) is a 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 with a ...
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 (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 application programming interfaces (APIs), along with comm ...
application programming interface An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
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 (
integrated development environment An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
) 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 Industries. Before this acquisition, QNX software was already widely used in the automotive industry for telematics systems. Since the purchase by Harman, QNX software has been designed into over 200 different
automobile A car, or an automobile, is a motor vehicle with wheels. Most definitions of cars state that they run primarily on roads, Car seat, seat one to eight people, have four wheels, and mainly transport private transport#Personal transport, peopl ...
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 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. (using the trademark Cisco) is an American multinational corporation, multinational digital communications technology conglomerate (company), conglomerate corporation headquartered in San Jose, California. Cisco develops, m ...
' IOS-XR (ultra high availability IOS, introduced 2004) and IOS Software Modularity (introduced 2006) were based on QNX. IOS Software Modularity never gained traction and was limited only to small run for Catalyst 6500, while IOS XR moved to Linux
as of release 6.x
In September 2007, QNX Software Systems announced the availability of some of its
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
. On April 9, 2010, Research In Motion (later renamed to
BlackBerry Limited BlackBerry Limited, formerly Research In Motion (RIM), is a Canadian software company specializing in secure communications and the Internet of things, Internet of Things (IoT). Founded in 1984, it developed the BlackBerry brand of Interactiv ...
) 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 computers ...
, the BlackBerry PlayBook, and a new operating system BlackBerry Tablet OS based on QNX to run on the tablet. On October 18, 2011, Research In Motion announced "BBX", which was later renamed '' BlackBerry 10'', 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 mobile phone with advanced computing capabilities. It typically has a touchscreen interface, allowing users to access a wide range of applications and services, such as web browsing, email, and social media, as well as multi ...
s using the Qt based Cascades Native User-Interface framework. At the Geneva Motor Show, Apple demonstrated CarPlay which provides an iOS-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 corporation, multinational automobile manufacturer headquartered in Dearborn, Michigan, United States. It was founded by Henry Ford and incorporated on June 16, 1903. T ...
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 platforms, and support for C++14. It was released in March 2017. In December 2023, QNX released QNX SDP 8.0 which is powered by a next generation microkernel with support for the latest Intel and ARM 8 and v964 bit platforms, GCC12 based toolchain and a QNX toolkit for Visual Studio Code.


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 and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
kernel in the form of a number of small tasks, named Resource Managers. This differs from the more traditional
monolithic kernel A monolithic kernel is an operating system software architecture, architecture with the entire operating system running in kernel space. The monolithic model differs from other architectures such as the microkernel in that it alone defines a high ...
, 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 (also name of the binary executable program for the QNX Neutrino ('nto') process ('proc') itself), contains only CPU scheduling, interprocess communication,
interrupt In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted ...
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 (also dynamic memory management, dynamic storage allocation, or dynamic memory allocation) is a form of Resource management (computing), resource management applied to computer memory. The essential requirement of memory manag ...
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 the kernel. The network stack is based on
NetBSD NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was fork (software development), forked. It continues to ...
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, multi-user 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, a ...
and
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
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 The Mach number (M or Ma), often only Mach, (; ) is a dimensionless quantity in fluid dynamics representing the ratio of flow velocity past a Boundary (thermodynamic), boundary to the local speed of sound. It is named after the Austrian physi ...
. 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 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, which is used for diskless embedded systems. Neutrino supports symmetric multiprocessing and processor affinity, 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, 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. Dan Dodge and Peter van der Veen 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
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 computers ...
designed by BlackBerry uses a version of QNX as the primary operating system. The BlackBerry 10 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 libraries such as wolfSSL. Since the introduction of its "Safe Kernel 1.0" in 2010, QNX was projected and used subsequently in automated drive or ADAS systems for automotive projects that require a functional safety certified RTOS. QNX provides this with its QNX OS for Safety products. 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 primary Processor (computing), processor in a given computer. Its electronic circuitry executes Instruction (computing), instructions ...
(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, MIPS, SH-4, and the closely interrelated group of ARM, StrongARM, and
XScale XScale is a microarchitecture for central processing units initially designed by Intel implementing the ARM architecture (version 5) instruction set. XScale comprises several distinct families: IXP, IXC, IOP, PXA and CE (see more below), with some ...
. QNX software is now embedded in over 255 million vehicles worldwide, including most leading OEMs and Tier 1s, such as BMW, Bosch, Continental, Dongfeng Motor, Geely, Ford, Honda, Mercedes-Benz, Subaru, Toyota, Volkswagen, Volvo, and more.


Licensing

On Jan 06, 2005, QNX made its software development platform available for non-commercial use. QNX offers a license for noncommercial and academic users. In January 2024, BlackBerry introduced QNX Everywhere to make QNX more accessible to Hobbyists. QNX Everywhere was made publicly accessible in early 2024.


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.


QNX Board Support Packages

QNX Standard Support is available for a BSP that is listed below as available on QNX Software Center. For other BSPs, alternative forms of support (e.g., custom support plans, etc.) may be available or required from the “BSP Supplier” or “Board Vendor” indicated below.


BlackBerry QNX Partners

BlackBerry QNX has worked with a network of partner organizations to provide complementary technologies. These important relationships have ability to provide the foundational software, middleware, and services behind the world's most critical embedded systems.


See also

* Comparison of operating systems * Android Auto * Android Automotive * Automotive Grade Linux * CarPlay *
Ford Sync Ford Sync (stylized Ford SYNC) is a factory-installed, integrated in-car communications and entertainment system, in-vehicle communications and entertainment system that allows users to make hands-free telephone calls, control music and perform ...
* HarmonyOS NEXT * OpenHarmony * Windows Embedded Automotive


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 X86 operating systems X86-64 operating systems