Choose a default theme

You can change your theme from the menu

WSL

Earlier revision · 2View current content

WSL(Windows Subsystem for Linux)은 Windows에서 Linux 배포판과 명령줄 도구를 실행할 수 있도록 제공되는 기능이다. Windows의 개발 도구와 Linux의 실행 환경을 함께 사용하는 데 쓰인다. WSL 자체의 버전, 각 배포판의 WSL 1·WSL 2 실행 방식, 배포판 버전은 서로 다른 정보다.

구조와 WSL 1·WSL 2

WSL 2는 가상화 기술을 이용해 관리되는 경량 가상 머신 안에서 Linux 커널을 실행한다. 사용자는 일반적인 가상 머신 관리 절차를 직접 모두 다루지 않고 배포판을 실행할 수 있다. 가상화 기술을 사용하지 않는다는 뜻으로 이해하면 안 된다.

WSL 1과 WSL 2는 실행 구조가 다르며 배포판별로 어느 방식을 쓰는지 확인할 수 있다. 전환 가능 여부와 필요한 Windows 환경은 공식 문서를 따른다. 기존 데이터를 가진 배포판의 실행 방식을 바꾸는 작업은 단순 조회와 달리 실패나 변환 시간을 고려해야 한다.

실행 환경의 경계

Windows에서 실행되는 PowerShell과 WSL 배포판 안의 셸은 서로 다른 환경이다. Windows에 설치한 언어 런타임과 Linux 배포판에 설치한 런타임의 경로·패키지·설정이 같다고 가정하지 않는다. 하나의 편집기 화면에서 작업하더라도 실제 빌드 명령이 어디에서 실행되는지가 중요하다.

Linux의 /home 경로와 Windows의 C: 드라이브 경로도 구분한다. WSL에서는 Windows 드라이브가 /mnt/c 같은 경로에 마운트될 수 있지만, 그 파일과 Linux 파일 시스템 안의 파일은 성능과 권한 처리 측면에서 차이가 날 수 있다.

운영체제와 개발 환경

운영체제

운영체제 · Linux · Windows · macOS

관련 환경

WSL · Mac

예시: 설치 상태와 배포판 확인

이미 WSL을 사용하는 Windows의 PowerShell 또는 명령 프롬프트에서 아래 명령을 실행한다. --status는 WSL의 일반 상태를, --list --verbose는 설치된 배포판과 실행 상태 및 WSL 1·2 구분을 보여 준다. 배포판을 설치하거나 삭제하는 명령이 아니다.

목록에서 NAME은 배포판 이름, STATE는 실행 중인지 등의 상태, VERSION은 해당 배포판의 WSL 실행 방식이다. 이 VERSION을 Ubuntu 같은 배포판의 릴리스 번호로 읽지 않는다. 설치된 항목이 없으면 배포판 목록이 없거나 관련 안내가 표시될 수 있다.

wsl --status
wsl --list --verbose

프로젝트 파일을 두는 위치

Linux 도구로 주로 빌드하는 프로젝트라면 Linux 파일 시스템 내부에 두는 방식이 일반적으로 파일 접근 성능에 유리하다. Microsoft 문서는 Linux 명령줄로 작업할 때 Linux 쪽에, Windows 명령줄로 작업할 때 Windows 쪽에 프로젝트를 두는 방식을 권장한다.

예를 들어 Linux에서 많은 작은 파일을 읽는 빌드가 느리다면 CPU만 볼 것이 아니라 프로젝트가 /mnt/c 아래에 있는지도 살펴볼 수 있다. 다만 프로젝트 위치를 바꾸기 전에 편집기·백업·다른 도구가 참조하는 경로도 함께 고려해야 한다. 이 설명은 모든 작업에서 같은 성능 차이가 난다는 보장은 아니다.

활용 예시

Windows 데스크톱을 유지하면서 Linux 서버와 가까운 명령줄 환경에서 웹 애플리케이션을 개발하거나 셸 스크립트를 시험할 수 있다. 배포판의 패키지 관리자를 이용해 Linux용 도구를 관리한다.

동일한 코드라도 실제 배포 서버와 커널 설정, 네트워크, 파일 시스템, 서비스 구성이 완전히 같지는 않다. WSL에서 통과한 테스트를 바탕으로 하되 배포 환경에 필요한 검증을 별도로 수행한다. WSL이라는 이름만으로 운영 환경과 동일하다고 단정하지 않는다.

주의할 점

wsl --unregister는 배포판 등록을 해제하면서 관련 데이터를 잃게 할 수 있는 명령이다. 조회 예제와 혼동해서 실행하지 않는다. 배포판을 재설치하거나 실행 방식을 전환하기 전에는 프로젝트와 필요한 데이터를 보존할 절차를 확인한다.

명령을 Linux 셸에서 실행하는지 Windows 셸에서 실행하는지도 구별한다. 공식 기본 명령 문서는 Windows 쪽 wsl 명령 형식을 제시하며, Linux 쪽에서 호출할 때는 wsl.exe 표기가 필요할 수 있다. 명령이 인식되지 않으면 환경과 설치 상태를 먼저 확인한다.

참고 자료