No description
Find a file
dependabot[bot] 34d71f3420 build(deps): bump the patches group with 4 updates
Bumps the patches group with 4 updates: [serde](https://github.com/serde-rs/serde), [proc-macro2](https://github.com/dtolnay/proc-macro2), [syn](https://github.com/dtolnay/syn) and [zerocopy](https://github.com/google/zerocopy).


Updates `serde` from 1.0.210 to 1.0.213
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.210...v1.0.213)

Updates `proc-macro2` from 1.0.88 to 1.0.89
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.88...1.0.89)

Updates `syn` from 2.0.82 to 2.0.85
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.82...2.0.85)

Updates `zerocopy` from 0.8.6 to 0.8.7
- [Release notes](https://github.com/google/zerocopy/releases)
- [Changelog](https://github.com/google/zerocopy/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google/zerocopy/compare/v0.8.6...v0.8.7)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: proc-macro2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: zerocopy
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 07:51:59 -07:00
.github chore: group dependabot PRs 2024-10-19 18:35:15 -07:00
alioth build(deps): bump the patches group with 4 updates 2024-10-28 07:51:59 -07:00
alioth-cli feat(vfio): building devices from legacy VFIO API 2024-10-27 23:20:39 -07:00
docs docs(sev): update sev guest instructions 2024-08-01 00:17:06 -07:00
macros feat(aco): add trait Help and the derive macro 2024-07-28 13:45:39 -07:00
serde-aco feat(vfio): add parameter type for legacy VFIO API 2024-10-27 23:20:39 -07:00
serde-aco-derive chore: add description to serde-aco-derive 2024-09-02 20:46:22 -07:00
.gitignore chore(git): ignore vsocde configs 2024-04-26 00:06:54 -07:00
Cargo.lock build(deps): bump the patches group with 4 updates 2024-10-28 07:51:59 -07:00
Cargo.toml build(deps): bump snafu from 0.8.4 to 0.8.5 2024-09-30 09:14:45 -07:00
LICENSE Initial release 2024-04-24 19:34:14 -07:00
README.md docs: mark supporting legacy VFIO API as done 2024-10-27 23:20:39 -07:00
rust-toolchain.toml build: use stable rust as default 2024-04-24 22:06:25 -07:00
rustfmt.toml Initial release 2024-04-24 19:34:14 -07:00

Alioth

GitHub Actions Workflow Status GitHub code size in bytes Crates.io Version Crates.io License

Alioth is an experimental KVM-based type-2 hypervisor (virtual machine monitor) in Rust implemented from scratch.

Important

Disclaimer: Alioth is not an officially supported Google product.

Quick start

  • Install Alioth from source,

    cargo install alioth-cli --git https://github.com/google/alioth.git
    
  • Make an initramfs with u-root.

  • Boot a Linux kernel with 2 CPUs and 4 GiB memory,

    alioth -l info --log-to-file \
        run \
        --kernel /path/to/vmlinuz \
        --cmd-line "console=ttyS0" \
        --initramfs /path/to/initramfs \
        --mem-size 4G \
        --num-cpu 2
    

Features

  • Runs on x86_64 and aarch64.
  • Boots confidential VMs with AMD SEV, SEV-ES, or SEV-SNP, see coco.md for details.
  • VirtIO devices
    • net backed by a tap device,
    • vsock backed by host /dev/vhost-vsock,
    • blk backed by a raw-formatted image,
    • entropy backed by host /dev/urandom,
    • fs backed by virtiofsd with experimental Direct Access (DAX),
    • (WIP) balloon with free page reporting.
  • PCI device passthrough based on VFIO/IOMMUFD.
  • Other devices
    • serial console: 16450 on x86_64, pl011 on aarch64,
    • fw_cfg (QEMU Firmware Configuration Device),
    • pvpanic.

TODOs

  • explore a better solution to ACPI DSDT to replace the pre-compiled AML bytes,
  • increase test coverage,
  • add missing documents,
  • (long term) port Alioth to Apple's Hypervisor framework,
  • performance, performance, and performance!

Acknowledgment

The virtualization implementation in Alioth takes the following projects as references,

The error handling practice is inspired by GreptimeDB's stack_trace_debug.