Internships/ProjectIdeas/RustVMMReferenceAarch64: Difference between revisions
(Created page with "=== Extend aarch64 support in rust-vmm/vmm-reference === '''Summary:''' Flesh out aarch64 (ARM) support in vmm-reference to make its features comparable to x86_64 The vmm-re...") |
No edit summary |
||
Line 26: | Line 26: | ||
* about the vmm-reference: https://github.com/rust-vmm/vmm-reference | * about the vmm-reference: https://github.com/rust-vmm/vmm-reference | ||
* about the rust-vmm project: https://github.com/rust-vmm/community | * about the rust-vmm project: https://github.com/rust-vmm/community | ||
* task breakdown for adding arm support: | * task breakdown for adding arm support: https://github.com/rust-vmm/vmm-reference/issues?q=is%3Aissue+is%3Aopen+label%3Aaarch64 | ||
https://github.com/rust-vmm/vmm-reference/issues?q=is%3Aissue+is%3Aopen+label%3Aaarch64 | |||
'''Details:''' | '''Details:''' |
Latest revision as of 12:53, 25 February 2022
Extend aarch64 support in rust-vmm/vmm-reference
Summary: Flesh out aarch64 (ARM) support in vmm-reference to make its features comparable to x86_64
The vmm-reference is a reference implementation of a Rust VMM based on rust-vmm crates. This is currently used for testing the integration of rust-vmm components, with plans of extending it such that it becomes a starting point for custom Rust VMMs.
The vmm-reference currently has support for x86_64 and proof-of-concept level support for aarch64. On aarch64, it just supports booting a dummy VM with no devices, while on x86_64 it has support for the virtio-net and virtio-blk devices. The purpose of this project is to extend the existing functionality getting it closer to what is already available on x86_64, and consume the readily available crates (for example vm-allocator) that would make the integration easier.
Goals:
- Set up interrupt controller.
- Add a real-time clock device.
- Add a serial port.
- Add flattened device tree (FDT) so guest has a machine description.
(See below for a full list of tasks)
Links:
- about the vmm-reference: https://github.com/rust-vmm/vmm-reference
- about the rust-vmm project: https://github.com/rust-vmm/community
- task breakdown for adding arm support: https://github.com/rust-vmm/vmm-reference/issues?q=is%3Aissue+is%3Aopen+label%3Aaarch64
Details:
- Project size: 350 hours
- Difficulty: intermediate to advanced
- Required skills: Rust programming
- Desired skills: Python programming for integration tests
- Mentors: Andreea Florescu <fandree@amazon.com>, Sergey Glushchenko <gsserge@amazon.com> (rust-vmm Slack chat)