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

Re: [Minios-devel] WebAssembly Runtime for Unikraft?

Hi Jonathan,

We don't have any official material, but one good reference point is the Python 
port that is currently on the mailing list/patchwork:

* https://patchwork.unikraft.org , "Initial port of CPython on Unikraft" patch 
* More specifically: https://patchwork.unikraft.org/patch/735224/

While it may look a bit lenghty, most of the lines of code are from Python 
config files that are auto-generated. Most of the porting work consists of 
identifying the source files needed for the runtime, and adding those to 
Makefile.uk; after that it's a matter of seeing if there are any missing 

I can give you further information, but if you're interested perhaps the best 
might be that we add you to our Mattermost chat service and we take this 
offline, what do you think?


-- Felipe

Dr. Felipe Huici
Chief Researcher, Systems and Machine Learning Group
NEC Laboratories Europe GmbH
Kurfuerstenanlage 36, D-69115 Heidelberg
Tel.  +49
(0)6221 4342-241
Fax:  +49
(0)6221 4342-155
Registered at Amtsgericht Mannheim, Germany, HRB728558

On 17.07.19, 00:00, "Jonathan Beri" <jmberi@xxxxxxxxx> wrote:

    Thanks, I was able to complete the getting started tutorial. Where can I 
find the material for porting runtimes? I'm not optimistic I can contribute but 
worth taking a look!
    On Tue, Jul 16, 2019, 5:01 AM Felipe Huici <Felipe.Huici@xxxxxxxxx> wrote:
    Hi Jonathan,
    I think targeting wasm-micro-runtime would make sense, and the porting 
process isn't as difficult as it sounds :). Do you know if wasm-micro-runtime's 
build system is able to generate a static library/archive? We could then link 
that into a Unikraft build.
     In terms of languages, right now we support c/c++, so that would work for 
wasm-micro-runtime (we're working on other languages such as Go, Rust, Python, 
Ruby, etc.). We also support pthreads...and as far as I can tell the only 
dependency that wasm-micro-runtime
     has is glibc (which we can replace with newlib, which we support; we're 
working on musl too).
    If you're interested, perhaps you can take just a bit of time to do a short 
Unikraft tutorial?
    We also have a bit of material on how porting to Unikraft works, again, 
noting too time consuming.
    -- Felipe
    On 16.07.19, 09:42, "Jonathan Beri" <jmberi@xxxxxxxxx> wrote:
        Great to hear! Unfortunately porting is beyond my skills but I'd love 
to help where I can! Fortunately, there are several implementations of Wasm 
runtimes that have a comptabible license. Are there any technical requirements 
that would need to
         be satisfied, like language or threading model?
        On Fri, Jun 28, 2019 at 2:43 AM Simon Kuenzer <simon.kuenzer@xxxxxxxxx> 
        Hey Jonathan,
        thanks for reaching out to us. We agree, WASM is another very 
interesting target and we had already internal discussions about porting this. 
You are right with
         your arguments.
        So far, no one is working on this. Would you like to do a port of WASM 
to Unikraft? We could give some starting pointers.
        An important criteria for selecting the runtime is the open source 
license that is used and if it is compatible to our Unikraft BSD license. For 
instance, projects
         using GPL ones would not work for us.
        Let us know what you think.
        Minios-devel <minios-devel-bounces@xxxxxxxxxxxxxxxxxxxx> on behalf of 
Jonathan Beri <jmberi@xxxxxxxxx>
        Date: Friday, 28. June 2019 at 08:18
        To: "minios-devel@xxxxxxxxxxxxxxxxxxxx" 
        Subject: [Minios-devel] WebAssembly Runtime for Unikraft?
        I'm new to Unikraft but as I understand it, new language support is 
added by adding new runtimes. Has the team evaluated using WebAssembly 
         as a runtime? WASM by design is meant to execute any language that can 
compile to it and by design isn't limited to the web (see
<https://webassembly.org/docs/non-web/>.) There are many runtime
         implementations which could be used 
(https://github.com/appcypher/awesome-wasm-runtimes) and are running on 
everything from serverless compute
     platforms (https://www.cloudflare.com/products/cloudflare-workers/)
         to microcontrollers (https://github.com/intel/wasm-micro-runtime.) 
Adopting a WebAssembly runtime could open up Unikraft to many more languages, 
     means potential for code reuse.

Minios-devel mailing list



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