Hi folks, 

After a few twitter messages, there’s now also a thread on the Rust forum about 
Unikernels (which references this thread).

https://internals.rust-lang.org/t/unikernels-in-rust/2494

Just so you know, the Rust team is also interested in making this use-case 
easier and would welcome input.
https://twitter.com/rustlang/status/631150661485359104
https://twitter.com/rustlang/status/631150745048510464

AC

> On 24 Jul 2015, at 13:00, Geoffroy Couprie <cont...@geoffroycouprie.com> 
> wrote:
> 
> Hello!
> 
> A chat on Twitter showed some interest in unikernels developed in
> Rust, and I was pointed here for further discussion.
> 
> First, I want to acknowledge the amazing work done on MirageOS by
> everybody here. I have followed it from afar for some time, and there
> has been great progress to make it available and usable.
> 
> Second, I know making a unikernel system means years of work and a
> team of developers and testers. I am not planning to attempt it alone.
> What I want is to sort out the skills needed, the big pitfalls, the
> important milestones, and know about the unknown unknowns. Then push
> for that project in the Rust community.
> 
> From the beginning, people experimented with OS development in Rust
> (cf https://github.com/ryanra/RustOS
> https://github.com/thepowersgang/rust-barebones-kernel or
> https://github.com/charliesome/rustboot ). There is also a very active
> IRC channel, #rust-osdev on irc.mozilla.org
> 
> From what I understand, the bare minimum to experiment would be an OS
> booting and communicating with a network card, scheduling and task
> switching, remote debugging, a network stack. Also, tools to help in
> building, deploying and testing applications.
> The ryanra/RustOS project seems well advanced, but it could use a network 
> stack.
> 
> A rough plan could be to take that project and:
> - strenghten the rtl8139 driver
> - write parsers and serializers for ARP, IP, TCP (it looks like
> MirageOS does not even need DHCP, since the IP address is passed at
> compilation time, is that right?). This is something I am already
> pushing for a parser combinators project I launched (
> https://github.com/Geal/nom )
> - building the API above that network stack
> - the system can be monotask at first, but preemtive threading should
> happen at some point
> - a part of Rust standard library is already available, I do not know
> how much is needed to support the use case of a HTTP server
> - building monitoring tools inside the kernel
> - building a testing infrastructure
> 
> These steps look quite naive, but as I said, that's a very rough plan
> for something that could take years. As for the skills needed:
> - writing drivers and schedulers
> - developing network stacks (there are projects like
> https://github.com/libpnet/libpnet which could be integrated)
> - implementing Rust libstd APIs
> - testing and tooling industrialization
> 
> What would you think of this project? What would increase its chances
> of success? Which steps will be very difficult?
> 
> It could really benefit from Mirage's experience :)
> 
> Cheers,
> 
> Geoffroy Couprie
> 
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

Reply via email to