Thank you for your very informative answer.
Have you seen the Real Time For the Masses (RTFM) framework?
I haven’t studied it in depth, but I’ve read your blog posts on the subject. I like the concept (especially the static verification at compile time). However I feel like it could become somewhat limiting, if your project approaches a certain complexity, so there are still types of applications that could probably benefit from using a normal RTOS.
The Rust language is not tied to any particular concurrency model; instead it has two marker traits, Send and Sync, that can be used to build concurrency models. Those two plus the borrow checker has been enough to build a memory safe thread-based concurrency model in the standard library, and to build a memory safe task-based concurrency model in the RTFM framework.
Thanks, I made the usual mistake of conflating the Rust language and its standard library
I had a quick look at the implementation of
std::thread and especially the constraints of the closure that
thread::spawn() takes and that cleared things up a little as to how it could potentially work (although I imagine the devil’s in the details…)
OTOH adding support for one of these RTOSes to the standard library sounds less likely.
Yeah, I think that would not make sense given the sheer number of RTOSes there exist, in addition to the points you mention…