Skip to content

Running DOMjudge in WSL

Thijs Kinkhorst edited this page Aug 22, 2021 · 3 revisions

What is WSL

Information about Windows Subsystem for Linux (WSL) can be found here: https://docs.microsoft.com/en-us/windows/wsl/faq

WSL with DOMjudge

WSL simulates enough of the Linux features needed to install DOMjudge. The DOMjudge team does not explicitly test if this still works when they release a new version. This page has some pointers to get it to work.

Using the correct distribution version

Check if the Distribution you want to use is WSLv2, you can do this with wsl -l -v. Using a distribution which is version 1 comes with a possible performance penalty but might work for the domserver. The judgehost needs cgroup capabilities which are not available in WSLv1. Because of the current configure flow the user would need to do a manual configure to get the installation configured. The additional work needed is in our opinion not worth the investigation.

Using WSLv2

If you use a distribution with version 2 the installation is currently possible. Microsoft might change the kernel options we depend on as it uses a custom kernel for this. To setup DOMjudge you should do all steps inside the WSL container. A simple check for this is to run uname -r when it fails this is not inside the container. Do both the initial clone/download of the release and all configure steps inside this container. Installation works the same as for a default linux installation.

Some last pointers:

  • Please be aware that all network ports are shared between the WSL and the windows machine. Listing the listening ports inside WSL might not list fully correct information.
  • If you encounter issues we might be able to help if you provide the following information:
    • From powershell:
      • wsl -l -v
    • From within the distribution:
      • uname -r,
      • grep cgroup /proc/filesystems
      • and from the directory where you unpacked DOMjudge pwd; ls -l