xref: /aosp_15_r20/external/crosvm/docs/book/src/appendix/rust-vmm.md (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker# Summary
2*bb4ee6a4SAndroid Build Coastguard Worker
3*bb4ee6a4SAndroid Build Coastguard Workercrosvm is open to using rust-vmm modules. However, as of Fall 2020 there has been no progress toward
4*bb4ee6a4SAndroid Build Coastguard Workerthat goal. Among other areas, differences in host operating system support methods in `sys-util`
5*bb4ee6a4SAndroid Build Coastguard Workermake integration challenging . It is possible to overcome this and enable crosvm to use common
6*bb4ee6a4SAndroid Build Coastguard Workermodules, but that work is not yet started.
7*bb4ee6a4SAndroid Build Coastguard Worker
8*bb4ee6a4SAndroid Build Coastguard Worker# Background
9*bb4ee6a4SAndroid Build Coastguard Worker
10*bb4ee6a4SAndroid Build Coastguard Worker## VMMs
11*bb4ee6a4SAndroid Build Coastguard Worker
12*bb4ee6a4SAndroid Build Coastguard WorkerSoon after crosvm's code was public, Amazon used it as the basis for their own VMM named
13*bb4ee6a4SAndroid Build Coastguard WorkerFirecracker. After Firecracker came other rust-based VMM implementations, all using parts of crosvm.
14*bb4ee6a4SAndroid Build Coastguard WorkerIn order to drive collaboration and code sharing, an independent organization was created, named
15*bb4ee6a4SAndroid Build Coastguard Worker[rust-vmm](https://github.com/rust-vmm).
16*bb4ee6a4SAndroid Build Coastguard Worker
17*bb4ee6a4SAndroid Build Coastguard Worker## Sharing Model
18*bb4ee6a4SAndroid Build Coastguard Worker
19*bb4ee6a4SAndroid Build Coastguard WorkerRust-vmm aims to provide common components consumed by various implementations of VMMs using rust.
20*bb4ee6a4SAndroid Build Coastguard WorkerThis allows for sharing components such as virtio queue parsing while allowing full customization by
21*bb4ee6a4SAndroid Build Coastguard Workerindividual VMM implementation. The goal is for several VMM projects, Firecracker, Cloud Hypervisor,
22*bb4ee6a4SAndroid Build Coastguard Workerand crosvm to use the shared components.
23*bb4ee6a4SAndroid Build Coastguard Worker
24*bb4ee6a4SAndroid Build Coastguard Worker## Future
25*bb4ee6a4SAndroid Build Coastguard Worker
26*bb4ee6a4SAndroid Build Coastguard Workercrosvm and rust-vmm are most alike in the
27*bb4ee6a4SAndroid Build Coastguard Worker[kvm-bindings](https://github.com/rust-vmm/kvm-bindings)(limited by crosvm's use of aarch64 bindings
28*bb4ee6a4SAndroid Build Coastguard Workeron arm32 hosts), and [vmm-sys-util](https://github.com/rust-vmm/vmm-sys-util)(currently limited by
29*bb4ee6a4SAndroid Build Coastguard Workerdifferences in non-linux OS support strategy). Integrating these two modules would open the gates to
30*bb4ee6a4SAndroid Build Coastguard Workersharing more code with rust-vmm, but that work remains low priority for crosvm.
31