QNX
QNX (/ˌkjuː ˌɛn ˈɛks/ or /ˈkjuːnɪks/) is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. The product was originally developed in the early 1980s by Canadian company Quantum Software Systems, founded March 30, 1980, and later renamed QNX Software Systems. As of 2022[update], it is used in a variety of devices including automobiles,[1] medical devices, program logic controllers, automated manufacturing, trains, and more. HistoryGordon Bell and Dan Dodge, both students at the University of Waterloo 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, to start Quantum Software Systems that year. In 1982, the first version of QUNIX was released for the Intel 8088 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 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[citation needed] 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) 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[2] concept was developed into the embeddable graphical user interface (GUI) named the QNX Photon microGUI. QNX also provided a version of the X Window System. 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 for the 386 PC.[3][4] 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 application programming interfaces (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) 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 makes and models, in telematics systems, and in infotainment and navigation units.[citation needed] The QNX CAR Application Platform was running in over 20 million vehicles as of mid-2011.[5] 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' IOS-XR (ultra high availability IOS, introduced 2004)[6][7] and IOS Software Modularity (introduced 2006)[8] 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.[9] On April 9, 2010, Research In Motion (later renamed to BlackBerry Limited) announced they would acquire QNX Software Systems from Harman International Industries.[10] On the same day, QNX source code access was restricted from the public and hobbyists.[11] In September 2010, the company announced a tablet computer, the BlackBerry PlayBook, and a new operating system BlackBerry Tablet OS based on QNX to run on the tablet.[12] On October 18, 2011, Research In Motion announced "BBX",[13] which was later renamed BlackBerry 10, in December 2011.[14] Blackberry 10 devices build upon the BlackBerry PlayBook QNX based operating system for touch devices, but adapt the user interface for smartphones 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.[15][16] On December 11, 2014, Ford Motor Company stated that it would replace Microsoft Auto with QNX.[1] 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.[17] 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 [v8 and v9] 64 bit platforms, GCC12 based toolchain and a QNX toolkit for Visual Studio Code.[18] On July 17, 2024, QNX launched QNX Containers, providing a standards-based environment for the deployment, execution, and management of container technology on QNX-based devices.[19] On September 14, 2024, QNX Filesystem for Safety (QFS) was announced. QFS is a POSIX-compliant, ISO 26262 certified, integrity checking filesystem to provide OEMs and other embedded software suppliers an additional layer of validation when building safety-critical systems.[20] On January 2, 2025, BlackBerry unveiled the strategic relaunch of the QNX brand. Previously named ‘BlackBerry IoT’, the decision to rename the division ‘QNX’ and relaunch the QNX brand is part of a broader strategy to increase visibility and fortify leadership within the automotive and embedded industries.[21] On January 6, 2025, QNX, Vector, and TTTech Auto announced a multi-year, global undertaking to collaborate, develop and market a foundational vehicle software platform for software integration. This vehicle software platform is pre-integrated, lightweight, and certified to the automotive industry’s highest functional safety (ISO 26262 ASIL D) and security (ISO 21434) standards.[22] At CES 2025, QNX announced it is collaborating with Microsoft to make it easier for automakers to build, test, and refine software within the cloud, accelerating the development of Software-Defined Vehicles (SDVs). QNX confirmed that its Software Development Platform (SDP) 8.0 would be coming to Microsoft Azure as part of the collaboration.[23] At CES 2025, QNX launched QNX Cabin, its industry-first automotive software solution designed to accelerate digital cockpit development. QNX Cabin aims to solve the problem of developing in mixed-criticality environments, blending safety-critical features (e.g. Advanced Driver Assistance Systems) running on the safety-certified QNX Operating System (OS) with consumer applications delivered via guest operating systems including Android Automotive and Linux.[24] QNX also revealed more details of its QNX Everywhere initiative at CES 2025. Intended to nurture and grow QNX’s worldwide developer community by giving free access to QNX Software Development Platform (SDP) 8.0 to students, schools, research organizations, and hobbyists, QNX Everywhere also includes complimentary resources and on-demand training.[25] TechnologyAs a microkernel-based OS, QNX is based on the idea of running most of the operating system 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, QNX interprocess communication consists of sending a message from one process to another and waiting for a reply. This is a single operation, called 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'.[28] Due to its microkernel architecture QNX is also a distributed operating system. Dan Dodge and Peter van der Veen hold U.S. Patent 6,697,876: Distributed kernel operating system 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.[non-primary source needed] Releases
UsesThe BlackBerry PlayBook tablet computer 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.[32] 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.[33] QNX Neutrino (2001) has been ported to a number of platforms and now runs on practically any modern central processing unit (CPU) family that is used in the embedded market. This includes the PowerPC, x86, MIPS, SH-4, and the closely interrelated group of ARM, StrongARM, and XScale. As of June 26, 2023, QNX software is now embedded in over 235 million vehicles worldwide, including most leading OEMs and Tier 1s, such as BMW, Bosch, Continental, Dongfeng Motor, Geely, Ford, Honda, Mercedes-Benz, Toyota, Volkswagen, Volvo, and more.[34] LicensingQNX offers a license for noncommercial and academic users.[35] In January 2024, BlackBerry introduced QNX Everywhere to make QNX more accessible to Hobbyists. QNX Everywhere was made publicly accessible in early 2024.[36] Community
QNX Board Support PackagesQNX 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. [39] BlackBerry QNX PartnersBlackBerry 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.[40] See also
References
Further reading
External linksWikimedia Commons has media related to QNX. |