Windows Subsystem for Linux, 약칭 WSL에 대해 알아봅니다. 이 글은 WSL1과 WSL2을 둘 다 다룹니다.
WSL이란?
Linux용 Windows 하위 시스템(Windows Subsystem for Linux, WSL)은 가상머신을 이용함에 따른 추가적인 메모리/CPU 소모나 듀얼부팅 설정 등을 요구하지 않으면서도, Windows 운영체제 하에서 Linux 기반의 대부분의 명령줄 도구, 유틸리티, 애플리케이션 등을 사용할 수 있게 해주는 서비스입니다.
간단하게 말하면, Windows에서 Linux의 bash shell을 켤 수 있고, Linux 전용의 프로그램을 자유롭게 실행할 수 있게 된다는 뜻입니다. 그것도 별도의 가상머신 프로그램 없이 말이죠.
이 글에서는 두 가지 WSL 버전인 WSL1과 WSL2의 차이를 살펴보고, 이를 설치하고 이용하는 방법에 대해 알아봅니다.
WSL1 vs. WSL2
위의 비교 표에서 알 수 있듯, WSL2가 WSL1에 비해 대개 우수한 성능을 보입니다.
다만, OS 파일시스템 간 성능 측면에서는 WSL1이 우수합니다.
OS 파일시스템 간 성능이란
WSL에서 Windows의 저장소 공간에 접근하거나, 반대로 Windows에서 WSL의 저장소 공간에 접근할 때의 성능을 말합니다.
Windows 탐색기에서 WSL 파일시스템의 하위경로로 접근하려면 \\wsl$\<distro>\home\<username>\
로 들어가면 됩니다.
반대로 WSL에서 Windows의 파일시스템에 접근하고자 하는 경우에는 /mnt/c/
, /mnt/d/
, …와 같은 경로로 들어가면 됩니다.
이처럼 서로의 파일시스템에 교차하여 접근할 수 있기는 하지만 성능 저하의 우려가 있기 때문에, WSL에서 주로 사용할 파일은 되도록 WSL 파일시스템의 하위경로에 두고 사용할 것을 권장합니다.
다만, WSL에서 사용되는 파일을 WSL 파일시스템에 두고 사용하기 어려워, Windows 파일시스템에의 교차 접근이 불가피하고 잦은 경우에는 WSL1을 이용하는 것이 더 나을 수 있습니다.
WSLg
WSLg는 Windows Subsystem for Linux GUI의 약자입니다.
원래 WSL에서 그래픽을 사용하려면, Windows에서 X11 (Linux에서 그래픽을 보여주는 시스템)을 사용할 수 있도록 설정해야 합니다.
이 때문에, Xming 등의 다른 프로그램을 깔고 이를 연동해줄 필요가 있었습니다.
그러나 2021년경부터 Microsoft에서 WSLg를 개발하여 배포하기 시작하면서, 이러한 불편함이 해소되었습니다.
단, WSLg는 WSL2에서만 사용 가능합니다.
최소 요구사양
WSL을 위한 최소 요구사양
- 운영체제: Windows 10 혹은 Windows server 2019
- 아키텍쳐1: 64 bit
- 빌드 버전2
- WSL1을 설치하는 경우: Build 16215 이상
- WSL2를 설치하는 경우: Build 19041 이상
WSLg를 위한 최소 요구사양
- 운영체제: Windows 10, Windows 11
- WSL2에서만 사용 가능
- Windows 업데이트 최신화 필요
- WSL 업데이트 최신화 필요
설치 방법
글이 너무 길어져, 설치 방법에 대해서는 별도의 글로 분리하였습니다.
설치한 배포판 실행
Microsoft Store를 통해 설치하면, 시작메뉴에 설치한 리눅스 배포판이 뜰 것입니다. 이를 처음 실행하면 추가적인 설치 마무리 작업을 수행한 뒤, 그 후 계정 생성 과정이 진행됩니다.
여기서 원하는 계정명과 비밀번호를 입력하여 계정생성을 하면 설치가 완료됩니다.
이후에는, 시작메뉴에서 배포판을 실행하거나, PowerShell 이나 실행(WIN+R)에서 wsl
을 입력하여 실행할 수 있습니다.
배포판의 관리
PowerShell에서 wsl
명령어 뒤에 다양한 옵션을 입력하여, 설치한 wsl 배포판에 대한 다양한 설정을 할 수 있습니다.
사용 가능한 명령어의 설명은 다음 명령어로 확인 가능합니다.
1wsl --help
설치된 배포판 목록 확인
현재 설치된 배포판을 확인하려면 다음 명령어를 입력합니다.
1wsl -l
이 때, -v
옵션을 더 추가하면, 각 배포판의 현재 상태와 더불어 WSL1/WSL2 중 어떤 버전인지에 대한 정보까지 출력할 수 있습니다.
1wsl -l -v
NAME 옆의 * 표시는 wsl
이라는 명령어만 입력하였을때 실행되는 기본 wsl 배포판이 무엇인지 알려주는 표시입니다.
기본 실행 배포판 변경
앞서 wsl -l
명령어로 확인한 배포판의 이름(예: Ubuntu-20.04
)을 확인한 뒤, -s <Distro>
옵션을 이용합니다.
예를 들어 기본 실행 배포판을 Ubuntu-20.04로 변경하는 경우에는 다음과 같이 입력합니다.
1wsl -s Ubuntu-20.04
설치된 배포판의 버전 변경(WSL1/WSL2)
앞서 wsl -l
명령어로 확인한 배포판의 이름(예: Ubuntu-20.04
)을 확인한 뒤, --set-version <Distro> <버전>
옵션을 이용합니다.
예를 들어 Ubuntu-20.04 배포판을 WSL2로 변경하는 경우에는 다음과 같이 입력합니다.
1wsl --set-version Ubuntu-20.04 2
수 분 정도 소요될 수 있습니다. 기다리면 배포판의 버전이 자동으로 변경됩니다.
설치된 배포판의 제거
앞서 wsl -l
명령어로 확인한 배포판의 이름(예: Ubuntu-20.04
)을 확인한 뒤, --unregister <Distro>
옵션을 이용합니다.
예를 들어 Ubuntu-20.04 배포판을 제거하는 경우에는 다음과 같이 입력합니다.
1wsl --unregister Ubuntu-20.04
이 후에, MS store에서 설치한 내역을 찾아 uninstall까지 해주면 완전히 제거됩니다.
WSL에서 Windows 파일시스템 접근
Windows의 디스크 드라이브는 WSL에서 /mnt/c
, /mnt/d
… 등으로 마운트되어 있습니다. 사용자가 별도로 마운트하지 않아도 바로 접근이 가능합니다.
Windows에서 WSL 파일시스템 접근
\\wsl$\<Distro>\
경로를 갖는 네트워크 드라이브로 접근할 수 있습니다. 예를 들어 Ubuntu-20.04 배포판의 파일시스템은 \\wsl$\Ubuntu-20.04\
로 접근할 수 있습니다.
\\wsl$\
에 접근 시 하위 목록이 보이지 않는다면, 한 번도 해당 인스턴스가 기동되지 않았기 때문입니다. 경로 입력란에 \\wsl$\<Distro>
를 입력하여 한 번 들어가고 난 뒤부터는 표시가 될 것입니다.
Reference
https://docs.microsoft.com/en-us/windows/wsl/
https://cloudlinuxtech.com/install-linux-on-windows-10-wsl/#Prerequisite_to_install_WSL1_or_WSL2