QNX

C. Burak Ongay
brakulla
Published in
2 min readJul 7, 2018

QNX is a commercial Unix-like real-time operating system. Its main aim is embedded systems, widely used in the automotive industry. It is a little bit different than we use in daily life.

It is developed by Quantum Software Systems in Canada, then named QNX Software Systems. In 2009 or 2010, it is acquired by BlackBerry (I read both of these years).

QNX is one of the first commercially successful microkernel operating systems in the market.

The kernel is responsible of CPU scheduling, inter-process communication, interrupt redirection and timers. Other stuff runs as a user process, which includes process creation and memory management in conjuction with the microkernel. This is achieved with subrouting-call type inter-process 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 code.

QNX IPC consist of sending a message from one process to another and waiting for a reply. This is a single operation. 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.

The boot loader is pretty amazing in my point of view. Custom processes, which will solely in user space, can be run at boot up, meaning that it is not needed to put it in the kernel of the operating system.

Its latest version is Neutrino, and it support symmetric multiprocessing and processor affinity.

--

--