Hi, basically a RTOS is a some sort of scheduler around a big bunch of 
device-drivers, memory handling and chip-init/boot-routines around 'em 
hopefully well designed to service/process events within the time required :-). 
If you have a battery powered design you will face additional challenges if you 
intend to use a RTOS.

Threading is just an abstraction layer to keep your code structured. Keep in 
mind that a poorly designed data-model always results in bad code. A GC assists 
you not to think about this issue and you are able to deliver some short-term 
results fast.

If you like to do real parallel processing ensure the hardware fit's your needs 
(each core owns it's (independent) memory and a DPRAM around 'em.)

If you look at the ADSP-SC589 for instance and like to do parallel processing 
you "just" need an event loop for each core which does the work with some 
(short,nested) interrupt handlers - no need for GC and threads.

Nim gives you the power/freedom to do all that stuff outlined above and go 
further (RTOS-less runtime environment with Nim only for instance)

There are also efforts from @mratsim targeting this audience: 
[https://forum.nim-lang.org/t/5083](https://forum.nim-lang.org/t/5083)

Reply via email to