On Thu, Sep 10, 2015, at 18:40, Gernot Heiser wrote:
IIUC, this doesn’t change our existing kernel or libsel4 code, does it? If it doesn’t, then it clearly should be maintained as a separate project.
Right. I hand-ported the syscall interface for x86 and then noticed that a bunch of it was generated from the XML with some Python, so I'm writing some Python to also generate the Rust syscall interface and other APIs.
Our preferred mode for such projects is that where we think they add valuable pieces to the seL4 ecosystem (both in terms of functionality as well as quality) we’ll either package with or refer from our “contributed” directory, but have them independently maintained. It’s great to see that this is starting to happen.
However, you’re not the only one working on Rust on seL4, specifically there is a group of students in my Advanced OS class that are building their OS in Rust. I’ll point them to this, maybe we can integrate the result.
The syscall interface will certainly be portable, at least. I can also get a seL4 target into Rust upstream, which should make it somewhat easier to use, for example, Cargo unmodified. I've worked with and on Rust a lot (including working for Mozilla on it two summers ago), so if you have any Rust-related questions or requests feel free to go to me either through email or on IRC (cmr on irc.mozilla.org).
We’ve also been debating internally with project partners on whether Rust should be a recommended user-level language (which would mean that some of our toolchains would be re-targeted for Rust). No decision has been made yet, but the size and liveness of the Rust community is an important consideration, and your work is an indication that this is definitely worth considering.
I've been stirring up a fair amount of interest in seL4 in the Rust community (especially the #rust-crypto IRC channel) as well as in the open source labs at my university (http://cslabs.clarkson.edu/pages/cosi/). There's five of us right now with varying levels of knowledge with the intent to implement a POSIX compliant userland directly on seL4 (instead of eg paravirtualizing Linux). I can send a formal introduction to the project at a later date if you wish, with the project timeline and scope. -- /cmr