Skip to main content

Crate supermachine_kernel_x86_64

Crate supermachine_kernel_x86_64 

Source
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:

  1. Linux kernel (KERNEL_BYTES) — a minimal-config x86_64 bzImage (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.
  2. 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).
  3. supermachine-agent (SUPERMACHINE_AGENT_BYTES) — the in-VM control agent (static x86_64-musl). Runs as PID 1 inside the container after switch_root, serving exec/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_root dance 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-style exec and 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_to but mkdir -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 (use extract_kernel_to_with_parents to mkdir).
extract_kernel_to_with_parents
Like extract_kernel_to but mkdir -p’s the parent dir first.
extract_supermachine_agent_to
Write the bundled supermachine-agent to dest, executable on Unix.
extract_supermachine_agent_to_with_parents
Like extract_supermachine_agent_to but mkdir -p’s the parent first.