Reenix: Implementing a Unix-Like Operating System in Rust [pdf]
"The only problem is that rust was built with the idea that it will be used with a malloc style memory allocator. This kind of allocator is rather hard to implement using slab allocators since malloc must be able to allocate buffers of any size."..."About the only somewhat difficult challenge was that I was unable to find any clean way to switch between different virtual terminals.  I ended up having to just update a pointer so that the interrupt subsystem could know which TTY to send input to." (discouraged in rust).It's a good exercise to try to take a language with promise and use it for a systems task to understand what's possible. But sometimes some languages need to be systems languages, and others need to be application languages, because there are different assumptions and default cases we want to make easy/possible for developers.