Supported Platforms

smolvm runs Linux guests through the host’s native virtualization interface. Host and guest architectures must match.

Local host matrix

HostGuestRequirementNotes
macOS on Apple Siliconarm64 LinuxmacOS 11+ and Hypervisor.frameworkSupported release path
macOS on Intelx86_64 LinuxNot supportedNo release asset is published for darwin-x86_64
Linux x86_64x86_64 LinuxKVM and access to /dev/kvmSupported
Linux aarch64aarch64 LinuxKVM and access to /dev/kvmSupported
Native Windows x86_64x86_64 LinuxWindows Hypervisor PlatformSupported through smolvm.exe

Apple Silicon and x86_64 programs

Rosetta 2 integration can run supported x86_64 Linux binaries inside an arm64 guest on Apple Silicon. It does not change the guest architecture or make an x86_64 .smolmachine artifact compatible with an arm64 host. Turn it on with --rosetta on machine run (Smolfile rosetta = true), which then pulls the image as linux/amd64 unless --oci-platform names another platform. Without it, an x86_64 image fails with Exec format error.

Windows and WSL

Native Windows uses Windows Hypervisor Platform and is the primary Windows path.

WSL2 can use the Linux/KVM path on Windows 11 when nested virtualization and KVM are available. WSL2 on Windows 10 cannot provide the required nested KVM support. Use native Windows there.

Native Windows branches and checkpoints machines, with two differences from the other hosts: a live branch needs --freeze-source, and the incremental checkpoint store, machine checkpoint --store, is refused. It still lacks Vulkan GPU acceleration. Packing works there too: pack create uses the two .ext4 templates shipped beside smolvm.exe, so keep them in the same folder.

The first run on Windows has to create symbolic links, so it needs Developer Mode (Settings, Privacy & security, For developers) or one run from an elevated shell. A host directory mounted into a machine there shows as owned by root with mode 0755, so only a workload running as root can write to it.

Cloud clients

Using the Cloud API does not require a local hypervisor. A client can create smol cloud machines from any environment that can authenticate and reach the API, subject to the SDK or HTTP client’s own platform support.

Cloud guests are Linux. Native Windows host support does not imply Windows guest support in smol cloud.