This is the second part in the series on writing a QNX resource manager in Rust. See the first part for background information on message passing and resource managers in QNX. This post will describe the design I came up with for writing a resource manager in Rust. It is neither complete, nor optimal, and [ ]
Welcome to the first part of a series of posts on how to write a QNX resource manager in Rust. This post will, in fact, not discuss Rust at all, but rather provide some background information on resource managers. Disclaimer I am a Rust novice (or noob, as the cool kids would say). It is [ ]
QNX is billed as a real time operating system, or RTOS. The same term is used to describe systems such as FreeRTOS, RT-Threads, Zephyr, PX5 and many more, which suggests that these operating systems are interchangeable. Unfortunately, that is a common misconception that leads to much confusion. In this post I will attempt to explain [ ]
Along with a new micro-kernel, QNX 8 ships with a new memory manager. This is the fourth incarnation of this component since the introduction of the QNX Neutrino operating system. To understand the changes, let s examine the previous version of the memory manager. Memory Management in QNX 7 The memory manager shipped with QNX 7 [ ]
It took a while, but QNX 8 is now free for non-commercial use. Along with access to the software development platform (SDP), users get a Raspberry Pi 4 image, which serves as the basis for learning about the OS, prototyping, research activity and hobbyist projects. If you want to get acquainted with QNX, you can [ ]
In the post Virtual Memory , we saw how each process has its own view of memory, and how processes are isolated from each other. We also saw how access controls can be used to allow for the safe sharing of data in various scenarios, such as : In this post we will take a closer [ ]
(If you have not done so already, you may wish to read the previous two posts about memory management, as they contain information that is relevant to following discussion: the basics and virtual memory.) This post may read a bit like a manual page (especially the description of the arguments to the function), but since [ ]
In the previous post we saw how the memory management unit (MMU) uses page tables to translate virtual addresses into physical ones. We will now consider the various features that such a translation enables in an operating system. In the discussion below, it is important to remember that the granularity of translation is a single [ ]
I have recently re-designed the memory manager for QNX 8, getting rid of certain features and improving performance. The description of these changes, the trade-offs and the challenges encountered, requires some knowledge of memory management in an operating system. In this series of blog posts I hope to provide the necessary background that would allow [ ]
I have been a fan of the Qt cross-platform toolkit ever since I first used it in 1999. While I have never developed Qt applications professionally, it has been my go-to UI framework for personal projects over the years. The fact that Qt is fully supported on QNX is a nice bonus, and I have [ ]