1) 개요 — WSL이란?
WSL은 Windows에서 별도의 전체 VM 없이 리눅스 환경(파일시스템, 셸, 대부분의 명령줄 도구 및 앱)을 직접 실행할 수 있게 해주는 기능이야. 개발자가 Windows 데스크톱 한 대에서 리눅스 도구(예: bash, apt, ssh, 각종 빌드툴)를 자연스럽게 사용하게 해준다. Microsoft Learn+1
2) WSL 1 vs WSL 2 — 주요 차이(핵심)
-
WSL 1: Windows 커널 쪽에서 리눅스 시스템콜을 번역(translation)해 실행하는 방식. Windows 파일 시스템 접근 성능에서 이점이 있는 경우가 있음.
-
WSL 2: 가벼운 관리형 VM(Windows Hypervisor 기반) 안에 실제 리눅스 커널을 넣어 동작. 완전한 시스템콜 호환성과 리눅스 네이티브 파일시스템에서의 성능 향상이 특징. (대신 Windows↔WSL 간 파일 접근 패턴에 따라 속도 차이 있음.) Microsoft Learn+1
요약: **리눅스 호환성·컨테이너·ML·파일 I/O(리눅스쪽)**이 중요하면 WSL2 권장.
3) 주요 기능 / 추가 요소
-
GUI 앱 실행(WSLg): WSL2 위에서 리눅스 GUI(X11/Wayland) 앱을 Windows 데스크톱에서 바로 띄울 수 있게 해주는 WSLg 프로젝트가 있으며, 공식적으로 지원되어
wsl --update등으로 최신 기능을 받을 수 있다. (GUI는 WSL2에서만 동작). GitHub+1 -
GPU 가속(딥러닝/ML): WSL2는 GPU(예: NVIDIA CUDA, DirectML 등)를 활용한 머신러닝 워크로드 실행을 지원한다 — 즉 WSL에서 GPU 가속 학습/추론 환경 구성 가능. Microsoft Learn+1
-
systemd 지원: 최근 WSL은 systemd를 지원하며, 이를 통해 systemd 기반 서비스(데몬) 관리가 가능해졌다. Microsoft Learn
-
독립적 업데이트 / 오픈소스화: WSL은 OS에 내장되어 있지만 점차 독립 패키지로 분리·업데이트 가능해졌고(또한 오픈소스화에 대한 발표도 있었다). The Verge+1
4) 설치 & 자주 쓰는 명령(빠른 시작)
권장(간단 설치 — 관리자 권한 PowerShell에서):
새로 wsl --install로 설치하면 기본적으로 WSL 2로 설치되는 것이 현재 권장 흐름이다. 자세한 설치 옵션과 수동 설치 절차는 Microsoft 공식 가이드를 참고하면 안전하다. Microsoft Learn+1
5) 실무 활용 사례
-
개발 환경: 로컬에서 Linux 기반 빌드/테스트(예: Node, Python, Ruby, Go 등) → Windows IDE(예: VS Code Remote - WSL)와 결합해 사용. Ubuntu+1
-
컨테이너 개발: Docker Desktop은 WSL2 백엔드를 사용해 Windows에서 네이티브 수준으로 리눅스 컨테이너를 돌림 — Docker와 통합된 개발 워크플로우에 좋음. Docker Documentation+1
-
데이터/ML: CUDA/DirectML 지원으로 모델 학습 및 GPU 가속 워크로드를 WSL2에서 실행 가능. Microsoft Learn+1
-
GUI 리눅스 툴: 리눅스 전용 GUI 툴(예: 일부 IDE, 그래픽 툴)을 WSLg로 실행 가능. Microsoft Learn
6) 장점 & 단점(주의해야 할 점)
장점
-
Windows와 리눅스 도구를 자연스럽게 병행 가능 → 개발 생산성↑. Microsoft Learn
-
WSL2는 높은 리눅스 호환성(시스템콜)과 네이티브 Linux FS 성능 개선. Microsoft Learn
단점 / 주의
-
파일 I/O 패턴: WSL2의 경우 Windows 파일(예:
C:\)을 WSL내에서 자주 읽고 쓰면 성능 저하가 발생할 수 있어, 프로젝트 파일은 가능하면 WSL 파일시스템(예:/home)에 두는 것이 좋다. Microsoft Learn -
가상화 의존성: WSL2는 가상화 플랫폼을 사용하므로 일부 오래된 하이퍼바이저/도구와 충돌이 있을 수 있음(예: 구버전 VirtualBox). 최신 버전은 호환 개선됨. Microsoft Learn
-
완전한 서버 대체 아님: WSL은 데스크톱 개발/테스트에 탁월하지만, 프로덕션 리눅스 서버 운영을 1:1로 대체하는 용도는 아님(특히 커널 수정·특수 하드웨어 패스스루 등).
-
보안/권한: Windows↔WSL 통합 때문에 파일 접근이나 도구(예: Docker 데스크톱) 설정 시 보안 이슈가 발생할 수 있으니 권한·네트워크 설정 주의가 필요. (Docker+WSL 연동 관련 공식 문서 참조 권장). Docker Documentation
7) 실전 팁(짧고 유용한 것들)
-
프로젝트 코드는 WSL 내부(
~/project)에 두고 Windows에서 편집하려면 VS Code의 Remote - WSL 확장 사용. Docker Documentation -
WSL 업데이트: GUI·커널·도구 문제 생기면
wsl --update→wsl --shutdown후 재시작 해보기. Microsoft Learn -
wsl -l -v로 각 배포판이 WSL1/2 어느 버전인지 확인, 필요 시--set-version으로 전환. Microsoft Learn -
systemd 필요하면 Microsoft의 systemd 가이드(및
/etc/wsl.conf설정)를 참고해 활성화. Microsoft Learn
8) 참고 자료(공식)
-
Microsoft — Windows Subsystem for Linux (문서 전체): Microsoft Learn
-
Microsoft — WSL 설치 가이드 (
wsl --install등): Microsoft Learn -
Microsoft — WSL 버전 비교(WSL1 vs WSL2): Microsoft Learn
-
WSLg(리눅스 GUI) GitHub & 튜토리얼: GitHub+1
-
GPU/ML 가속 관련 WSL 문서 및 NVIDIA 가이드: Microsoft Learn+1
-
Docker Desktop + WSL2 통합: Docker Documentation+1
-
(참고) WSL 오픈소스화 관련 기사: The Verge
댓글 없음:
댓글 쓰기
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.