Running GUI applications:
One of the main limitations of WSL is that it is not capable of running graphical user interface (GUI) applications. This means that you cannot run programs such as a web browser, a text editor with a graphical interface, or any other type of application that requires a GUI to function. However, there is a workaround for this, which requires some work.
For example, attempting to run the google-chrome
command in WSL will result in an error:
$ google-chrome
bash: google-chrome: command not found
Accessing hardware devices:
WSL is not able to access physical hardware devices such as printers, cameras, or scanners. This means that you (mostly) cannot use these devices from within WSL, even if you have installed the necessary drivers or software.
For example, if you have a printer connected to your computer, you will not be able to print documents from within WSL or you’ll need to spend a lot of time to set it up, e.g.:
Connecting a USB Printer device to WSL 2 – Microsoft Community Hub
Running Docker:
Although it is possible to install Docker on WSL, it is not recommended due to the lack of support for running the Docker daemon within WSL. This means that you will not be able to use Docker commands to build, run, or manage Docker containers from within WSL.
For example, attempting to run the docker
command in WSL will result in an error:
$ docker
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Using proprietary software:
WSL is not able to run proprietary software that is not available in the Ubuntu repositories. This means that you will not be able to install and use proprietary software such as certain games or commercial software applications.
For example, if you attempt to install a proprietary software application using its installer file, it will likely fail to run within WSL.
Running 32-bit applications:
$ uname -m
x86_64
The output of the uname -m
command shows that the system is running a 64-bit architecture, so attempting to run a 32-bit application will result in an error:
$ ./my-32-bit-app
bash: ./my-32-bit-app: No such file or directory
Using certain kernel modules:
$ lsmod | grep my_kernel_module
If the my_kernel_module
kernel module is not available in WSL, the lsmod
command will not return any output.
Accessing certain system resources:
$ hwclock
hwclock: Cannot access the Hardware Clock via any known method.
If WSL does not have access to the system’s hardware clock, the hwclock
command will return an error indicating that it is unable to access the clock.