DEV Community

Cover image for Engineer's Guide To Windows: WSL
Rami Massoud
Rami Massoud

Posted on • Originally published at ramimassoud.com on

1

Engineer's Guide To Windows: WSL

These days I mostly write Ruby, and from what I hear, it’s a nightmare on Windows proper.

Thanks to the Windows Subsystem for Linux (WSL), enough of the headaches have been smoothed out for me to give this a shot.

The Windows Subsystem for Linux lets developers run a GNU/Linux environment -- including most command-line tools, utilities, and applications -- directly on Windows, unmodified, without the overhead of a traditional virtual machine or dual boot setup.

Enabling WSL

Starting from a clean slate, it's time to start the Linux adventure.

I followed along with a helpful Microsoft article to get up and running. First, open up an admin PowerShell window, and enable the WSL feature with

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Enter fullscreen mode Exit fullscreen mode

It’s important to end up with WSL 2 because of all of the performance improvements, so make sure to grab all of the Windows updates to get at least to version 1903 with build 18362. Then enable the Virtual Machine platform with

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Enter fullscreen mode Exit fullscreen mode

Make sure to restart the computer! Something I missed at first. Once that's done, download and run the Linux kernel update package

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

Now pop back into an admin Powershell to set the default WSL version to 2 with

wsl --set-default-version 2
Enter fullscreen mode Exit fullscreen mode

windows-store-debian

Finally, head over to the Microsoft Store to find your favorite Linux distribution, Debian, and download/install that.

Virtualization Issues

debian-install-fail

Even if WSL avoids “the overhead of a traditional virtual machine,” it still takes advantage of virtualization tech. Initially, when I tried to open up the Debian app, I hit Error 0x80370102.

amd-cpu-virtualization

After some digging, I found that this meant some virtualization features on my system weren’t enabled. I have a newer Ryzen build and found a BIOS setting for SVM (AMD Secure Virtual Machine) Mode, disabled. Once I flipped that on and booted back into Windows, I was back in business.

Wrapping Up

debian-install-win

Once successfully installed, create a primary user with a secure password, update with the system package manager, and hang tight for the next time where I’ll be getting my development environment ready for my day-to-day work!

Bonus: Windows Terminal

windows-store-windows-terminal

Microsoft has been doing a great job with their tooling for developers, and the Windows Terminal app is no exception! Grab it from the Microsoft Store, and it can be a great alternative to the more basic terminal experience you get from the WSL apps themselves.

Windows Terminal is super customizable, and all from editing an easy-to-read JSON file. Check out the documentation for the various options and even some cool custom color schemes.

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay