Skip to content
/ krun Public
forked from AsahiLinux/muvm

krun - run programs from your system in a microVM

License

Notifications You must be signed in to change notification settings

m1m1k4tz/krun

 
 

Repository files navigation

krun - run programs from your system in a microVM

krun allows you to run arbitrary programs from your system in a microVM. It's comprised of two small programs:

  • krun: links against libkrun to create the microVM.

  • krun-guest: acts as an entrypoint inside the microVM to set up the environment for running your program.

Using

Usage: krun [OPTIONS] COMMAND [COMMAND_ARGS...]
OPTIONS:
        -h    --help                Show help
              --net=NET_MODE        Set network mode
              --passt-socket=PATH   Instead of starting passt, connect to passt socket at PATHNET_MODE can be either TSI (default) or PASST

COMMAND:      the command you want to execute in the vm
COMMAND_ARGS: arguments of COMMAND

Running graphical applications

If sommelier is installed in your system, krun will use it to connect to the Wayland session on the hosts, allowing you to run graphical applications in the microVM.

GPU acceleration is also enabled on systems supporting DRM native context (freedreno, amdgpu, asahi).

Running x86/x86_64 on aarch64

If FEX-Emu is installed in your system, krun will configure binfmt_misc inside the microVM so x86/x86_64 programs can be run transparently on it.

Motivation

This tool is mainly intended to enable users to easily run programs designed for 4K-page systems on systems with a different page size, with Asahi Linux being the prime example of this use case.

Other potential use cases could be software isolation, accessing privileged kernel features (provided by the guest) or local testing.

About

krun - run programs from your system in a microVM

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.9%
  • C 0.1%