I like system programming which can allow you to touch more software development skills in the bottom level.
Linux is the perfect platform when you want to do system programming. But if you’re using a computer running Windows on it, then you have to spend some time to set up the Linux development environment. Generally speaking there are two traditional ways to do that:
virtual machine and
dualboot, both need some effort. Or you can try to do that with
container technology, for example, I once shared one article about how to do it with
In this article, I will introduce a new and easier way to do this without too much overhead.
The new way is
Windows Subsystem for Linux (WSL). I have to admit that the operating system is complex and difficult so for now I don’t know how Microsoft make
WSL works. In details, you can refer to this article to learn how
WSL allows Windows to access Linux files. In this article let’s focus on how to set it up and what kind of benefits it can provide to developers.
Based on the official document, with
WSL you can
- Run common command-line tools such as
- Run Bash shell scripts and GNU/Linux command-line applications including:
- Tools: vim, emacs, tmux.
- Services: SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL.
- Install additional software using your own GNU/Linux distribution package manager.
With these conditions, you can set up a completed Linux development environment.
For detail steps to install
WSL, you can find it on the official document. Based on my experience, I follow the document to download and install Linux Ubuntu distribution smoothly, which is much easier than settig the virtual machine.
By default, you can also access your local machine’s file system from within the Linux Bash shell. Since your local drives are mounted under the /mnt folder of the subsystem.
In this way, you can develop the code with the productivity tools in Windows and build it in Linux environment.
This is another convenient point.
WSL shares the IP address of Windows, as it is running on Windows.
As such you can access any ports on localhost e.g. if you had a web server running on port 8080, you could access it just by visiting http://localhost:8080 into your Windows browser.
After install the Ubuntu system, I also install tools to prepare the development environment. For example,
GCC to develop C language program as below.
Based on my testing and experience,
WSL can save developers’ time to set up Linux environment.