Linux용 Windows 서브시스템

Windows Subsystem for Linux
Linux용 Windows 서브시스템
Tux.svg
Ubuntu on Windows 10 - bash.png
Windows 10에서 실행 중인 Bash
기타 이름WSL
개발자마이크로소프트
초기 릴리즈2016년 8월 2일, 6년 전(2016-08-02)
안정된 릴리스
WSL 2 / 2019년 6월 12일, 3년 전(2019-06-12)[1]
프리뷰 릴리즈
2021년 11월 16일 0.50.2, 8개월 전(2021-11-16)[2]
저장소github.com/Microsoft/WSL (문제만)
운영 체제Windows 10, Windows Server 2019, Windows 11, Windows Server 2022
전임자UNIX용 Windows 서비스
유형호환성 계층, 가상화
면허증. 서브시스템:자체 상용 소프트웨어
Linux 커널: GNU GPLv2(만 해당)와 호환성이 있는 GPL 버전 또는 BSD, MIT 등의 허용 라이선스로 일부 코드 사용
웹 사이트docs.microsoft.com/en-us/windows/wsl/ Edit this on Wikidata

WSL(Windows Subsystem for Linux)은 Windows 10, Windows 11 [3]Windows Server 2019에서 Linux 바이너리 실행 파일(ELF 형식)을 기본적으로 실행하기 위한 호환성 계층입니다.

2019년 5월에 WSL 2가 [4]발표되었으며 Hyper-V 기능의 서브셋을 통해 실제 Linux [5]커널과 같은 중요한 변경 사항을 도입하였다.WSL 2는 2019년 6월부터 홈 [6]에디션을 포함한 Windows Insider 프로그램을 통해 Windows 10 고객에게 제공됩니다.WSL은 기본적으로는 모든 Windows 10 사용자가 사용할 수 있는 것은 아닙니다.Windows Insider 프로그램에 참여하거나 수동 [7]설치를 통해 설치할 수 있습니다.

역사

Windows 상에서 Unix와 같은 호환성을 실현하기 위한 Microsoft의 첫 시도는 MKS/Interix통한 Windows Services for UNIX로 대체Microsoft POSIX 서브시스템에서 시작되었습니다.이 서브시스템은 결국 Windows 8.1 릴리즈에서 폐지되었습니다.Windows Subsystem for Linux의 기술은 일부 안드로이드 애플리케이션을 Windows 10 Mobile에서 실행할 수 있도록 한 미공개 Project Astoria에서 [8]비롯되었습니다.Windows 10 Insider Preview 빌드 14316에서 [9]처음 제공되었습니다.

마이크로소프트의 이전 프로젝트와 서드파티 CygwinPOSIX 표준을 기반으로 자체 Unix와 유사한 환경을 구축하는 데 초점을 맞췄지만 WSL은 Linux의 네이티브 호환성을 목표로 하고 있습니다.WSL의 초기 설계(WSL 1)는 Cygwin과 같이 비네이티브 기능을 Win32 시스템 호출에 포함시키지 않고 NT 커널 이그제큐티브를 이용하여 커널 모드 "피코 프로바이더"에 연결된 특별한 격리된 최소 프로세스("피코 프로세스"라고 함)로서 Linux 프로그램을 전용 시스템 호출 및 예외 핸들러로 제공했습니다.가능한 [10]경우 기존 NT 구현을 재사용하는 것을 선택하는 바닐라 NT 프로세스입니다.

WSL 베타는 2016년 8월 2일 Windows 10 버전 1607(애니버서리 업데이트)에 도입되었습니다.Ubuntu(Bash를 기본 셸로 사용)만 지원되었습니다.WSL 베타는 "Bash on Ubuntu on Windows" 또는 "Bash on Windows"라고도 불렸다.WSL은 2017년 10월 17일에 출시된 Windows 10 버전 1709(Fall Creators Update)에서 더 이상 베타 버전이 아닙니다.복수의 Linux 디스트리뷰션을 인스톨 할 수 있어 Windows [11]스토어에 인스톨 할 수 있었습니다.

2017년에 Richard Stallman은 WSL과 같은 노력을 "자유를 위한 캠페인의 한 걸음 후퇴"라고 부르며 Linux 기능을 Windows에 통합하는 것은 자유 소프트웨어 개발을 방해할 뿐이라고 우려했습니다."[12]

