Using rust (https://www.rust-lang.org) in user applications on top of seL4 with 
existing C libaries and apps now has limited support.


See here for more information: https://wiki.sel4.systems/Rust


What you can do:

 + Build system support for using a rust cargo project as a library or app on 
seL4

 + Use most core libraries (core, alloc, collections, rustc_unicode, and a 
limited std)

 + Use rust dependencies from crates.io on seL4

 + Use rust to implement camkes components

 + Using rust's FFI support it is possible to call rust from C and C from rust.


Two sample apps are located here: 
https://github.com/SEL4PROJ/rust-camkes-samples

Instructions for building and running are on the wiki page.


Has been tested on x86 i386 and arm kzm both in qemu and hardware.


Caveats:

 + Rust's libstd functionality is limited by which muslc syscalls are supported 
on seL4.

 + Rust's libstd requires muslc thread local storage support which is not 
currently available on seL4.  We currently use a muslc branch called rust that 
uses a global TLS struct.


Kent McLeod
Kernel engineer / Thesis Student
DATA61 | CSIRO
_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to