WSL "배포"에는 무엇이 포함되나요?

WSL "배포"에는 무엇이 포함되나요?

WSL을 통해 사용자는 기본적으로 Ubuntu가 설치된 상태에서 원하는 배포판을 사용할 수 있습니다.

WSL 환경에서 배포판의 관련성을 잘 이해하지 못합니다. 내 이해는 Linux 배포판이 운영 체제의 스킨을 의미한다는 것입니다. 운영 체제의 핵심 위에 있는 UI 계층입니다. 그러나 WSL을 사용할 때는 명령줄을 사용하거나 독립 실행형 단일 GUI 애플리케이션을 실행하면 됩니다. 그렇다면 이 맥락에서 배포판의 관련성은 무엇이며 어느 배포판을 선택하느냐에 따라 어떤 차이가 발생합니까?

답변1

여기에 있는 다른 답변 중 일부는 "Linux 배포판"의 "일반적인" 의미에 중점을 두고 있으며 이는 질문의 맥락을 이해하는 데 확실히 유용합니다. 하지만 WSL의 맥락에서 구체적으로 이 질문을 던지는 것입니다.

어떤 배포판을 선택하느냐에 따라 어떤 차이가 있나요?

WSL 배포판과 관련된 "차이점"을 논의하기 전에 귀하의 질문 중 이 부분에 답변해 드리겠습니다. Linux 배포판 간의 주요 차이점(여기서는 WSL/개발자 요구 사항에 초점을 맞췄음)은 다음과 같습니다.

  • 기본 저장소에서 사용 가능한 애플리케이션 버전입니다. (과도한 일반화) 일반적으로 두 가지가 있습니다.유형찾을 수 있는 배포판:

    • 거의 업데이트되지 않는 경향이 있는 "안정적인" 배포판(보안 업데이트 제외). 그러나 초점은 (최선을 다해) 모든 패키지가 함께 잘 작동하고 시스템을 손상시키지 않는지 확인하는 데 있습니다. 우분투(Ubuntu), 데비안(Debian), 레드햇(Red Hat)이 좋은 예입니다.

      예를 들어 Ubuntu는 6개월마다 버전을 출시합니다. 단, 장기 지원(LTS) 버전(예: 22.04 LTS)만 2년마다(짝수 해 4월) 업데이트되며, 지원 기간은 5년입니다.

    • "롤링 릴리스" 배포판은 새 버전의 소프트웨어가 안정적이고 테스트되는 즉시 저장소에 저장하는 데 중점을 둡니다. Arch와 Kali가 일반적인 예입니다.

    또 다른 예로, openSUSE에는 다음과 같은 배포판이 있습니다.두 모델 모두 Microsoft Store에서 WSL을 설치하여 사용할 수 있습니다. 스토어에서 openSUSE를 검색하면 "Leap" 버전(안정적)과 "Tumbleweed"(롤링) 버전을 찾을 수 있습니다.

    안정적인 버전을 선택할지 롤링 버전을 선택할지는 전적으로 귀하에게 달려 있습니다. 나는 개인적으로 두 가지를 모두 유지합니다. WSL의 하나의 배포(디스크 공간 제외)로 제한할 이유가 전혀 없습니다. 나는 한동안 롤링 빌드로 Tumbleweed를 사용하고 있으며 안정적인 빌드로 최신 Ubuntu LTS를 사용하고 있습니다. 하지만 스크롤 버전(Arch 기반)으로서의 Artix에 깊은 인상을 받았으며 아마도 한동안 일일 스크롤 드라이버로 사용해 볼 것입니다.

    또한 개발자로서(Stack Overflow에 먼저 게시하고 거기에 프로필을 게시했다는 사실을 기반으로) 사용하는 언어와 도구에 따라 이는 그다지 중요하지 않을 수 있습니다. SO 태그를 통해 노드/React/웹/프레임워크 기반 개발을 많이 하고 있는 것 같습니다. WSL(또는 모든 Linux 배포판)에서는 사전 패키지된 Node.js 저장소 버전을 사용하지 않을 것입니다. 를 통과하거나 nvm설치하게 됩니다 n. 그런 다음, 물론 (또는 기타)를 통해 패키지/모듈을 설치하게 npm됩니다 yarn.

    시스템에 중요하고 변경해서는 안 되는 언어(예: Linux 배포판에서 Python 버전을 변경하는 것은 좋지 않음)의 경우에도 Docker 또는 기타 가상화/컨테이너 기술을 사용하여 다른 언어 버전을 사용할 수 있습니다. 배포와 무관한 WSL. (이 주제에 대한 자세한 내용은 Ask Ubuntu about Docker Python에 대한 최근 답변을 참조하세요.apt-get을 사용하여 다양한 Python 버전을 설치하는 방법은 무엇입니까?).

    따라서 개발자로서 롤링 릴리스를 선택해야 할 비개발자 이유가 없다면 안정적인 스타일 배포를 선택하세요.가능한장기적으로 당신의 삶을 더 쉽게 만드십시오.

  • 문서 및 지원의 가용성은 배포판을 선택하는 또 다른 좋은 이유입니다. 이 때문에 대부분의 새로운 WSL 사용자에게 Ubuntu를 추천해야 합니다(언급하신 대로 이제 기본 WSL 배포판입니다). 여러분이 찾는 대부분의 블로그, 비디오 또는 기타 교육 문서는 Ubuntu에서 작업을 수행하는 방법에 중점을 둡니다. 어느 정도는 Arch로 옮겨갈 수도 있겠지만, 지금으로서는 이 진영의 장점은 여전히 ​​우분투라고 생각합니다.

    그렇다고 Ubuntu(또는 모든 배포판) 문서를 맹목적으로 따라 WSL에서 실행할 수 있다는 의미는 아닙니다. WSL에는 많은 차이점이 있습니다. 즉, 지침을 일부 조정해야 하는 경우가 많습니다. 이러한 차이점 중 일부는 아래에 설명되어 있지만 시도해 보았습니다.우분투 답변에 물어보세요.

    반면 Kali는 프리미엄 배포판이라는 점을 참고하세요.아니요WSL에서. 여기에서 훌륭한 메타 게시물을 확인하세요.당신이 묻는다면 Kali Linux는 당신에게 적합한 배포판이 아닙니다.

