Microsoft는 2020년 5월 Windows10의 업데이트에서 WSL(Windows Subsystem for Linux
)의 2번째 버전을 발표하였다. WSL의 첫 번 째 버전은 고급 개발자들용으로만 공개되었던 점에 비해 이번에는 범용 개발에 쓰일 수 있도록 발표되었다는 점이 조금 다르다.
WSL1에서는 Windows에서 Linux 시스템을 WSL이 Emulating하여 처리하는 방식이었다. 모든 사용자의 명령은 Windows NT Kernel이 WSL을 통해 Linux-compatible kernel interface와 통신 후 Linux interface는 다시 결과를 WSL을 통해 윈도우 시스템 명령으로 번역해서 돌려준 후 사용자들에게 결과를 보여주는 방식이었다. 이 때문에 WSL1에서는 모든 Linux의 명령을 처리하는 데에 한계가 존재했으며, 실행되는 명령들도 처리 속도가 느렸다. 즉, 이 경우에는 실제 Linux를 사용한다기 보다 Linux를 가상화하여 결과를 보여주는 방식이었고, 동시에 Linux Kernel에 특화된 명령들은 WSL1에서는 실행할 수 없었다.
그에 비해 WSL2에는 실제 Linux Kernel이 탑재
되어 있다. 이 의미인 즉, Windows10 내에서 모든 Linux의 시스템 명령을 처리할 수 있게 되었다는 의미이다. 위 그림을 보면 Windows 사용자가 「경량화된 Linux VM 도구(Light-Weight Linux Utility Virtual Machine」에 명령 신호를 보내면, 이 Linux VM 내부에 EFL 64 Linux Binary를 구동하기 위한 아키텍처를 가지고 있어 Linux UserMode에서 Linux Kernel로 신호를 보내 작동하도록 되어 있다. 같은 Hyper-V를 이용
하더라도 Windows UserMode와 Linux UserMode를 병렬로 사용할 수 있기 때문에 인터페이스의 이슈가 줄어들고 처리 속도가 향상된다.
WSL2에서 Docker를 정식 지원함
으로 인해 속도가 개선되고 훨씬 편리하게 사용할 수 있게 되었다.
WSL2에도 단점은 있는데 WSL1에서는 Windows와 Linux간 Interface 역할을 직접 하기 때문에 NTFS(NT File System) 내의 파일을 Linux에서 빠르게 mount하고 사용이 가능했지만, WSL2에서는 Hyper-V를 통해 파일 시스템의 내용을 공유하게 되므로 SSD를 사용해도 Linux의 mount 및 활용 속도가 느려진다.
또한, WSL2 사용 시에는 해당 컴퓨터에서 ‘VM Ware’나 ‘Virtual Box’를 함께 사용할 수 없다.
이런 가상화 프로그램들은 Hyper-V
가상화 아키텍처를 사용하기 때문에 WSL2와 동시 사용할 수 없다.