Are any projects or tutorials exists on using Nim for programming rump kernels or bare metal programs?
What minimal API and POSIX libraries must be provided by the background C runtime to make Nim works?
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