# [Get started with Windows Subsystem for Linux on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/)

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/)
- [Configure and run WSL with various Linux distributions](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/setup/)
- [Run graphical Linux applications](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/wslg/)
- [Enable systemd in WSL](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/systemd/)
- [Use SSH to connect to WSL](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/ssh/)
- [Connect to WSL using RDP and VNC](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/rdp/)
- [Developing with VS Code on WSL](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/vscode/)
- [Import file systems into WSL](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/import/)
- [Backup a WSL filesystem](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/backup/)
- [Next Steps](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/_next-steps/)

## About this Learning Path

| Skill level:   | Advanced        |
|----------------|------------------|
| Reading time:  | 1 hr 30 min      |
| Last updated:  | 12 Aug 2026      |

| Author:        | Jason Andrews, Arm [GitHub](https://github.com/jasonrandrews) [LinkedIn](https://linkedin.com/in/jason-andrews-7b05a8) |
|----------------|-----------------------------------------------------------|
| Arm IP:        | [Cortex-A](https://support.arm.com/?tab=compute-ip&Product%20Type=Application%20Processors) |
| Tags:          | [Migration to Arm](https://learn.arm.com/tag/migration-to-arm) [Windows](https://learn.arm.com/tag/windows) [Linux](https://learn.arm.com/tag/linux) [WSL](https://learn.arm.com/tag/wsl) [Visual Studio Code](https://learn.arm.com/tag/visual-studio-code) |

### Who is this for?
This Learning Path is for software developers with Windows on Arm computers doing Linux or cloud native development.

### What will you learn?
Upon completion of this Learning Path, you will be able to:
- Configure and run Windows Subsystem for Linux (WSL) with various Linux distributions
- Run graphical Linux applications on Windows
- Use ssh to connect to WSL
- Use Windows RDP (remote desktop) and VNC to connect to a Linux desktop
- Learn multiple options for running VS Code
- Import other file systems into WSL
- Export the WSL file system as a backup

### Prerequisites
Before starting, you will need the following:
- A Windows on Arm computer such as the Lenovo Thinkpad X13s running Windows 11.

### Summary
You’ll configure Windows Subsystem for Linux (WSL) on Windows on Arm, select a Linux distribution, and enable `systemd`. First, you’ll launch graphical Linux apps, decide when to use SSH or the Windows drive mount for file transfer, and set up an XFCE4 desktop with `xrdp`. Then, you’ll restart the distribution and verify that `systemd` and `xrdp` are active.

### Frequently asked questions
<details><summary>How do I enable systemd in my WSL distribution and confirm it’s running?</summary>
Edit `/etc/wsl.conf` to include `[boot]` with `systemd=true`. In Windows Command Prompt or PowerShell, run `wsl --terminate Ubuntu-22.04` and then `wsl -d Ubuntu-22.04`. Verify with `systemctl list-unit-files --type=service`.
</details>

<details><summary>What should I see when I start a graphical Linux app from WSL?</summary>
A new app window opens on the Windows desktop and shows a small penguin icon on the **taskbar**. You can pin the app to the **taskbar** and add icons to the **Windows applications menu**.
</details>

<details><summary>Do I need SSH to copy files between Windows and WSL on the same machine?</summary>
No. Windows drives are mounted under `/mnt/c`, so you can copy directly, for example, `cp /mnt/c/Users/<username>/Downloads/<filename>`. Use SSH only when connecting to WSL from a different machine.
</details>

<details><summary>How do I set XFCE4 as the default desktop for RDP and check that xrdp is ready?</summary>
Set the session with `echo xfce4-session > ~/.xsession`, then restart the service with `sudo service xrdp restart`. Check status with `systemctl status xrdp`, and start the service if it’s not running.
</details>

<details><summary>Which distribution name should I use when restarting WSL after enabling systemd?</summary>
Use the registered distribution name shown in WSL, such as `Ubuntu-22.04`. Run `wsl --terminate Ubuntu-22.04` followed by `wsl -d Ubuntu-22.04` to restart it with `systemd` enabled.
</details>
