user-mode-linux (also called uml) is an easy way to quickly try out a custom kernel. Although it is not very well suited to make performance-measurements, it is very good to do functional tests of your changes to the kernel. Additionally, if you have a bug and can realiably reproduce it in user-mode-linux, it is very easy to fix it. Because compiling a new uml-image is very fast and executing it goes also very fast. Thus, you get instant feedback from your debugging-statements you added in the code to track down the bug.

To use user-mode-linux, we prepared an uml-environment that can be setup by downloading and executing the script It downloads pre-compiled uml-images (updated every day with the latest mptcp_trunk), filesystems and some scripts. You need around 3GB of free space on your hard-drives to hold the filesystems. The scripts do some stuff as "root". So, use them at your own risk.

Get help from the script with:

  python ./ -h

If you want to compile your own uml-images, you have to do the following:

  make ARCH=um menuconfig (configure the kernel)
  make ARCH=um (compile the kernel)

This will create a file "vmlinux" in your build-directory. You can use this one to boot in your uml-environment and try out your changes.