Skip to content

docs(arch-minvmd-linux-kvm): Linux host support for minvmd (KVM backend + vsock bridge) - #405

Merged
norrietaylor merged 3 commits into
mainfrom
arch/minvmd-linux-kvm-b8b02e56f73ffff0
Jun 13, 2026
Merged

docs(arch-minvmd-linux-kvm): Linux host support for minvmd (KVM backend + vsock bridge)#405
norrietaylor merged 3 commits into
mainfrom
arch/minvmd-linux-kvm-b8b02e56f73ffff0

Conversation

@gominimal-aw-bot

@gominimal-aw-bot gominimal-aw-bot Bot commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Adds the architecture record for extending minvmd from macOS-only to Linux, tracking issue #397.

Chosen approach

Remove the #[cfg(target_os = "macos")] guards that gate pub mod krun, build.rs link directives, image::kernel_format(), and VmConfig::apply(). Add run_linux() alongside run_macos() in cmd/vmm_child.rs and cmd/boot.rs (same libkrun call sequence; no code-signing step on Linux; /dev/kvm capability check instead). Un-gate the three e2e test files and add a Linux KVM CI job.

No ADR promoted. The libkrun API unification across both hypervisor backends is feature-local and already grounded in arch-minvmd-host-daemon.

Why this is mechanical

libkrun exports the same C API on macOS (Hypervisor.framework) and Linux (KVM). The extern "C" block in krun/raw.rs is already platform-agnostic. Extending to Linux is primarily removing guards and extending build.rs.

Files changed

  • docs/specs/02-spec-minvmd-linux-kvm/architecture.md — new architecture record

Next step

Merging this PR advances #397 to phase B (Unit decomposition), where sdd-triage posts the proposed plan as a comment on the tracking issue.

Generated by sdd-triage for issue #397 · sonnet46 5.6M ·

Closes #401

Summary by CodeRabbit

  • Documentation
    • Added architecture spec describing planned Linux KVM backend support, multi-platform execution and boot flow guidance, and removed macOS-only messaging.
  • Tests / CI
    • Documented test strategy and CI updates to add a Linux KVM job, adjust e2e test gating, and require provisioning of KVM-related dependencies and enabling ignored e2e runs.

…ckend