WSL은 (이 초기 설계를 통해) UNIX-on-Windows 프로젝트보다 훨씬 빠르고 인기가 있었지만, Windows 커널 엔지니어들은 Linux의 API에서 올바르게 인식되고 작동하도록 기존 NT 커널을 재구성함으로써 WSL의 성능과 시스템 호환성을 높이는데 어려움을 겪었다.2018년 마이크로소프트 Ignite 컨퍼런스에서 마이크로소프트 엔지니어들은 가상화된 커널이 호스트에서 [13]NT 프리미티브를 직접 사용할 수 있는 컨테이너화를 위한 새로운 "경량" Hyper-V VM 기술에 대한 개략적인 개요를 제공했습니다.2019년에 마이크로소프트는 실제(맞춤형) Linux 커널 이미지를 호스팅하는 이 경량 VM 기술을 사용하여 완전히 재설계된 WSL 아키텍처(WSL 2)를 발표하여 완전한 시스템 호환성을 [5]주장했습니다.마이크로소프트는 2019년 5월 6일에 [4]WSL 2를 발표했으며, Windows 10 버전 [14]2004와 함께 출고되었습니다.또한 Windows 10 버전 1903 및 [15]1909로 역보도되었습니다.

Windows 빌드 20150에서는 WSL 2에서 GPU 액셀러레이션 머신러닝을 실행하기 위한 GPU 지원이 도입되었습니다.[16]Windows 빌드 21364에서는 [17]WSL 2에서 GUI(그래피컬 사용자 인터페이스)를 사용한 Linux 애플리케이션을 실행하는 GUI 지원이 도입되었습니다.둘 다 Windows 11에서 출하됩니다.

2021년 4월 마이크로소프트는 WSL 2와 CBL-Mariner[18][17]사용하여 Linux GUI(그래피컬 사용자 인터페이스) 애플리케이션을 실행할 수 있는 기능을 포함하는 Windows 10 테스트 빌드를 출시했습니다.WSLG(Windows Subsystem for Linux GUI)는 Microsoft Build 2021 컨퍼런스에서 공식적으로 공개되었습니다.Windows 10 Insider 빌드 21364 [19]이후에 포함되어 있습니다.

마이크로소프트는 2021년 10월 11일 Windows [20]11용으로 WSL의 Windows Store 버전을 발표했습니다.

특징들

Windows 10에서 실행 중인 Bash

WSL은 Windows Server 2019 및 버전 1607 이후의 Windows 10 버전에서 사용할 수 있지만 64비트 버전에서만 사용할 수 있습니다.

Microsoft는 WSL을 주로 개발자, 특히 웹 개발자 및 오픈 소스 프로젝트에서 작업하는 사람들을 [21]위한 도구라고 생각하고 있습니다.2018년 9월 Microsoft는 "WSL은 전체 가상 머신보다 적은 리소스(CPU, 메모리 및 스토리지)를 필요로 한다"고 발표했으며(WSL 이전에는 Windows 환경에서 Linux 소프트웨어를 실행하는 가장 직접적인 방법이었다), 또한 사용자가 동일한 [21]파일 세트에서 Windows 앱과 Linux 도구를 사용할 수 있도록 허용했습니다.

WSL의 첫 번째 릴리스는 Microsoft가 개발한 Linux 호환 커널 인터페이스를 제공하며 Linux 커널 코드를 포함하지 않습니다.이 인터페이스를 통해 Ubuntu,[22][23][24][25] openSUSE,[26] SUSE Linux Enterprise Server,[27][28][11] Debian[29][30]Kali Linux 등의 Linux 배포판사용자 공간을 실행할 수 있습니다.이러한 사용자 공간에는 네이티브 GNU 명령줄 도구(sed, awk 등), 프로그래밍 언어 인터프리터(Ruby, Python 등) 및 그래픽 애플리케이션(호스트 [21]측의 X11 서버 사용)이 포함되어 있을 수 있습니다.

WSL [4]2에서는 Linux 커널을 경량 가상 머신 환경에서 실행하도록 아키텍처가 재설계되었습니다.

wsl.exe

wsl.exe 명령어명령줄에서 Windows Subsystem for Linux의 배포를 관리하기 위해 사용합니다.사용 가능한 배포를 나열하고, 기본 배포를 설정하고,[31] 배포를 제거할 수 있습니다.이 명령을 사용하여 윈도우즈 명령 프롬프트 또는 윈도우즈 PowerShell에서 Linux [32]바이너리를 실행할 수도 있습니다. wsl.exe치환하다lxrun.exeWindows 10 1803 [33]이후에서는 권장되지 않습니다.

WSLg

WSLg는 Windows Subsystem for Linux GUI의 약자로 Windows에서 Linux GUI 애플리케이션(X11 및 Wayland)[34]을 실행할 수 있도록 하기 위해 구축되었습니다.WSLg는 Microsoft Build 2021 컨퍼런스에서 공식적으로 발표되었습니다.Windows 10 Insider 빌드 21364 [19]이후에 포함되어 있습니다.다만, Windows 11 의 도입에 수반해, WSLG 는, WSL [35]애플리케이션의 그래픽과 오디오의 양쪽 모두를 서포트하는 Windows 의 실가동 빌드와 함께 출하되고 있습니다.FreeRDP는 RDP 프로토콜 사양에 따라 RDP 서버(Weston의 경우)에서 RDP 클라이언트(Windows의 경우 mstsc)로 가는 모든 통신을 인코딩하기 위해 사용됩니다.[36]

WSLg를 실행하기 위한 전제 조건은 다음과 같습니다.

  • Windows 11 또는 Windows 10 Insider Preview는 21362-21390을 [34][37]빌드합니다.
  • WSL에 대해 가상 GPU(vGPU)를 유효하게 하는 시스템을 사용하는 것이 좋습니다.이는 하드웨어 가속 OpenGL[34] 렌더링을 이용할 수 있기 때문입니다.

설계.

WSL 1

WSL에서 실행되는 Linux용 Firefox

LXSS Manager Service는 (드라이버를 통해) 서브시스템과의 상호작용을 담당하는 서비스입니다. lxss.sys그리고.lxcore.sys([38]Linux 디스트리뷰션에서 제공되는 셸과 혼동하지 않음) 및 Bash.exe가 Linux 프로세스를 실행하는 방법 및 Linux 시스템 호출 및 바이너리 잠금을 처리합니다.특정 사용자에 의해 호출된 모든 Linux 프로세스는 "Linux 인스턴스"에 들어갑니다(보통 처음 호출된 프로세스는 init입니다).모든 응용 프로그램이 닫히면 인스턴스가 닫힙니다.

WSL 1의 설계에는 하드웨어 에뮬레이션/가상화가 포함되어 있지 않으며(coLinux 등의 다른 프로젝트와는 달리), 호스트 파일 시스템을 직접 사용합니다(를 통해).VolFS그리고.DrvFS상호 운용성을 보증하는 네트워크 등의 하드웨어 일부.[39]예를 들어 웹 서버는 호스트에 구성된 동일한 인터페이스 및 IP 주소를 통해 액세스할 수 있으며 관리 권한이 필요한 포트 또는 다른 응용 프로그램이 이미 사용하고 [40]있는 포트 사용에 대한 동일한 제한을 공유합니다.셸에서 sudo를 사용하여 root로 실행하는 경우에도 액세스/변경이 제한되는 특정 위치(시스템 폴더 등) 및 구성이 있습니다."sudo"가 실제 루트 권한을 부여하고 이러한 [21]액세스를 허용하려면 상승된 권한을 가진 인스턴스를 실행해야 합니다.

