WSL 2가 기본값인 이유와 설치된 Linux 배포를 이전 WSL 1 아키텍처로 전환할 수 있는 특정 시나리오 또는 예외를 포함하여 다양한 WSL 버전에 대해 자세히 알아봅니다.
WSL 1 및 WSL 2 비교
이 가이드에서는 WSL 2 아닌 WSL 1을 사용하기 위한예외를 포함하여 WSL 1과 WSL 2를 비교합니다. WSL 1과 WSL 2의 주요 차이점은 관리되는 VM 내에서 실제 Linux 커널 사용, 전체 시스템 호출 호환성 지원 및 Linux 및 Windows 운영 체제의 성능입니다. WSL 2는 Linux 배포판을 설치할 때 현재 기본 버전이며 가상화 기술에서 가장 최신의 최신 커널을 사용하여 경량 유틸리티 VM(가상 머신) 내에서 Linux 커널을 실행합니다. WSL2는 관리되는 VM 내에서 격리된 컨테이너로 Linux 배포를 실행합니다. 배포가 현재 WSL 1을 실행 중이고 WSL 2로 업데이트하려는 경우, WSL 1에서 WSL 2로 업데이트하려면 을(를) 참조하십시오..
기능 비교
특징 | WSL 1 | WSL 2 |
---|---|---|
Windows와 Linux 간의 통합 | ✅ | ✅ |
빠른 부팅 시간 | ✅ | ✅ |
기존 가상 머신에 비해 적은 리소스 사용량 | ✅ | ✅ |
현재 버전의 VMware 및 VirtualBox를 사용하여 실행 | ✅ | ❌ |
관리되는 VM | ❌ | ✅ |
전체 Linux 커널 | ❌ | ✅ |
전체 시스템 호출 호환성 | ❌ | ✅ |
OS 파일 시스템 간 성능 | ✅ | ❌ |
시스템 지원 | ❌ | ✅ |
IPv6 지원 | ✅ | ✅ |
위의 비교 표에서 알 수 있듯이 WSL 2 아키텍처는 여러 가지 방법으로 WSL 1을 능가합니다. OS 파일 시스템 간의 성능을 제외하면 프로젝트에서 작업하기 위해 실행 중인 도구와 동일한 운영 체제에 프로젝트 파일을 저장하여 해결할 수 있습니다.
WSL 2는 Windows 11 또는 Windows 10, 버전 1903, 빌드 18362 이상에서만 사용할 수 있습니다. **
Windows 로고 키를 누르고 R를 누르고 winver를 입력하고 OK를선택하여 Windows 버전을 확인합니다. 또는 Windows 명령 프롬프트에서 ver
명령을 입력합니다.
최신 Windows 버전으로 업데이트해야 할 수 있습니다. 14393보다 낮은 빌드의 경우 WSL은 전혀 지원되지 않습니다.
최신 WSL 2 업데이트에 대한 자세한 내용은 Windows 명령줄 블로그참조하세요. Systemd 지원은 이제 WSL 사용할 수 있으며, IPv6 지원에 대한 자세한 내용은 WSL 2023년 9월 업데이트 .
메모
WSL 2는 VMware 15.5.5 이상 작동하며 VirtualBox 6 이상 WSL 지원이 있다고 명시되어 있지만 여전히 지원되지 않는 중요한 문제가 있습니다. FAQ에 대해 자세히 알아보세요.
WSL 2의 새로운 기능
WSL 2는 기본 아키텍처의 주요 정비이며 가상화 기술과 Linux 커널을 사용하여 새로운 기능을 사용하도록 설정합니다. 이 업데이트의 주요 목표는 파일 시스템 성능을 높이고 전체 시스템 호출 호환성을 추가하는 것입니다.
- WSL 2 시스템 요구 사항
- Linux 배포 버전을 WSL 1에서 WSL 2로 설정
- WSL 2 대한 질문과 대답
WSL 2 아키텍처
기존 VM 환경은 부팅 속도가 느려질 수 있고, 격리되고, 많은 리소스를 사용하며, 이를 관리하는 데 시간이 필요합니다. WSL 2에는 이러한 특성이 없습니다.
WSL 2는 Windows와 Linux 간의 원활한 통합, 빠른 부팅 시간, 작은 리소스 공간 등 WSL 1의 이점을 제공하며 VM 구성 또는 관리가 필요하지 않습니다. WSL 2는 VM을 사용하지만, 관리되고 백그라운드에서 실행되므로 WSL 1과 동일한 사용자 환경이 제공됩니다.
전체 Linux 커널
WSL 2의 Linux 커널은 microsoft에서 kernel.org사용 가능한 원본을 기반으로 안정적인 최신 분기에서 빌드됩니다. 이 커널은 Windows에서 놀라운 Linux 환경을 제공하기 위해 크기 및 성능을 최적화하여 WSL 2용으로 특별히 조정되었습니다. 커널은 Windows 업데이트에서 서비스됩니다. 즉, 직접 관리할 필요 없이 최신 보안 수정 및 커널 개선 사항을 얻을 수 있습니다.
WSL 2는 오픈 소스인 Linux 커널입니다. 자세히 알아보려면, 이 팀이 작성한 "Windows 와 함께하는 Linux 커널 출시" 블로그 게시물을 확인하세요.
Linux용 Windows 하위 시스템의 커널 에 대한릴리스 정보를 자세히 알아보세요.
파일 IO 성능 향상
WSL 2에서는 git clone
, npm install
, apt update
, apt upgrade
등과 같은 파일 집약적 작업이 모두 훨씬 빠릅니다.
실제 속도 증가는 실행 중인 앱과 파일 시스템과 상호 작용하는 방법에 따라 달라집니다. 초기 버전의 WSL 2는 압축된 타볼을 풀 때 WSL 1에 비해 최대 20배 더 빠르게 실행되며, 다양한 프로젝트에서 git clone
, npm install
및 cmake
사용하는 경우 약 2-5배 더 빠릅니다.
전체 시스템 호출 호환성
Linux 이진 파일은 시스템 호출을 사용하여 파일 액세스, 메모리 요청, 프로세스 만들기 등의 기능을 수행합니다. WSL 1은 WSL 팀에서 빌드한 번역 계층을 사용하는 반면 WSL 2에는 전체 시스템 호출 호환성이 있는 자체 Linux 커널이 포함되어 있습니다. 이점은 다음과 같습니다.
WSL 내에서 실행할 수 있는 완전히 새로운 앱 집합(예: Docker 등).
Linux 커널에 대한 모든 업데이트는 즉시 사용할 준비가 됩니다(WSL 팀이 업데이트를 구현하고 변경 내용을 추가할 때까지 기다릴 필요가 없습니다).
WSL 2가 아닌 WSL 1 사용에 대한 예외
더 빠른 성능과 100개의% 시스템 호출 호환성을 제공하기 때문에 WSL 2를 사용하는 것이 좋습니다. 그러나 WSL 1을 사용하는 것을 선호하는 몇 가지 특정 시나리오가 있습니다. 다음과 같은 경우 WSL 1을 사용하는 것이 좋습니다.
- 프로젝트 파일은 Windows 파일 시스템에 저장해야 합니다. WSL 1은 Windows에서 탑재된 파일에 더 빠르게 액세스할 수 있도록 합니다.
- WSL Linux 배포를 사용하여 Windows 파일 시스템의 프로젝트 파일에 액세스할 수 있고 이러한 파일을 Linux 파일 시스템에 저장할 수 없는 경우 WSL 1을 사용하여 OS 파일 시스템에서 더 빠른 성능을 얻을 수 있습니다.
- 동일한 파일에서 Windows 및 Linux 도구를 모두 사용하여 교차 컴파일이 필요한 프로젝트입니다.
- Windows 및 Linux 운영 체제의 파일 성능은 WSL 2보다 WSL 1에서 더 빠릅니다. 따라서 Windows 애플리케이션을 사용하여 Linux 파일에 액세스하는 경우 현재 WSL 1을 사용하여 더 빠른 성능을 달성할 수 있습니다.
- 프로젝트에서 직렬 포트 또는 USB 디바이스에 액세스해야 합니다. 그러나 USB 디바이스 지원은 이제
USBIPD-WIN
프로젝트를 통해 WSL 2에 사용할 수 있습니다. 설정 단계는 USB 디바이스 연결을 참조하세요. - WSL 2에는 직렬 포트에 대한 액세스 지원이 포함되지 않습니다. 자주 묻는 질문 또는 직렬 지원 이 있는WSL GitHub 리포지토리 이슈에서 더 알아보세요.
- 엄격한 메모리 요구 사항이 있습니다.
- WSL 2의 메모리 사용량은 사용함에 따라 증가하고 축소됩니다. 프로세스가 메모리를 해제하면 자동으로 Windows로 반환됩니다. 그러나 현재 WSL 2는 WSL 인스턴스가 종료될 때까지 메모리의 캐시된 페이지를 Windows로 아직 릴리스하지 않습니다. WSL 세션을 오래 실행하거나 매우 많은 양의 파일에 액세스하는 경우 이 캐시는 Windows에서 메모리를 차지할 수 있습니다. 우리는 WSL GitHub 리포지토리 이슈 4166에서 이 경험을 개선하기 위한 작업을 추적하고 있습니다.
- VirtualBox를 사용하는 경우 VirtualBox 및 WSL 2의 최신 버전을 모두 사용해야 합니다. 관련 FAQ 참조하세요.
- Linux 배포를 사용하여 호스트 컴퓨터와 동일한 네트워크에 IP 주소를 사용하는 경우 WSL 2를 실행하기 위해 해결 방법을 설정해야 할 수 있습니다. WSL 2는 Hyper-V 가상 머신으로 실행됩니다. 이는 WSL 1에서 사용되는 브리지된 네트워크 어댑터의 변경입니다. 즉, WSL 2는 호스트 NIC(네트워크 인터페이스 카드)에 브리지되는 대신 해당 가상 네트워크에 NAT(네트워크 주소 변환) 서비스를 사용하므로 다시 시작할 때 변경되는 고유한 IP 주소가 생성됩니다. WSL 2 서비스의 TCP 포트를 호스트 OS에 전달하는 문제 및 해결 방법에 대한 자세한 내용은 WSL GitHub 리포지토리 문제 4150, NIC 브리지 모드(TCP 해결 방법) 참조하세요.
메모
LINux 명령줄 도구를 사용하여 Linux 파일 시스템에 프로젝트 파일을 저장할 수 있도록 VS Code 원격 WSL 확장 시도하지만 Windows의 VS Code를 사용하여 Linux 및 Windows 파일 시스템에서 작업과 관련된 성능 저하 없이 인터넷 브라우저에서 프로젝트를 작성, 편집, 디버그 또는 실행할 수 있습니다. 자세히알아보세요.
Microsoft Store의 WSL
WSL은 Windows OS 이미지에서 Microsoft Store를 통해 사용할 수 있는 패키지로 업데이트 기능을 해제했습니다. 즉, Windows 운영 체제의 업데이트를 기다릴 필요 없이 사용 가능한 즉시 업데이트 및 서비스를 빠르게 수행할 수 있습니다.
WSL은 원래 Linux 배포를 설치하기 위해 사용하도록 설정해야 하는 선택적 구성 요소로 Windows 운영 체제에 포함되었습니다. 스토어의 WSL은 동일한 사용자 환경을 가지며 동일한 제품이지만 전체 OS 업데이트가 아닌 스토어 패키지로 업데이트 및 서비스를 받습니다. Windows 버전 19044 이상부터 wsl.exe --install
명령을 실행하면 Microsoft Store에서 WSL 서비스 업데이트가 설치됩니다. (이 업데이트를 발표하는 블로그 게시물을 참조하세요). WSL을 이미 사용 중인 경우, 최신 WSL 기능을 사용할 수 있도록 업데이트함으로써 스토어에서 서비스를 받으려면 wsl.exe --update
을 실행하십시오.
메모
조직 내에서 Microsoft Store에 액세스할 수 없는 경우 --web-download
같은 --update
명령에 wsl --update --web-download
추가하여 이 WSL 버전을 계속 활용할 수 있습니다. 이 방법을 사용하여 새 릴리스를 사용할 수 있게 될 때마다 WSL을 수동으로 업데이트해야 합니다.
Windows Subsystem for Linux