Adds docs/specs/02-spec-minvmd-linux-kvm/architecture.md, the
architecture record for extending minvmd from macOS-only to Linux
(tracking issue #397).

The chosen approach removes the #[cfg(target_os = "macos")] guards from
pub mod krun, build.rs, image::kernel_format(), and VmConfig::apply(), adds
run_linux() alongside run_macos() in cmd/vmm_child.rs and cmd/boot.rs (with
a /dev/kvm capability check in place of the code-signing step), un-gates the
three e2e test files, and adds a Linux KVM CI job.

No ADR promoted: the decision is feature-local; libkrun's unified C API
across both hypervisor backends is already documented in arch-minvmd-host-daemon.

All five load-bearing assumptions are settled from repo state and the prior
architecture record (arch-minvmd-host-daemon).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Jun 13, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds an architecture specification doc to extend crates/minvmd from macOS-only to a Linux KVM backend: details mechanical code changes (ungating, build/link, run_linux), runtime dispatch, CI/e2e job requirements, rejected alternatives, sourcing, and an assumptions ledger.

Changes

Linux KVM Architecture Specification

Layer / File(s) Summary
Spec introduction and mechanical change rationale
docs/specs/02-spec-minvmd-linux-kvm/architecture.md
Document front-matter, project goal, and mechanical approach: remove macOS-only cfg guards and introduce Linux KVM support while keeping core models platform-agnostic.
Per-file interface and runtime dispatch changes
docs/specs/02-spec-minvmd-linux-kvm/architecture.md
Concrete per-file edits: build.rs link handling, lib.rs/pub mod krun ungating, image::kernel_format() ungating, VmConfig::apply() ungating, add run_linux() alongside run_macos() with /dev/kvm pre-check and no macOS codesigning.
User messaging, tests, and CI job
docs/specs/02-spec-minvmd-linux-kvm/architecture.md
Updates crate description to remove “macOS-only”, removes macOS-only file-level test gating (tests still #[ignore]), and specifies a Linux KVM CI job (provision libkrun ≥1.19.0, MINVMD_E2E=1, run ignored tests).
Sourcing and assumption ledger
docs/specs/02-spec-minvmd-linux-kvm/architecture.md
References prior architecture record and records assumptions: libkrun API parity, /dev/kvm access model (no codesigning), libkrun version floor, kernel-format conventions, and platform-agnostic tests.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

Possibly related PRs

Suggested labels

needs-human

Suggested reviewers

  • norrietaylor
  • jtnkminimal
  • evanspearman

Poem

🐰 From macOS burrows to KVM meadows I leap,
libkrun hums softly while the kernels wake from sleep,
/dev/kvm checked, run_linux opens the gate,
minvmd stretches, cross‑host and ready — celebrate! 🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the primary change: adding architecture documentation for Linux/KVM support to minvmd, including vsock bridging.
Linked Issues check ✅ Passed The PR fulfills the core objectives from issue #401: documenting Linux KVM backend support via libkrun, vsock bridging design, parity requirements, and deferred design decisions.
Out of Scope Changes check ✅ Passed All changes are within scope: architecture documentation for Linux/KVM support, removal of macOS-only guards, Linux execution paths, test/CI updates, and design rationale—all aligned with issue #401 objectives.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/specs/02-spec-minvmd-linux-kvm/architecture.md`:
- Around line 153-157: The Linux KVM e2e job is currently non-blocking because
it sets continue-on-error: true; update the CI/workflow config for the "Linux
KVM e2e" job (the job that provisions libkrun, sets MINVMD_E2E=1 and runs cargo
test -p minvmd) to remove or set continue-on-error to false so failures fail the
workflow, and then mark that job as required in branch protection / repository
settings before relying on it as acceptance coverage.
- Around line 30-34: The spec wrongly claims Rust surface works on Linux purely
via identical extern "C" bindings; update the spec and implement/gate
Linux-specific Rust paths: remove or add proper cfgs and provide Linux
implementations that mirror the libkrun symbol surface for the items currently
macOS-only—specifically address crates/minvmd/src/lib.rs (pub mod krun),
crates/minvmd/src/image.rs (kernel_format), and crates/minvmd/src/vm.rs
(VmConfig::apply) so they are available for target_os = "linux" (or provide
Linux equivalents) while keeping krun/raw.rs extern "C" bindings consistent with
the Linux libkrun ABI. Ensure the spec text explains that un-gating requires
real Linux wrappers/config handling that match libkrun symbols.
- Around line 37-39: The spec incorrectly claims crates/minvmd/build.rs emits
Linux linker directives and defaults LIBKRUN_PREFIX to /usr, but build.rs
currently returns early on non-macOS so only macOS uses LIBKRUN_PREFIX; either
update docs to state that build.rs only configures linker/rpath on macOS
(mentioning crates/minvmd/build.rs and LIBKRUN_PREFIX) and remove the Linux /usr
default, or implement the Linux path in crates/minvmd/build.rs to emit
cargo:rustc-link-search and -rpath using LIBKRUN_PREFIX (defaulting to /usr) and
add CI checks to exercise the Linux behavior; make the chosen change and keep
the other (doc or code) consistent.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1f37dae0-a85f-4082-a10b-ca529fdc822b

📥 Commits

Reviewing files that changed from the base of the PR and between 1f65e57 and ab47ef9.

📒 Files selected for processing (1)
  • docs/specs/02-spec-minvmd-linux-kvm/architecture.md

Comment thread docs/specs/02-spec-minvmd-linux-kvm/architecture.md Outdated
Comment thread docs/specs/02-spec-minvmd-linux-kvm/architecture.md Outdated
Comment on lines +153 to +157
A Linux KVM e2e job on a self-hosted KVM-capable runner (GCP nested-virt or
equivalent). It provisions libkrun ≥ 1.19.0, materializes the kernel +
rootfs + initramfs from Minimal packages, sets `MINVMD_E2E=1`, and runs
`cargo test -p minvmd -- --include-ignored`. Initially `continue-on-error:
true`; promoted to required once the runner is stable.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Make the Linux KVM e2e job blocking before using it as acceptance coverage.

continue-on-error: true turns the only Linux signal into telemetry, not enforcement. That means regressions in the Linux boot/session path can still merge even though this PR is supposed to close the Linux-host support gap.

Suggested spec tweak
- Initially `continue-on-error: true`; promoted to required once the runner is stable.
+ Linux KVM e2e is required once introduced, so failures block merges.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
A Linux KVM e2e job on a self-hosted KVM-capable runner (GCP nested-virt or
equivalent). It provisions libkrun ≥ 1.19.0, materializes the kernel +
rootfs + initramfs from Minimal packages, sets `MINVMD_E2E=1`, and runs
`cargo test -p minvmd -- --include-ignored`. Initially `continue-on-error:
true`; promoted to required once the runner is stable.
A Linux KVM e2e job on a self-hosted KVM-capable runner (GCP nested-virt or
equivalent). It provisions libkrun ≥ 1.19.0, materializes the kernel +
rootfs + initramfs from Minimal packages, sets `MINVMD_E2E=1`, and runs
`cargo test -p minvmd -- --include-ignored`. Linux KVM e2e is required once introduced, so failures block merges.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/specs/02-spec-minvmd-linux-kvm/architecture.md` around lines 153 - 157,
The Linux KVM e2e job is currently non-blocking because it sets
continue-on-error: true; update the CI/workflow config for the "Linux KVM e2e"
job (the job that provisions libkrun, sets MINVMD_E2E=1 and runs cargo test -p
minvmd) to remove or set continue-on-error to false so failures fail the
workflow, and then mark that job as required in branch protection / repository
settings before relying on it as acceptance coverage.

@gominimal-aw-bot

This comment has been minimized.

@norrietaylor

Copy link
Copy Markdown
Member

/revise address coderabbit concerns. Validate first

@gominimal-aw-bot gominimal-aw-bot Bot mentioned this pull request Jun 13, 2026
…ure record

Validated all three findings against the current codebase before applying:

1. Clarify FFI boundary claim: krun/raw.rs and krun/ctx.rs need no code
   changes, but pub mod krun, kernel_format(), and VmConfig::apply() are
   all currently gated by #[cfg(target_os = "macos")] guards that must
   be removed. Rewrote the section to separate the FFI-layer (unchanged)
   from the Rust wrapper layer (guards to remove).

2. Fix build.rs description: the current build.rs explicitly returns early
   on non-macOS ("On Linux this is a no-op — the crate compiles to a
   runtime-bailing stub and never links libkrun"). Updated item 1 to
   state that a Linux branch needs to be *added*, not that it already
   emits linker flags.

3. Remove continue-on-error: the Linux KVM e2e CI job is now specified
   as required (blocking) from the moment it is introduced, so regressions
   cannot merge. The previous "promoted to required once stable" language
   made the only Linux signal non-enforcing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@gominimal-aw-bot

Copy link
Copy Markdown
Contributor Author

Commit pushed: 1a45c4c

Generated by sdd-triage · sonnet46 5.7M

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (2)
docs/specs/02-spec-minvmd-linux-kvm/architecture.md (2)

30-38: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Tighten the FFI-boundary wording.

This paragraph still reads as if matching extern "C" bindings alone make the Linux port work. The spec later depends on Rust-side ungating and build-script changes, so this section should be reworded to avoid overclaiming what is already platform-neutral.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/specs/02-spec-minvmd-linux-kvm/architecture.md` around lines 30 - 38,
The paragraph overstates portability by implying that matching extern "C"
bindings alone enable the Linux port; update the text in architecture.md to
clarify that while libkrun exports the same C API and krun/raw.rs and
krun/ctx.rs need no API-level changes, additional Rust-side ungating (removing
or adjusting #[cfg(target_os = "macos")] on pub mod krun, kernel_format(), and
VmConfig::apply()) and build-script changes are required to enable Linux, and
rephrase the sentence that currently claims the change is purely mechanical so
it accurately lists these required Rust and build-script actions instead of
suggesting only the FFI boundary matters.

40-45: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Frame the /usr linker default as proposed behavior.

LIBKRUN_PREFIX=/usr is fine as the target Linux setup, but this text currently reads like an already-established repo behavior. Please mark it explicitly as part of the planned build.rs Linux branch so the spec stays aligned with the current codebase.

Also applies to: 86-91

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/specs/02-spec-minvmd-linux-kvm/architecture.md` around lines 40 - 45,
Update the wording to clearly mark "/usr" as the proposed default for the
planned Linux branch of build.rs rather than an existing behavior: state that
the new Linux branch in build.rs will emit cargo:rustc-link-search and
cargo:rustc-link-arg=-Wl,-rpath using LIBKRUN_PREFIX (proposed default
LIBKRUN_PREFIX=/usr, matching Fedora's libkrun-devel layout), and make the same
clarification for the later paragraph (the other instance referenced). Reference
the planned build.rs Linux branch and LIBKRUN_PREFIX by name so readers know
this is a proposed change, not current repo behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@docs/specs/02-spec-minvmd-linux-kvm/architecture.md`:
- Around line 30-38: The paragraph overstates portability by implying that
matching extern "C" bindings alone enable the Linux port; update the text in
architecture.md to clarify that while libkrun exports the same C API and
krun/raw.rs and krun/ctx.rs need no API-level changes, additional Rust-side
ungating (removing or adjusting #[cfg(target_os = "macos")] on pub mod krun,
kernel_format(), and VmConfig::apply()) and build-script changes are required to
enable Linux, and rephrase the sentence that currently claims the change is
purely mechanical so it accurately lists these required Rust and build-script
actions instead of suggesting only the FFI boundary matters.
- Around line 40-45: Update the wording to clearly mark "/usr" as the proposed
default for the planned Linux branch of build.rs rather than an existing
behavior: state that the new Linux branch in build.rs will emit
cargo:rustc-link-search and cargo:rustc-link-arg=-Wl,-rpath using LIBKRUN_PREFIX
(proposed default LIBKRUN_PREFIX=/usr, matching Fedora's libkrun-devel layout),
and make the same clarification for the later paragraph (the other instance
referenced). Reference the planned build.rs Linux branch and LIBKRUN_PREFIX by
name so readers know this is a proposed change, not current repo behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 66a1cb02-d310-4794-8a13-59757436b516

📥 Commits

Reviewing files that changed from the base of the PR and between ab47ef9 and 1a45c4c.

📒 Files selected for processing (1)
  • docs/specs/02-spec-minvmd-linux-kvm/architecture.md

@gominimal-aw-bot

This comment has been minimized.

@norrietaylor

Copy link
Copy Markdown
Member

/revise

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In @docs/specs/02-spec-minvmd-linux-kvm/architecture.md:

  • Around line 30-38: The paragraph overstates portability by implying that
    matching extern "C" bindings alone enable the Linux port; update the text in
    architecture.md to clarify that while libkrun exports the same C API and
    krun/raw.rs and krun/ctx.rs need no API-level changes, additional Rust-side
    ungating (removing or adjusting #[cfg(target_os = "macos")] on pub mod krun,
    kernel_format(), and VmConfig::apply()) and build-script changes are required to
    enable Linux, and rephrase the sentence that currently claims the change is
    purely mechanical so it accurately lists these required Rust and build-script
    actions instead of suggesting only the FFI boundary matters.
  • Around line 40-45: Update the wording to clearly mark "/usr" as the proposed
    default for the planned Linux branch of build.rs rather than an existing
    behavior: state that the new Linux branch in build.rs will emit
    cargo:rustc-link-search and cargo:rustc-link-arg=-Wl,-rpath using LIBKRUN_PREFIX
    (proposed default LIBKRUN_PREFIX=/usr, matching Fedora's libkrun-devel layout),
    and make the same clarification for the later paragraph (the other instance
    referenced). Reference the planned build.rs Linux branch and LIBKRUN_PREFIX by
    name so readers know this is a proposed change, not current repo behavior.

…lanned default

- Rephrase 'mechanical change' paragraph: krun/raw.rs and krun/ctx.rs
  need no API-level changes, but enabling Linux still requires removing
  cfg(target_os = "macos") guards on pub mod krun, kernel_format(), and
  VmConfig::apply(), plus a Linux build.rs linker branch.
- Rephrase build.rs data-and-interface section to future tense (will be
  added / will emit) and label LIBKRUN_PREFIX=/usr as proposed default.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@gominimal-aw-bot

Copy link
Copy Markdown
Contributor Author

Commit pushed: b2ac631

Generated by sdd-triage · sonnet46 4.5M

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/specs/02-spec-minvmd-linux-kvm/architecture.md (1)

59-62: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Broaden the /dev/kvm preflight error handling.

ENOENT and EACCES are not the only failure modes here; on Linux, policy or container denials can surface as EPERM or other open errors. The spec should say “fail fast on any /dev/kvm open error” and reserve errno-specific messaging for the common cases, otherwise the startup path may fall through to a vaguer libkrun failure.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/specs/02-spec-minvmd-linux-kvm/architecture.md` around lines 59 - 62,
Update the `/dev/kvm` preflight open logic (in the check implemented in
cmd/vmm_child.rs or cmd/boot.rs) so that any error returned from opening
`/dev/kvm` causes an immediate failure instead of falling through; preserve
errno-specific messages for ENOENT and EACCES, but for all other errors (e.g.,
EPERM or other open failures) return a clear, generic "failed to open /dev/kvm"
error that includes the errno/text to aid debugging. Ensure the code path that
previously continued to libkrun on non-ENOENT/EACCES now returns the new error,
and keep the error messages descriptive and include the original error string.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@docs/specs/02-spec-minvmd-linux-kvm/architecture.md`:
- Around line 59-62: Update the `/dev/kvm` preflight open logic (in the check
implemented in cmd/vmm_child.rs or cmd/boot.rs) so that any error returned from
opening `/dev/kvm` causes an immediate failure instead of falling through;
preserve errno-specific messages for ENOENT and EACCES, but for all other errors
(e.g., EPERM or other open failures) return a clear, generic "failed to open
/dev/kvm" error that includes the errno/text to aid debugging. Ensure the code
path that previously continued to libkrun on non-ENOENT/EACCES now returns the
new error, and keep the error messages descriptive and include the original
error string.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b247df8c-9024-4495-a7e8-41dd1afab06b

📥 Commits

Reviewing files that changed from the base of the PR and between 1a45c4c and b2ac631.

📒 Files selected for processing (1)
  • docs/specs/02-spec-minvmd-linux-kvm/architecture.md

@gominimal-aw-bot

Copy link
Copy Markdown
Contributor Author

sdd-validate · Architecture boundary · PR #405

Boundary resolved: Architecture — adds docs/specs/02-spec-minvmd-linux-kvm/architecture.md

Gate set applied: Architecture gates (4 gates)


Results

Gate Result Evidence
1. Decision and rationale present ✅ Pass "Chosen approach" section states the decision (remove #[cfg(target_os = "macos")] guards) and the rationale (libkrun exports the same C API on both platforms; the guards are historical artefacts, not a meaningful feature split). architecture.md:1–26
2. Alternatives considered ✅ Pass Option A (Cargo feature kvm-backend) and Option B (separate minvmd-linux crate) are both documented with explicit rejection reasons. architecture.md:143–168 ("Alternatives considered")
3. Consistent with existing decisions ✅ Pass The sole accepted ADR (decisions/0001-rust-error-handling-strategy.md) is unrelated. The record explicitly grounds itself in arch-minvmd-host-daemon as the predecessor and extends rather than contradicts it. No conflicts found.
4. No implementation detail masquerading as a decision ✅ Pass The "Data and interface changes" section contains implementation-level guidance (specific file paths, function names, linker flags), but it is clearly labelled as supplementary context for the task-decomposition phase, not as an architectural decision. The actual decisions (approach selection, alternative rejection, platform-gating strategy) are cross-cutting and correctly placed.

Overall: Architecture boundary passed clean. No findings. No needs-human required.

Note: CodeRabbit's review comments flag wording precision issues in the "Data and interface changes" section (FFI-boundary phrasing, /usr default framing). Those are editorial polish, not architecture-gate findings under this boundary's criteria.

Generated by sdd-validate for issue #405 · sonnet46 1.2M ·

@norrietaylor
norrietaylor enabled auto-merge (squash) June 13, 2026 05:18
@norrietaylor
norrietaylor merged commit 341d486 into main Jun 13, 2026
24 checks passed
@norrietaylor
norrietaylor deleted the arch/minvmd-linux-kvm-b8b02e56f73ffff0 branch June 13, 2026 05:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

architecture: Linux host support for minvmd (KVM backend + vsock bridge)

1 participant