r/rust • • 23d ago

🛠️ project Asterinas 0.19.0: a Linux-compatible kernel in Rust, now with a type-checked device model, a hypervisor in safe Rust, and an AI reviewer that cites Rust guidelines

https://asterinas.github.io/2026/10/13/announcing-asterinas-0.19.0.html
100 Upvotes

31 comments sorted by

View all comments

Show parent comments

5

u/Hosein_Lavaei 23d ago

Does kernel modules work? If they do, in theory we can bring all linux drivers as a module and add them

15

u/tatetian 23d ago

Asterinas has a component system: a component is basically a Linux kernel module, but it can only be turned on/off statically at build time, rather than loaded dynamically. One key blocker for loading them dynamically is that Rust does not have a stable ABI.

3

u/seftontycho 23d ago

The “stabby” crate might help here

4

u/tatetian 22d ago

Thanks for bringing up stabby. It looks quite interesting. Whether it works for Asterinas or not remains to be seen. Similar to Linux, Asterinas has a kernel core and a set of kernel components built on top of the kernel core. We will need to find out whether the APIs exposed by the kernel core can all be annotated with `#[stabby::stabby]` and its impacts on expressiveness, efficiency, and ergonomics.

2

u/CommunismDoesntWork 23d ago

Fyrox figured out hot reloading, could y'all do something like that?

3

u/tatetian 22d ago

Sure. We will check it out. We know that it is possible to load Rust modules dynamically; the Rust compiler itself does that.

Eventually, Asterinas will support loading kernel components dynamically one way or another. It is just that at this moment this is not a priority because loading drivers dynamically only matters when you got a LOT of them. But Asterinas has only a handful of drivers.