WSL(Linux용 Windows 하위 시스템)의 시스템 배포란 무엇입니까?

WSL(Linux용 Windows 하위 시스템)의 시스템 배포란 무엇입니까?

wsl.exe도움말( 로 표시 wsl.exe --help)에서는 "시스템 배포"에 대해 설명합니다.

Options:
...
    --system
        Launches a shell for the system distribution.

그것은 무엇입니까? WSL 문서에서 "시스템 릴리스"를 검색하면 해당 섹션에서 다음 내용만 얻습니다.WSL 디스크 공간을 관리하는 방법:

블록 장치에 대한 정보는 다음과 같습니다. 이름: 장치에 할당된 이름은 sd[a-z]SCSI 디스크를 나타내며 사용 중인 각 디스크에 문자를 할당합니다. sda항상 시스템이 분산됩니다.

답변1

이 셸을 시작한 후 /etc/os-release설치된 배포판에 대한 자세한 정보를 보려면 확인하세요.

내 WSL에서는 이것이 사실인 것 같 Common Base Linux Mariner으며 여기에 문서화되어 있습니다.https://aka.ms/cbl-mariner

CBL-Mariner는 Microsoft 클라우드 인프라와 엣지 제품 및 서비스를 위한 온프레미스 Linux 배포판입니다. CBL-Mariner는 이러한 장치 및 서비스에 일관된 플랫폼을 제공하도록 설계되었으며 Linux를 최신 상태로 유지하는 Microsoft의 능력을 향상시킵니다. [...]

시스템 셸의 출력 예

PS C:\Users\testuser> wsl --system
wslg [ /mnt/c/Users/testuser ]$ cat /etc/os-release
NAME="Common Base Linux Mariner"
VERSION="2.0.20230630"
ID=mariner
VERSION_ID="2.0"
PRETTY_NAME="CBL-Mariner/Linux"
ANSI_COLOR="1;34"
HOME_URL="https://aka.ms/cbl-mariner"
BUG_REPORT_URL="https://aka.ms/cbl-mariner"
SUPPORT_URL="https://aka.ms/cbl-mariner"

일반 사용자 셸의 출력 예

PS C:\Users\testuser> wsl
testuser@testhost:/mnt/c/Users/testuser$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

답변2

WSL의 "시스템 배포"(또는 상황에 따라 "a")는 약간 이상한 이름이지만 아마도 "사용자 배포"의 반대를 의미할 것입니다. 설명하기도 좀 어렵네요. 원본 작품에 개요가 있습니다.WSLg 아키텍처약 2년 전의 개발 블로그 게시물입니다.

대부분의 사용자에게는 호기심 이상으로 시스템 배포판을 알거나 사용할 필요가 없습니다. 그러나 다음 용도로 사용할 수 있습니다.

  • WSL에서 WSLg/GUI 문제 디버깅
  • 필요한 경우 WSLg 기능을 수정하거나 교체합니다.
  • --systemWSL 도움말에서 이 이상한 매개변수의 기능을 알아보세요 ;-)

첫째, 몇 가지 추가 "용어"입니다. "시스템 배포"가 무엇인지 이해하려면 먼저 WSL의 "배포"를 제대로 이해해야 합니다. 간단한 요약 - Distro는 실행되는 네임스페이스 격리 환경(컨테이너)입니다.~에WSL2 가상 머신. 바라보다이 답변더 알아보기.

실제로 여러 시스템 배포판이 있습니다.

  • 템플릿, 루트 파일 시스템(기반)CBL 매리너스에 설명된 대로@panki의 답변) 이는 WSL 자체에서 제공됩니다. 그런 다음 해당 루트 파일 시스템을 사용하여 생성하십시오.

  • 시스템 배포(네임스페이스 컨테이너)기타 실행 중인 사용자 배포판(예: Ubuntu, Alpine, Kali, Arch 등) 이 시스템 배포판은 Wayland(RDP/RAILS 포함), Xwayland, Weston 및 PulseAudio가 실행되는 곳입니다. 그런 다음 이러한 서비스에 대한 소켓은 시작 시 마운트되고, 바인드 마운트 및/또는 사용자 배포에 심볼릭 링크됩니다(이러한 기술은 시간이 지남에 따라 변경됨). 이 시스템 릴리스는 사용자 릴리스와 동일한 수명 주기를 갖습니다.

기본 WSL 설치에서는 Ubuntu(현재 20.04)를 배포판으로 사용합니다. 이 경우 WSL/Ubuntu를 부팅하면 해당 시스템 배포가 시작되고 서비스가 시작되며 시스템 배포에서 Ubuntu에 대한 기호 링크/다시 마운트가 생성됩니다. 이 아키텍처는 WSL에서 실행되는 모든 Linux 배포판에 공통적으로 적용됩니다. 그러나 일부 배포판(GNU Guix ;-))은 "표준"에서 너무 멀리 벗어날 수 있으며 WSLg를 사용하여 GUI 응용 프로그램을 실행하려면 추가 작업이 필요할 수 있습니다.

기본 설치는 다음과 같습니다 /mnt/wslg(당신이 언급한 것처럼 그래야 합니다. /dev/sda이전에는 이 사실을 전혀 눈치채지 못했습니다). X11 소켓이 있는 디렉토리는 /tmp/.X11(현재) 읽기 전용이며 바인드 마운트된 back 입니다 /mnt/wslg/.X11-unix.

이 아키텍처의 모든 구석구석을 완전히 탐색하지는 않았지만 Wayland 및 PulseAudio에 대해 유사한 바인드 마운트 또는 심볼릭 링크가 생성되었습니다.

따라서 WSL을 시작할 때 단독으로 시작할 수 있습니다.

wsl --system

바로 거기에 기본 사용자가 표시됩니다 wslg. 그러나 액세스할 수도 있습니다 wsl --system -u root.

에서 시작할 수도 있으며 기본 배포도 시작되는 wsl --system것을 확인할 수 있습니다 .wsl -l -v

"릴리스별" 시스템 릴리스는 WSL 릴리스가 시작될 때마다 "요청 시" 생성되므로 일시적입니다. 사용자 배포가 중지되면 wsl --system(또는)에서 변경한 내용이 손실됩니다.wsl --system -d <user_distro_name>

변경 사항을 영구적으로 적용하려면 다음을 수행하십시오.자신만의 시스템 배포판 구축Github에서 WSLg 저장소를 사용하고 WSLg에서 사용하는 저장소를 파일로 바꿉니다 .wslconfig. 솔직히 말해서 WSLg가 출시된 후 거의 2년 동안 Microsoft 외부의 누구도 이 작업의 필요성을 발견했는지는 모르겠지만 확실히 흥미로운 기능입니다. 최소한 Microsoft가 변경할 때까지 기다리지 않고도 Weston과 같은 구성 요소를 업그레이드(또는 롤백)할 수 있습니다.

관련 정보