I am super excited about Windows Subsystem for Linux. It is one of the coolest pieces of tech I’ve seen since I started using Docker.
First, a little background on how WSL works…
You can learn a lot more about this from the Windows Subsystem for Linux Overview. I will go over some of the parts I found to be the most interesting.
The Windows NT kernel was designed from the beginning to support running POSIX, OS/2, and other subsystems. In the early days, these were just user-mode programs that would interact with
ntdll to perform system calls. Since the Windows NT kernel supported POSIX there was already a
fork system call implemented in the kernel. However, the Windows NT call for
NtCreateProcess, is not directly compatible with the Linux syscall so it has some special handling you can read about more under System Calls.
There are both user and kernel mode parts to WSL. Below is a diagram showing the basic Windows kernel and user modes alongside the WSL user and kernel modes.
Read more at Jessie Frazelle’s blog