그렇다면 [WSL]의 맥락에서 배포의 관련성은 무엇입니까?

WSL에서 "배포"라는 단어는 실제로 약간 오버로드되어 여러 의미를 가지며 "일반" 정의와 몇 가지 중요한 차이점이 있습니다.리눅스 배포판:

  • 첫째, 핵심적으로 WSL 배포판은루트 파일 시스템 팩. 여기에는 다음과 같은 간단한 내용이 포함될 수 있습니다.단일 정적으로 링크된 실행 파일(BusyBox 등) 또는 패키지, 스크립트, 패키지 관리로 구성된 복잡한 생태계(Ubuntu 또는 Arch) 등이 있습니다.

    패키지는 다음과 같습니다.

    • tar또는tar.gz
    • 최신 WSL 미리 보기 릴리스의 Hyper-V 가상 디스크 이미지( vhd또는) .vhdx

    그러나 실제로 파일을 이 두 가지 형식 중 하나로 패키지할 수 있다면 최소한 wsl --importWSL 배포판으로 패키지할 수 있습니다. Microsoft Store에서 WSL에 설치할 수 있는 몇 가지 편리하고 테스트된 배포판이 있지만 궁극적으로 install.tar.gz그 다음에WSL에 설치합니다.

    WSL의 패키징에는 다음과 같은 추가적인 이점이 있습니다.진짜Docker 이미지가 포함된 모든 소프트웨어를 WSL "배포판"으로 쉽게 변환하세요. 그냥 docker pull ..., docker run ..., 그리고 docker export ...타르볼을 생성하세요. Microsoft Store에 없는 Red Hat 이미지를 원하는 경우 해당 Docker 이미지를 가져오세요. 바쁜 상자? 동일한. 등.

    그러나 "부트 가능한" 배포판이 되려면 최소한 다음이 필요합니다.

    • /etc/passwd한 명 이상의 사용자 와 함께 .
    • 기본 진입점이 되는 기본 사용자에 대해 정의된 셸입니다.
    • 사용자가 아닌 경우 기본 사용자를 정의 root해야 합니다 (참조:/etc/wsl.conf여기) 또는 레지스트리 키.
  • "일반" Linux 배포판은 일반적으로 기본값도 제공합니다.

    • 시스템 초기화
    • 커널 및 드라이버
    • 부트로더(보통 GRUB2)
    • X 및/또는 Wayland 서버

    이는 WSL에서 필요하거나 사용되지 않습니다. WSL은 자체 커널을 제공합니다. (적어도 WSL2에서는) 표준 커널 소스에서 자체 커널을 빌드하고 교체할 수 있지만 Windows/WSL 시스템에 설치하는 모든 배포판 간에는 단일 커널이 공유됩니다. WSL1에서는 Linux에서 Windows로 시스템 호출을 변환하는 데 사용되는 의사 커널입니다. WSL2에서는 실제입니다.리눅스호스팅된(즉, 일반적으로 보거나 액세스하거나 변경할 수 없음) Hyper-V 가상 머신에서 실행되는 커널입니다.

    WSL은 또한 WSL/Linux와 Windows 계층 간의 상호 운용성(예: 네트워킹, Windows 바이너리 실행 기능 binfmt_misc, WSLg 부팅 등)을 처리하는 자체 초기화 시스템을 제공합니다.

    WSL은 그렇지 않기 때문에 문제가 발생할 수 있습니다.아니요대부분의 Linux 배포판의 표준 초기화를 실행합니다. 예를 들어 Ubuntu/Debian/Arch(일부 틈새 배포판을 제외한 거의 모두)는 Systemd를 실행하지만 WSL은 이러한 "배포판" 중 하나를 실행하는 경우에도 이를 활성화하지 않습니다. 내 설명을 참조하세요여기그리고여기.

    물론 Systemd는 지배적인 init 시스템이지만 WSL의 init와 Systemd가 모두 PID1을 위해 싸우고 있기 때문에 WSL의 다른 대부분의 init 시스템보다 더 많은 문제가 있습니다. Systemd는 PID1 이외의 실행을 절대적으로 거부합니다(그리고 WSL2는 해결 방법으로 네임스페이스를 사용하지 않으면 이를 허용하지 않습니다). 일부 다른 초기화/프로세스 관리자는 PID1이 아닌 것으로 실행될 수 있으므로 WSL에서 사용하기에 더 적합합니다(IMHO). 예를 들어 저는 Artix와 Dinit를 통해 큰 성공을 거두었습니다. 일반 프로세스 관리자로서,감독대부분의 배포판에서 합리적으로 잘 작동합니다.

  • WSL "배포"는 가져온 패키지에서 생성된 "인스턴스" 또는 "컨테이너"를 의미할 수도 있습니다. 실행하면 wsl -l -v시스템에 설치된 배포판이 나열됩니다.

    적어도 WSL2에서 이들 중 하나를 실행하면 실행되는 것은 본질적으로 가져온 패키지의 컨테이너(격리된 네임스페이스)입니다.

  • Linux 배포판에는 일반적으로 기본 데스크탑 환경(예: Gnome, KDE Plasma, Xfce 등) 및 (언급한 대로) 테마도 함께 제공됩니다. WSL 배포판에서 데스크톱 환경을 실행할 수 있지만 이는 표준 절차가 아닙니다. Windows 11에서 WSL은 WSLg 기능을 사용하여 Linux GUI 애플리케이션을 실행할 수 있지만 이는 Windows 11에 통합된 단일 Linux 애플리케이션을 실행하는 데만 해당됩니다.윈도우데스크탑.

    Linux 데스크탑 환경 실행할 수 있는(타사 X 서버, WSLg 전체 화면 Weston/Xwayland 또는 XRDP를 통해) 수행할 수 있지만 (XRDP 제외) Windows 내장에서 가로채지 않도록 Alt+와 같은 키 바인딩을 변경해야 합니다. Tab특징.