WSL 1은 32비트 [41][42]바이너리 등 일부 Linux 소프트웨어나 WSL에 구현되지 않은 특정 Linux 커널 서비스를 필요로 하는 소프트웨어를 실행할 수 없습니다.WSL 1에는 "실제" Linux 커널이 없기 때문에 디바이스 드라이버 등의 커널 모듈을 실행할 수 없습니다.그러나 WSL 2에서는 가상화된 라이브 Linux 커널인스턴스가 사용됩니다.그것은(모질라 파이어 폭스 같은)Windows(호스트)환경 내에서 오디오 지원(이 Windows에서 PulseAudio을 설치하여 유사한 방법으로 X11에 해결될 수 있을 것)또는 하드웨어 교류의 부재 등 보호 장치 없이(VcXsrv 또는 Xming 같은)[43]지만 한 X11 서버를 설치하여 일부 그래픽(GUI)응용 프로그램을 실행할 수 있다.셀eteration(그래픽 퍼포먼스가 저하된 경우)OpenCLCUDA 지원도 현재 구현되어 있지 않습니다.단, 향후 [44][45]출시 예정입니다.Microsoft는 WSL은 데스크톱 컴퓨터나 프로덕션 서버가 아닌 애플리케이션 개발을 위해 설계되었으며 이러한 목적을 [21]위해 가상 머신(Hyper-V), KubernetesAzure를 사용할 것을 권장합니다.

벤치마크에서 WSL 1의 퍼포먼스는 Linux Ubuntu, Debian, Intel Clear Linux 또는 기타 Linux 디스트리뷰션과 거의 비슷합니다.일부 테스트에서는 I/O가 WSL의 [46][47][48]병목현상이 됩니다.재설계된 WSL 2 백엔드는 WSL [5]1과 비교하여 특정 동작의 속도가 20배 향상된다고 마이크로소프트는 주장하고 있습니다.2020년 6월 AMD 스레드리퍼 3970x를 사용한 벤치마크에서는 WSL 2(20H2)의 성능이 Ubunt 2004 LTS의 87%로 양호한 것으로 나타났습니다.이는 WSL 1에 비해 개선된 것입니다.WSL 1은 이 비교에서 네이티브 Ubuntu의 퍼포먼스가 70%밖에 되지 않습니다.WSL 2는 I/O 퍼포먼스를 향상시켜 네이티브에 가까운 [49]수준을 제공합니다.2020년 5월에 인텔 i9 10900K와 69개의 테스트를 비교한 결과,[50] 거의 같은 퍼포먼스를 얻을 수 있었습니다.2020년 12월, AMD Ryzen 5900X를 사용한 43개의 테스트를 실시한 벤치마크에서는, WSL 2(20H2)의 퍼포먼스가, 네이티브 20.04.1 LTS의 퍼포먼스의 93%로 양호한 것으로 나타났습니다.이는 [51]이 비교에서 73%에 불과한 WSL 1보다 개선된 것입니다.

WSL 2

WSL에서 실행되는 Synaptic 패키지 매니저

버전 2에서는 아키텍처가 변경되었습니다.Microsoft는 커널과 디스트리뷰션(커널 기반)을 실행하기 위해 Hyper-V 기능의 고도로 최적화된 서브셋을 통해 가상화를 선택했으며 WSL 1과 동등한 성능을 제공합니다.이전 버전과의 호환성을 위해 개발자는 공개된 디스트리뷰션에서 아무것도 변경할 필요가 없습니다.WSL 2 의 설정은, WSL 글로벌 설정에 의해서 조정할 수 있습니다.이 설정은, 다음의 INI 파일에 포함되어 있습니다..wslconfig[사용자 프로파일(User Profile)][52][53]폴더에 있습니다.

그 분포 설치는 가상 디스크 내부의ext4-formatted 파일 시스템 안에,과 호스트 파일 시스템은9P protocol,[54]을 통해 비슷하게 QEMU.[55]은 사용자에게 같은 다른 가상 머신 기술 접근할 수 있는 거주하는, 마이크로 소프트 WSL 1.[4]의 Windows는 모의 계기 비행부터 최고 20번 읽기/쓰기 성능을 약속했다.네트워크 빨간다음 UNC 경로 접두사를 사용하여 Linux 게스트 파일에 액세스할 수 있습니다.\\wsl$.

