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