3 ms·
It is impressive, but a major limitation is that programs currently need to be verified by the Rust compiler. I love Rust, but not everyone should have to for a
by vacuity 3y ago
It is impressive, but a major limitation is that programs currently need to be verified by the Rust compiler. I love Rust, but not everyone should have to for a general-purpose OS. There's always emulation/runtime layer, but that seems like a step backwards. Maybe it can be a decent compromise?
- Aerbil313 3y agoIt's obvious that native binaries are replaced by web more and more every day. Web uses runtimes (Wasm and JS). We can definitely afford to run everything in runtimes and emulation. Btw, Theseus recently got Wasm support. Games? Write them thar thangs in Rust. The ideas of Theseus is akin to those of NixOS, one easily feels they are 'the one obviously correct way' of doing it. I recommend the founder's presentations on YouTube.
- vacuity 3y agoRust is great, but "rewrite it in Rust" is a tired and unrealistic refrain. Aside from performance concerns, an emulation layer defeats the validations that Theseus incorporates as an intralingual codebase. It'll be like a mix of a microkernel and a monolithic kernel; drivers, file system managers, and whatnot can stay in the OS, but there'll have to be heavyweight userspace processes all the same. Theseus and Singularity/Midori are great proof of concepts, but I think we need a third (fourth? fifth? What number are we on?) path.
- Aerbil313 3y agoTo clarify, there is no motivation towards RIIR except the fact that Rust’s guarantees are required for Theseus’s very existence. I do not understand how the emulation layer can defeat validations. As long as the emulator is conformant to validations, it should be okay. I’m probably ignorant of something here. Regarding performance, in a presentation, the Theseus dev mentioned one study which showed the performance tax of context switching with attack mitigations (Spectre etc.) can be as much as %15-%30 in modern conventional OSes.
- vacuity 3y agoTo my understanding, any kind of emulation layer or runtime can't leverage Rust's type system to achieve the cheap context switches and other benefits that define Theseus today. It seems to me that programs running on the emulation layer will essentially be conventional heavyweight processes. There are still benefits over conventional monolithic OSes, but not as significant.