Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to access the hardware in QNX?

I installed QNX on the machine. The question is, the embedded system must also have access to the hardware, port management, and so on. How is this implemented in QNX? In what direction to study? So far I've found this the organization of files, directories, users, groups, etc. Or I do not understand the operating principle of the system

like image 891
John Avatar asked Sep 02 '25 02:09

John


1 Answers

NOTE: I PUT A LINK ON CODE SAMPLES at THE BOTTOM.

Ill try to explain it in terms of difference between Linux and QNX.

QNX is a RTOS and its kernel can be referred as Neutrino Kernel. Kernel is just a bare bones which interacts with H/W and it is the core of any operating system, But OS consists of application software and Kernel which works in unison to achieve the purpose of a computer system.

Linux on its own is just a Kernel, the GNU/Linux is a complete OS.

Linux is based on monolithic architecture whereas QNX is Micro Kernel.

Monolithic kernel: all the OS service run along with the kernel main thread thus residing in the same memory. Monolithic kernels are easier to implement but a bug in some part like the driver can bring down the total system.

MORE RANT:

QNX is a complete microkernel based on realtime OS, vs Linux which is a monolithic kernel. QNX can run on many Embedded platforms, such as on mini computers in cars which have satnav or music controls.(Jeep Cherokee), SCADA systems. The application building framework is much different than X11, or Wayland you get on Linux. As shown in QNX GUI it is much closer to to the bone and metal.

Example: In Linux if you want to draw a circle on the screen, this will go through many layers of abstraction like the X11, in QNX things take a more direct route which makes it faster on a small chip, this results in loosing most of the networky stuff which X11 makes possible on to Linux.

QNX is somewhat out of the box, supported framework for making embedded systems, vs GNU/LINUX is a bit more opposite of this.

Real Time side of things is about both timely responses and accuracy of the response.

Look here to understand QNX and different parts that you need for coding.

QNX Sample Code can be found here.

like image 98
BlooB Avatar answered Sep 04 '25 16:09

BlooB