📜 ⬆️ ⬇️

QNX Real-Time Operating System: Introduction

It so happened that my activity is related to the QNX real-time operating system (RTOS). For several years I have been developing both for this OS and some parts of the system itself. Drew attention to the fact that the search on Habré displays few results for QNX, however, it seems to me that this RTOS may be of interest not only to specialists in embedded and highly reliable systems, but also to the wider public. It's no secret that RIM's BlackBerry PlayBook tablet computer is based on QNX and is popular with us.

A little bit about QNX


A QNX RTOS is not a clone or a Linux distribution or a fork of some other UNIX-like system. QNX is a standalone, real-time UNIX-like operating system based on the microkernel and messaging. Modern versions of QNX have support for POSIX standards (and are certified for them). The first version of QNX was released back in 1981. Since then, quite a lot of time has passed and the QNX generations have replaced each other: QNX2, QNX4, and finally, QNX 6 (or QNX Neutrino). The old QNX2 is still in use now, although it flourished in the 80s of the last century. Reliable and more advanced QNX4 RTOS could compete on the desktop with Windows in the mid-90s (in the screenshot below, the screen of the Russified version of QNX4):

QNX 4.25 (CPA.00002-01). File manager.
')
In the late 90s, a new QNX branch began to develop - QNX6 or QNX Neutrino. This is a modern version of RTOS, which was released at the very beginning of the 2000s and introduced a lot of new features in QNX: support for hardware architectures other than x86 (MIPS, PowerPC, ARM, SH4), support for multiprocessing, support for shared libraries, etc. The RTOS subsystems were reworked, for example, the Photon graphics system and the network subsystem. By the way, now there is a possibility of simply porting NetBSD network drivers to QNX6.

About QNX as such, you can write very, very many good and warm words, aided by a modular structure, high reliability, ease of development for this OS, excellent built-in reference manual, and much, much more. But probably not worth so much praise?

Perhaps now the most interesting version of QNX for review is QNX6. All new projects are mainly built on QNX6, and the system itself supports many modern and popular technologies. In addition, for QNX4 there are no trial or non-commercial licenses and the system itself is no longer evolving, but only supported by the manufacturer (driver updates and bug fixes are issued). Then I will write exactly about QNX6, unless explicitly stated otherwise.

QNX Applications


QNX is primarily an operating system for building embedded systems. But one of the main features of QNX is modularity and, as a result, scalability. Because of this, QNX can be used in miniature controllers and desktop computers. And the QNX transparent network allows you to build high-performance network clusters.

Usually QNX RTOS is used where high reliability of the system is required: medical equipment, military equipment and weapons, oil and gas and metallurgical industries, etc. At the end of the last decade, QNX began to evolve towards supporting multimedia technologies, which contributed to the emergence of the QNX Car project, as well as the BlackBerry PlayBook tablet PC.

QNX6 Composition


Some new QNX users (probably not as advanced as Habrahabr participants) may be puzzled by the composition and components of QNX6. I will try to prevent confusion that may arise in the future. In the ten years that QNX6 is available to users, various QNX delivery options have been applied. The simplified and most successful (in my opinion) delivery scheme is now used, and QNX 6.5.0 consists of the following two main components:
It should be noted that the QNX SDP is available for Windows and Linux platforms. Officially, only a few Linux distributions are supported, but in practice, not so much is needed, for the most part, only modern Java. I personally develop under QNX in a 64-bit ArchLinux-based tooling system.

Just in case, I’ll clarify that QNX Neutrino is the operating system, and QNX SDP is a cross-platform development tool for QNX Neutrino.

QNX Neutrino Software


The QNX6 distribution includes, in addition to the microkernel and drivers, a number of console utilities, both QNX-specific and common to all UNIX-like systems. In addition, there is a graphics subsystem based on Photon 2.0. This is a stand-alone graphical environment that is not compatible with either Windows or X-Window. However, there is a system service XPhoton, which allows you to run graphical applications using the X-protocol.

Other graphical environments are available for QNX6, which are based on Adobe Flash Lite 3 technologies (available separately) or Qt / Embedded (currently version 4.7.1 is available in Foundry27).

Among other things, QNX supports the pkgsrc package management system, which has a large number of open source software available, both in the form of assembled binary packages and in the form of scripts for building.

QNX6 supports the POSIX specifications, which means it shouldn’t be difficult to assemble correctly written C code in QNX. Which, by the way, I have done many times.

QNX6 license types


QNX is a commercial operating system and you will need a license to install. There are various types of QNX6 licenses:
It is clear that a non-commercial license without limitation of validity is the most interesting variant of acquaintance with the QNX6 RTOS.

Register myQNX account


Registration is required to access many sections of the qnx.com site and the Foundry27 community. Registration is simple and does not take much time. To register, go to www.qnx.com and click on the Login link located in the upper right corner. After that, select the item New member? then the registration form will open at the bottom of the screen. Now it remains to specify the e-mail, enter and confirm the password and click the Create Account button. To complete the registration, you will need to fill out a short form and get a confirmation code by e-mail, which must be indicated on the form on the next page. At this registration ends, you can now download the distribution QNX.

Registration of a non-commercial license


Go to the Non-commercial developers page. In the first step, they offer to download QNX SDP for the instrumental platform in which they plan to develop. Now you can skip this step and go directly to step two (below). It should be noted that you agree with the license agreement (if you really agree), check that the specified data is correct, and click the Submit button. After that, the license will be sent to the specified email address.

If a letter with a license key is lost, then it can always be viewed in the profile on qnx.com .

Conclusion


At first I wanted to write a note about installing QNX, but I got so carried away with the introduction that I understood that if I write more about the installation, then very few people want to read it all to the end. In this regard, probably I should apologize that there are so few interesting technical details in the note. On the other hand, I will probably prepare a separate note on installing QNX and not only on x86 PCs. And maybe not only for installation. And if you suddenly ask someone to describe some kind of QNX technology or a topic related to QNX, then I will try to meet them.

Topics for the following QNX topics


During the discussion, the following topics were proposed for future QNX topics:
I will slowly cook and publish. If something else is interesting, then write in a personal.

QNX Published Topics


Below is a list of materials that have already been published:

Source: https://habr.com/ru/post/124656/


All Articles