답변2

내 이해는 Linux 배포판이 운영 체제의 스킨을 의미한다는 것입니다. 운영 체제의 핵심 위에 있는 UI 계층입니다.

이것은 정확하지 않습니다. Linux 배포판은 GUI의 모양과 느낌을 넘어서는 여러 가지 근본적인 면에서 다릅니다.

  • 버전의 커널 및 다양한 사용자 정의(최신 커널과 최첨단 소프트웨어를 원하십니까? Fedora를 사용하십시오. 안정성을 원하십니까? RHEL을 사용하십시오.)
  • 다양한 하드웨어 장치 지원
  • 패키지 관리자(RHEL에는 rpm, yum, 및 가 있고 dnfDebian에는 dpkg및 가 있으며 aptArchLinux에는 pacman; 등이 있습니다.)
  • 소프트웨어 패키지 및 도구(예: Debian의 기본 저장소에는 무료 오픈 소스 소프트웨어만 포함되어 있음)
  • 업데이트 및 버그 수정 일정이 다른 리포지토리

그러나 주요 용도가 일부 Bash 스크립트를 작성하는 것이라면 어떤 배포판을 사용하든 경험은 거의 동일할 것입니다.

답변3

넓게 보면 분포의 차이는 피부의 차이입니다. 다양한 그래픽 인터페이스는 단지 특별한 경우일 뿐입니다. 첫째, 두 할당 함수 간에는 두 가지 주요 차이점이 있습니다.

  1. 저장소에 무엇이 포함되어 있고 포함되어 있지 않은지;
  2. 기본 도구의 기본값은 무엇입니까?

