I want to propose sessions types to whoever designs the message passing for Redox. As near as I can tell, Redox does not yet have its message passing system laid out (after a quick check of the code, forum, and book). I think there is a strong case to be made for leveraging session types in a microkernel, the biggest of which is to prevent deadlocks at compile time. I think it’s important to introduce session types early into the design process, because it would be infeasible to add later to an established kernel.
Here are some resources for researching the topic:
- Thesis: Practical Session Types in Rust [PDF]
- Session Types for Rust (Short Version) [PDF]
Towards safe and fast reconfigurable programming [PDF]
- ICFP 2015 - Session Types for Rust [Video]
- Moonconf 2016 - Session Types for Me and You and Everyone We Know [Video]
I hate to come to any project as an “ideas guy”; I’d much rather contribute with RFCs and PRs, but this has been bugging me for weeks. It will be at least a year before I will have time to contribute to Redox.