WSL 2에는 x64 시스템의 경우 Windows 10 버전 1903 이상(빌드 18362 이상), ARM64 [7]시스템의 경우 빌드 19041 이상의 버전 2004 이상이 필요합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Craig Loewen (12 June 2019). "WSL 2 is now available in Windows Insiders". Windows Command Line.
  2. ^ Jawad, Usama (16 November 2021). "Microsoft releases WSL version 0.50.2 with a new logo and an updated Linux kernel". Neowin.
  3. ^ June 2021, Darren Allan 23 (23 June 2021). "Windows 11 could seamlessly run graphical Linux apps". TechRadar. Retrieved 29 June 2021.
  4. ^ a b c d Craig Loewen (6 May 2019). "Announcing WSL 2". Windows Command Line Tools For Developers.
  5. ^ a b c mscraigloewen. "About WSL 2". docs.microsoft.com.
  6. ^ "WSL 2 Post BUILD FAQ". Windows Command Line Tools For Developers. 14 May 2019.
  7. ^ a b craigloewen-msft (24 February 2022). "Install WSL on Windows 10". Microsoft.
  8. ^ Bright, Peter (6 April 2016). "Why Microsoft needed to make Windows run Linux software". Ars Technica. Condé Nast.
  9. ^ Aul, Gabe (6 April 2016). "Announcing Windows 10 Insider Preview Build 14316". Windows Experience Blog. Microsoft.
  10. ^ "Windows Subsystem for Linux Overview". Windows Subsystem for Linux. Retrieved 22 April 2018.
  11. ^ a b "What's new in WSL in Windows 10 Fall Creators Update - Windows Command Line". Windows Command Line. 11 October 2017. Retrieved 15 October 2021.
  12. ^ Heath, Nick (20 September 2017). "Will Microsoft love Linux to death? Shuttleworth and Stallman on whether Windows 10 is free software's friend". TechRepublic. Retrieved 18 February 2022.
  13. ^ Microsoft Ignite (2 October 2018), OS internals: Technical deep-dive into operating system innovations - BRK3365, archived from the original on 9 November 2021, retrieved 7 May 2019
  14. ^ "WSL 2 will be generally available in Windows 10, version 2004 - Windows Command Line". Windows Command Line. 13 March 2020. Retrieved 15 October 2021.
  15. ^ "WSL 2 Support is coming to Windows 10 Versions 1903 and 1909 - Windows Command Line". Windows Command Line. 20 August 2020. Retrieved 15 October 2021.
  16. ^ "GPU accelerated ML training inside the Windows Subsystem for Linux - Windows Developer Blog". Windows Blog. 17 June 2020. Retrieved 16 October 2021.
  17. ^ a b "The Initial Preview of GUI app support is now available for the Windows Subsystem for Linux - Windows Command Line". Windows Command Line. 21 April 2021.
  18. ^ Foley, Mary Jo (21 April 2021). "New Windows 10 test build adds first preview of Linux GUI apps on WSL". ZDNet. Retrieved 23 April 2021.
  19. ^ a b Abrams, Lawrence (29 May 2021). "Hands on with WSLg: Running Linux GUI apps in Windows 10". Bleeping Computer. Retrieved 30 May 2021.
  20. ^ "A preview of WSL in the Microsoft Store is now available! - Windows Command Line". Windows Command Line. 11 October 2021. Retrieved 16 October 2021.
  21. ^ a b c d e "Frequently Asked Questions for WSL". Microsoft. Retrieved 13 November 2016.
  22. ^ Harsh, Mike (30 March 2016). "Run Bash on Ubuntu on Windows". Building Apps for Windows. Microsoft.
  23. ^ Finley, Klint (30 March 2016). "Why Microsoft Making Linux Apps Run on Windows Isn't Crazy". Wired. Condé Nast.
  24. ^ Kirkland, Dustin (30 March 2016). "Ubuntu on Windows – The Ubuntu Userspace for Windows Developers". Ubuntu Insights. Canonical.
  25. ^ Hammons, Jack (9 April 2016). "Bash on Ubuntu on Windows". MSDN. Microsoft.
  26. ^ 오픈SUSE Leap 42 - Microsoft 스토어
  27. ^ SUSE Linux Enterprise Server 12 - Microsoft 스토어 입수
  28. ^ Yegulalp, Serdar (12 May 2017). "Windows Subsystem for Linux welcomes Suse and Fedora options". InfoWorld. Retrieved 16 September 2017.
  29. ^ "Debian GNU/Linux for WSL now available in the Windows Store". Windows Command Line Tools For Developers. Retrieved 7 March 2018.
  30. ^ "Kali Linux in the Windows App Store". Retrieved 9 March 2018.
  31. ^ Linux용 Windows 서브시스템 관리 및 구성
  32. ^ Linux용 Windows 서브시스템과 Windows와의 상호 운용성
  33. ^ Linux용 Windows 서브시스템 명령어레퍼런스
  34. ^ a b c Welcome to WSLg, Microsoft, 7 November 2021, retrieved 7 November 2021
  35. ^ Salter, Jim (7 October 2021). "The best part of Windows 11 is a revamped Windows Subsystem for Linux". Ars Technica. Retrieved 7 November 2021.
  36. ^ "Installing WSLg". GitHub. 27 April 2022. Retrieved 27 April 2022.
  37. ^ "Clarify Windows 10 vs 11 and build numbers (#485) · microsoft/wslg@5ddd8d2". GitHub. Retrieved 28 May 2022.
  38. ^ Jack Hammons (22 April 2016). "Windows Subsystem for Linux Overview". Windows Subsystem for Linux blog on MSDN.
  39. ^ Jack Hammons (15 June 2016). "WSL File System Support". Windows Subsystem for Linux blog on MSDN.
  40. ^ Jack Hammons (8 November 2016). "WSL Networking". Windows Subsystem for Linux blog on MSDN.
  41. ^ "Please enable WSL to run 32 bit ELF binaries". Windows Developer feedback (Microsoft/UserVoice).
  42. ^ "Support for 32-bit i386 ELF binaries". GitHub.
  43. ^ "Windows 10's Bash shell can run graphical Linux applications with this trick". PC World. Retrieved 10 September 2018.
  44. ^ "GPU not accesssible for running tensorflow and installing CUDA · Issue #1788 · Microsoft/WSL". GitHub. Retrieved 10 September 2018.
  45. ^ "OpenCL & CUDA GPU support". Windows Developer feedback (Microsoft/UserVoice). 15 September 2016. Retrieved 10 September 2018.
  46. ^ "Windows Subsystem for Linux". Phoronix.
  47. ^ Larabel, Michael (12 October 2018). "A Look At The Windows 10 October 2018 Update Performance With WSL". Phoronix.
  48. ^ Larabel, Michael (5 November 2018). "The WSL Improvements In The Windows 10 October 2018 Update". Phoronix.
  49. ^ Larabel, Michael (24 June 2020). "Ubuntu 20.04 vs. Windows 10 WSL/WSL2 Performance In 170+ Benchmarks". Phoronix.
  50. ^ Larabel, Michael (17 June 2020). "Windows 10 May 2020 Performance For WSL vs. WSL2". Phoronix.
  51. ^ Larabel, Michael (16 December 2020). "Windows Subsystem For Linux / WSL2 Performance With The AMD Ryzen 9 5900X". Phoronix.
  52. ^ Loewen, Craig (26 July 2019). "What's new for WSL in Insiders Preview Build 18945". Microsoft devblog. Archived from the original on 26 July 2019. Retrieved 26 July 2019. In this new update we’ve added the ability to start using global config options for WSL. These options are targeted towards power users who want to further customize their WSL experience.
  53. ^ Hillis, Ben (25 July 2019). "MicrosoftDocs/WSL Build 18947". GitHub. Archived from the original on 26 July 2019. Retrieved 26 July 2019.
  54. ^ "A Deep Dive Into How WSL Allows Windows to Access Linux Files". Windows Command Line Tools For Developers. 30 May 2019. Retrieved 24 June 2019.
  55. ^ Jujjuri, Venkateswararao; Van Hensbergen, Eric; Liguori, Anthony; Pulavarty, Badari (13–16 July 2010). "VirtFS—A virtualization aware File System pass-through" (PDF). Linux Symposium.

추가 정보

  • Barnes, Hayden (2021). Pro Windows Subsystem for Linux (WSL): Powerful Tools and Practices for Cross-Platform Development and Collaboration. Apress. ISBN 978-1484268728.
  • Leeks, Stuart (2020). Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques: Maximise productivity of your Windows 10 development machine with custom workflows and configurations. Packt Publishing. ISBN 978-1800562448.
  • Singh, Prateek (2020). Learn Windows Subsystem for Linux: A Practical Guide for Developers and IT Professionals. Apress. ISBN 978-1484260371.

외부 링크