Separately, I think making a GPS-synced weather station would be a fun project. QNX is often used when tight timing is needed for telemetry, so using it to collect weather (and other) data, including from pulsing hardware like an anemometer, and then publishing it to an online service would be a lot of fun.
If software-only is more your style, there may or may not be someone in the office next to me porting some classic games right now! =)
Maybe I will tell it all wrong, but I remember that for example it could be easy to do RPC on the same machine for the isolation. A client calls the server and the scheduler would switch context immediately to the server process upon IPC.
What would be QNX specific would be making sure the main app is always responsive to user input. That the network, DB, or other things don’t slow it down. That might be done by scheduling dedicated time for both input and the main loop. Non-blocking I/O so main loop can check the progress of other things. Maybe a monitor in there watching for freezes.
If any component freezes, have it restart and get new/updated state. If that works, next version is a two-board, highly-available system with QNX’s networked IPC.
You already have to add things to microkernel-based systems to make them useful. You have to add even more to those based on separation kernels.
Drivers are in user-land and can be restarted at runtime. Probably more, but it's been awhile since I used it. A lot of it comes from QNX having a micro-kernel.
> RT can also linux.
PREEMPT_RT was merged in september of this year[1]. I terms of "hard real-time" with PREEMPT_RT scheduler still not completely deterministic like in QNX.
[1]: Note that you could have turned linux in "somewhat" hard real-time with or without PREEMPT_RT patches for user-land application.
I do not know what you mean. IPC over IP is at least 50 years old, and today can be done with ANY POSIX system, as it is part of the Standard!
>> Drivers are in user-land and can be restarted at runtime. Probably more, but it's been awhile since I used it. A lot of it comes from QNX having a micro-kernel. And QNX is as microkernel as MacOs
Honesty at this point I don’t know if you are trolling or being sarcastic or you really never used linux. You absolutely can work with drivers in userspace in Linux (that is standard practice for driver development in linux) and has absolutely nothing, not even remotely, to do with the kernel architecture.
>> still not completely deterministic like in QNX.
First we have to admit that RT term is loosy, is used lousy and is full of it. Specially when somebody says “completely deterministic” there is just not a complete deterministic thing in a computer. Bottom line (a) RT Linux is more than enough for anything in the real world. (b) I haven't used QNX lately, but as I did, the only thing deterministic was the “yeah… this box has to be rebooted once a week, or QNX will just hang”