GithubHelp home page GithubHelp logo

Rust Microkit Migration Plan about microkit HOT 4 OPEN

podhrmic avatar podhrmic commented on August 15, 2024
Rust Microkit Migration Plan

from microkit.

Comments (4)

nspin avatar nspin commented on August 15, 2024 1

I've updated simple-sel4cp-demo. Now, the seL4 and sel4cp submodules point to commits which are based on current upstream trunks (as of writing), and contain only the minimal set of changes.

The seL4 commit contains only one change on top of upstream trunk (seL4/seL4:master), and that is a rebased version of the boot protocol change found at BreakawayConsulting/seL4:sel4cp-core-support. As @Ivan-Velickovic mentioned, I've been using a more up-to-date kernel.

The sel4cp commit contains only two changes on top of upstream trunk (BreakawayConsulting/sel4cp:main). One is the one seL4_MinSchedContextBits-related change that @Ivan-Velickovic mentioned. The other just adds handling for unaligned ELF segments in PDs, and could be polished and upstreamed.

from microkit.

Ivan-Velickovic avatar Ivan-Velickovic commented on August 15, 2024

I believe @nspin intends to upstream his changes to add Rust support, but I don't know any more details other than that. It might be best to ask him directly.

I think the only difference between Nick's kernel and the current seL4CP kernel is that Nick's is more recent. To my knowledge the only thing that needs to change in seL4CP to use a newer kernel is that seL4_MinSchedContextBits was changed, so this line https://github.com/BreakawayConsulting/sel4cp/blob/74db455afd369f9db0442735cfdc13df52fb9163/tool/sel4coreplat/sel4.py#L157 should reflect that. I'm planning to change the kernel to instead properly export these hard-coded values so that in the future using an updated kernel is less fragile.

Nick has already made this change though and has it working, I don't see any issue with just using his version of seL4 with seL4CP until his Rust work gets mainlined.

from microkit.

lsf37 avatar lsf37 commented on August 15, 2024

Just to confirm: the plan is to converge all of this so it works together out of the box. It'll take a bit more time until it is there, but I don't think we're far off.

from microkit.

Ivan-Velickovic avatar Ivan-Velickovic commented on August 15, 2024

Now that @nspin's Rust support for seL4 (including Microkit) has been moved to the seL4 Foundation, there's just a couple more things to sort out before this issue can be resolved:

  1. Decide whether to have the microkit Rust crate live in this repository or not.
  2. Have at least one example written in Rust in this repository, a hello-world is definitely necessary given that the build process for using Rust is very different compared to the C examples.
  3. Properly integrate everything regarding documentation, if you were to solely look at the contents of this repository and the SDK manual, you would have no idea that Rust bindings exist. If the other Rust examples such as https://github.com/seL4/rust-microkit-demo and https://github.com/seL4/rust-microkit-http-server-demo continue to live in their own repositories, we need to at least have pointers to them from here.
  4. Allow the microkit crate to use the mainline Microkit SDK (there's just a couple minor patches to be upstreamed so should be trivial just a matter of time).

from microkit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.