[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] Rust unikernels


  • To: mirageos-devel <mirageos-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Amir Chaudhry <amc79@xxxxxxxxx>
  • Date: Wed, 12 Aug 2015 23:11:19 +0100
  • Delivery-date: Wed, 12 Aug 2015 22:11:37 +0000
  • List-id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>

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 <contact@xxxxxxxxxxxxxxxxxxx> 
> 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@xxxxxxxxxxxxxxxxxxxx
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.