첫 번째 예는 라이브러리나 애플리케이션의 버전일 수 있습니다. 개발자가 새 버전을 만들면 배포판 관리자가 이를 다운로드하고 컴파일한 후 저장소에 게시해야 합니다. 관리자(실제 사람)가 애플리케이션의 새 버전에 많은 버그가 있을 것으로 예상하는 경우 해당 버전을 건너뛸 수 있습니다. 그러나 다른 배포판의 관리자는 배포판을 있는 그대로 릴리스하고 일반 사용자가 개발자에게 직접 버그에 대해 불만을 제기할 수 있도록 할 것입니다.

두 번째: Ubuntu에서는 그룹 에 허용된 사용이 있는지 sudo확인합니다 . Fedora에서는 그룹 이름이 입니다 . 이 차이점은 기본 도구 중 하나로 저장소에 저장되기 전에 컴파일하는 동안 도구에 내장됩니다.wheelsudosudosudo

터미널도 UI라는 사실을 잊지 마세요. 그래픽적으로는 아닙니다. 그리고 차이도 있을 수 있습니다. 예: Ubuntu에서는 apt저장소에서 새 애플리케이션을 설치하는 데 사용하지만 Fedora에서는 dnf동일한 작업을 수행하는 데 사용합니다. 이는 다른 UI 선택으로 볼 수 있습니다. 그들은 동일한 목적을 가지고 있으며 거의 ​​동일한 기능과 제한 사항을 가지고 있습니다. 단지 다른 명령줄 키 세트와 다르게 구조화된 패키지가 처리될 뿐입니다.

운영 체제 구조를 잘 이해하면 설치한 배포판을 무시하고 다양한 방법의 배포판을 혼합할 수 있습니다. sudo이를 직접 다시 컴파일하고 특수 그룹(예: )을 정의 할 수 있습니다 admins. 또는 dnfUbuntu(또는 aptFedora)에 설치하고 두 리포지토리 모두에서 앱을 다운로드할 수 있습니다. 나중에 다운로드한 앱의 일부 설정을 조정해야 할 수도 있지만 가능합니다. 물론, 언제든지 일부 애플리케이션/라이브러리를 소스 코드로 다운로드하여 직접 컴파일하고 컴파일된 버전을 공유할 수 있습니다. 이것이 여러분만의 배포판이 됩니다.

이는 운영 체제의 일반 설정과 WSL 운영 체제 모두에 적용됩니다.

답변4

이것이 귀하의 질문에 대한 "최상의" 답변인지는 확실하지 않지만 배포판마다 특정 시점에 커널 요구 사항이 다를 수 있으므로 WSL1 호환성이 배포판마다 다를 수 있습니다.

실제적인 예로, Arch Linux는 다음과 같은 어려움을 겪고 있습니다."커널이 너무 오래되었습니다" 문제한동안 glibc-2.33-4의 변경으로 인해 Ubuntu는 그렇지 않았습니다.
그러나 이 문제는CentOS의 아치 컨테이너도 나타났습니다.이므로 WSL1 자체에만 국한되지 않습니다. 그러나 실제로 이는 WSL1에서 Arch를 실행하는 것이 더 어렵다는 것을 의미합니다.

관련 정보