Expand description
Pre-built x86_64 runtime assets for supermachine’s KVM backend, packaged as a Rust crate so embedders never fetch binaries out of band.
This is the x86_64 counterpart of supermachine-kernel-aarch64. You
normally don’t depend on it directly — depend on the
supermachine-kernel facade, which re-exports the right arch’s crate by
target_arch. Cargo only downloads the sub-crate matching the build
target, so an x86_64 build pulls only this crate (and never the aarch64
kernel), and vice-versa.
Three assets are bundled:
- Linux kernel (
KERNEL_BYTES) — a minimal-config x86_64bzImage(Linux 6.12). Everything the microVM needs is built in (MODULES=n): virtio-MMIO (+CMDLINE_DEVICES), virtio-blk, virtio-vsock, squashfs, overlayfs, ext4, 8250 console. No module loading, no host-kernel coupling. - busybox (
BUSYBOX_BYTES) — a static x86_64 busybox. The KVM bake stages it into the agent initramfs as the PID-1 init’s toolbox (mount, switch_root, overlay setup). supermachine-agent(SUPERMACHINE_AGENT_BYTES) — the in-VM control agent (static x86_64-musl). Runs as PID 1 inside the container afterswitch_root, servingexec/control RPCs over vsock.
Unlike the aarch64/HVF crate, there is no init-oci or smpark.ko:
the KVM backend builds the container rootfs (overlayfs + switch_root)
directly in the agent initramfs’s generated init, and does not park
secondary vCPUs via a kernel module.
Constants§
- BUSYBOX_
BYTES - Raw bytes of the static x86_64 busybox staged into the agent initramfs.
The generated PID-1 init uses it for the overlayfs +
switch_rootdance that builds the writable container rootfs from the read-only OCI squashfs. - BUSYBOX_
LEN - Length of the busybox binary in bytes.
- KERNEL_
BYTES - Raw bytes of the x86_64 kernel — a minimal-config Linux
bzImage. - KERNEL_
LEN - Length of the kernel image in bytes —
KERNEL_BYTES.len(), const-evaluable. - SUPERMACHINE_
AGENT_ BYTES - Raw bytes of the in-VM
supermachine-agent(static x86_64-musl ELF). Runs as PID 1 inside the container post-switch_root, serving docker-styleexecand other control RPCs over vsock. - SUPERMACHINE_
AGENT_ LEN - Length of the supermachine-agent binary in bytes.
Functions§
- extract_
busybox_ to - Write the bundled busybox to
dest, executable (mode 0o755) on Unix. - extract_
busybox_ to_ with_ parents - Like
extract_busybox_tobutmkdir -p’s the parent dir first. - extract_
kernel_ to - Write the bundled kernel image to
dest. Overwrites any existing file; the parent dir must exist (useextract_kernel_to_with_parentsto mkdir). - extract_
kernel_ to_ with_ parents - Like
extract_kernel_tobutmkdir -p’s the parent dir first. - extract_
supermachine_ agent_ to - Write the bundled
supermachine-agenttodest, executable on Unix. - extract_
supermachine_ agent_ to_ with_ parents - Like
extract_supermachine_agent_tobutmkdir -p’s the parent first.