Beginner questions: Seoul, Rust, DDE, and system composition

Timo Nicolai timo.nicolai at gapfruit.com
Fri Sep 15 20:02:10 CEST 2023


Hello Ben,

On 15.09.23 10:46, Benjamin Lamowski wrote:
> Hi Zach,
>
> I'll answer the question which is in my core expertise and leave it to 
> my colleagues to give possibly more nuanced answers to your other 
> questions:
>
>
>> [2] What is the state of rust support for Genode? I have seen a few 
>> mentions of it in release notes. Can I make base API calls from rust 
>> (e.g., requesting sessions, creating child components, etc.), or is 
>> it similar to running applications with the POSIX compatibility layer?
>
> Currently our Rust support is focused on leveraging the existing 
> ecosystem, i.e. we focused on getting the unmodified Rust standard 
> library to run on our FreeBSD-based compatibility layer (see the 
> beginning of my blog post[1] for our rationale behind that).
>
> Now, just as Rust links to our port of the FreeBSD C library via the 
> libc crate, it would be possible to leverage Rust's Foreign Function 
> Interface (FFI) to call into to our base library, which as you 
> probably know serves as the abstraction layer to the various kernels 
> supported by the Genode OS Framework.
> I would be very much interested to pursue this, but so far due to lack 
> of commercial funding there is no timeline for supporting base API 
> calls from Rust. I haven't worked with Rust's FFI in quite some time, 
> so I can't estimate how easily this could be accomplished with 
> rust-bindgen[2] or the cxx.rs library[3]. If you want to give it a 
> shot, we can surely support you with getting the application to work 
> with goa[4].
> I will bring up base API support for Rust when we discuss next year's 
> roadmap.

Since you mention this, I have been thinking about trying working on 
this since I have previously written software to generate Rust bindings 
for C++. Assuming that generating bindings is possible/easy, what would 
still need to be done to compile/link these into native Genode 
components (maybe at first with libc, and later without it)?
>
> I hope that answers at least one of your questions!
>
> Best wishes,
>
> Ben
>
>
> [1] https://genodians.org/atopia/2023-05-30-bringing-rust-back-to-genode
> [2] https://rust-lang.github.io/rust-bindgen/cpp.html
> [3] https://cxx.rs
> [4] https://github.com/genodelabs/goa/
>
Best,
Timo

-- 
Timo Nicolai
Operating Systems Engineer
Gapfruit AG
Baarerstrasse 135
6300 Zug - Switzerland
timo.nicolai at gapfruit.com
https://gapfruit.com




More information about the users mailing list