Windows Subsystem for Linux
Windows 10부터 지원하는 기능으로, Windows에 Linux를 설치하는 기능이다.
Check
설치 방법
BIOS 설정에서 Vitualization Technology 가 활성화 되어있는지 확인하고
Windows 기능 켜기/끄기에서 "Linux용 Windows 하위 시스템"과 "가상 머신 플랫폼" 을 체크해야 한다.
또는 명령행에서 다음을 실행:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
컴퓨터 재부팅은 필수.
이 단계에서 #배포판 설치를 진행하자.
혹시라도 안된다면 Hyper-V 기능을 활성화 해보자:
컴퓨터 재부팅은 필수.
배포판 설치
이 명령은 WSL을 실행하고 Linux의 Ubuntu 배포를 설치하는 데 필요한 기능을 사용하도록 설정합니다.
배포판 목록 보기
WSL2 버전을 기본으로 설정
Root directory
ubuntu설치 시 아래의 경로를 확인하면 된다.
C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
오픈소스 전환
Microsoft는 WSL 전체를 오픈소스로 전환했다고 발표했으며, 이는 Microsoft/WSL 저장소의 첫 번째 이슈였던 “오픈소스가 될까요?”에 대한 응답이기도 함
- GitHub의 Microsoft/WSL에서 소스를 내려받고 직접 빌드하거나 기능을 추가하고 버그를 수정할 수 있음
- 공개된 코드는 커맨드라인 도구, 서비스, Linux용 데몬, Plan9 기반 파일 공유 서버까지 포함함
- WSL은 Windows 실행부와 리눅스 가상머신(VM) 내에서 동작하는 여러 컴포넌트로 구성됨
- CLI 도구: wsl.exe, wslconfig.exe, wslg.exe
- WSL 서비스: VM 부팅, 배포판 실행, 파일 공유 등을 담당하는 wslservice.exe
- Linux 데몬: init, gns, localhost 등 네트워크 및 포트 포워딩 기능 수행
- Plan9 서버: Windows와 Linux 간 파일 공유 역할
- WSLg: Wayland 및 X 서버를 지원하는 그래픽 환경 관련 구성요소
- WSL2-Linux-Kernel: 리눅스 커널 소스
- Lxcore.sys: WSL1의 핵심 드라이버
- P9rdr.sys, p9np.dll: Windows에서 \wsl.localhost 경로를 지원하는 파일 리다이렉션 시스템
오픈소스 전환 배경과 WSL의 역사
- WSL은 2016년 BUILD에서 처음 발표되어 Windows 10 Anniversary Update에 포함됨
- WSL1은 Windows 커널 내에서 Linux syscalls를 처리하는 lxcore.sys 기반의 구조였음
- WSL2는 2019년 처음 발표되었고, 실제 리눅스 커널을 활용해 호환성과 기능을 개선함
- 이후 GPU 지원, GUI 앱 실행(wslg), systemd 지원 등 기능이 추가되며 성장함
- 2021년부터는 Windows에서 분리된 독립 패키지로 Microsoft Store를 통해 제공됨
- 첫 릴리스는 0.47.1 (프리뷰), 이후 2022년 1.0.0에서 Windows 10까지 지원 확대
- wsl.exe는 그대로 남겨 사용자 전환을 지원함
Troubleshooting
WslRegisterDistribution failed with error: 0x800701bc
WslRegisterDistribution failed with error: 0x800701bc
Error: 0x800701bc WSL 2? ?? ?? ????? ?????. ??? ??? https://aka.ms/wsl2kernel? ????? .
이때 linux 커널 업데이트 패키지를 다운로드해주면 문제가 해결 된다. 이 곳 으로 이동하여 업데이트를 다운받고 설치하자.
이 후 WSL 2를 기본 버전으로 설정
WslRegisterDistribution failed with error: 0x80370102
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370102
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
For information please visit https://aka.ms/enablevirtualization
Press any key to continue...
BIOS 설정에서 Vitualization Technology 가 활성화 되어있는지 확인하자.
만약 Virtual Box를 사용한다면, 추가로 "Nested Virtualization" 항목을 확인하자:
- VT-x/AMD-V 활성화
- Nested Paging 활성화
부팅 구성에 하이퍼바이저 시작이 사용하도록 설정되어 있는지 확인합니다. 관리자 권한 powershell을 실행하여 유효성을 검사할 수 있습니다.
"hypervisorlaunchtype Off"가 표시되면 하이퍼바이저가 사용하지 않도록 설정된 것입니다. 이를 사용하도록 설정하려면 관리자 권한 powershell에서 다음을 실행합니다.