Linux용 Windows 하위 시스템의 바이너리는 실제 Linux PC를 부팅할 때와 동일합니까?

Linux용 Windows 하위 시스템의 바이너리는 실제 Linux PC를 부팅할 때와 동일합니까?

Windows 10 또는 11이 있고 WSL(Linux용 Windows 하위 시스템) 및 Ubuntu와 같은 배포판을 사용하는 경우 부팅 가능한 Linux PC를 만드는 데 사용하는 것과 동일한 바이너리를 사용합니까?

예를 들어 WSL Bash 또는 Zsh 명령 프롬프트를 사용할 때 다음을 설치하면:

  • 루비, gcc 및 cc
  • GPU 드라이버
  • xmrig, t-rex와 같은 암호화 마이닝 실행 파일

부팅 가능한 Linux 드라이브나 USB 드라이브를 만들고 거기에서 부팅할 때와 동일한 바이너리를 사용합니까?

실제로 Ruby/gcc/cc는 괜찮을 수 있지만 Linux GPU 드라이버의 경우 Windows 기본 GPU 드라이버와 충돌합니까?

답변1

글쎄요, 예, 아니요(여러 가지 유형의 바이너리에 대해 질문하셨기 때문에).

애플리케이션 바이너리

예, x64 Linux 시스템을 사용한다고 가정하면 두 시스템 간의 바이너리는 동일합니다. 실제로 물리적 Linux 상자에서 직접 드라이브를 가져와서 다음을 수행할 수 있습니다.

  • 시스템 tarball을 만들고 WSL로 가져옵니다.
  • 아니면 chroot해당 드라이브의 파일 시스템으로 이동하세요.완료되었다).

두 작업 모두 바이너리 파일에 대한 "변환"이나 변경이 이루어지지 않았습니다.

부팅 바이너리

그럴 때 참고하세요시작하다WSL2 이렇게 도망쳐최대원본 릴리스의 바이너리. 그러나 실제 커널은 initWSL2에서 제공되므로 Windows 통합(예: .exeWindows 실행 기능, 네트워크 통합 및).

Systemd가 자동으로 시작되지 않는다는 점은 주목할 가치가 있습니다. 가지다해결책initWSL2에서는 Systemd에 대한 지원이 있지만 WSL이 먼저 작업을 수행할 수 있도록 부팅 후 실행해야 합니다 .

바이너리 드라이버

반면에, 아니요, (대부분) 바이너리입니다.운전사직접적인 접근을 기대한다물리적 하드웨어WSL이 가상으로 동등한 것을 제공하지 않으면 일반적으로 작동하지 않습니다. WSL2는 가상화된 환경에서 실행됩니다. 하지만 몇 가지 예외가 있습니다.

USB 장치 드라이버

그러나 USB/IP(Windows에서)를 통해 USB 장치를 공유하고 WSL/Linux에 연결하여 Windows의 USB 장치에 직접 하드웨어 액세스를 제공할 수 있습니다. 이러한 장치의 경우 바이너리 드라이버가 작동합니다.

최신 WSL2 커널 버전에는 USB/IP 지원이 포함되어 있지만 그 이전에도 이 기능을 활성화하여 자체 커널을 구축할 수 있었습니다.

GPU 컴퓨팅

최신 WSL2 버전(Windows 11 및 Windows 10 21H2)에서는 다음을 제공합니다.윈도우GPU 드라이버WSL2 GPU 컴퓨팅일. 이를 통해 GPU 컴퓨팅 아키텍처(예: TensorFlow)를 활용하는 Linux 바이너리가 Windows GPU를 활용할 수 있습니다.

암호화폐 채굴에 대해서는 말할 수 없지만(Microsoft가 이를 추진할지는 의문입니다) 이제 이러한 바이너리와 함께 이 아키텍처를 사용할 수 있기를 바랍니다.

답변2

아니요. WSL은 Linux에 대한 Microsoft의 해석일 뿐이며 독립 실행형 Linux와 동일한 하드웨어 액세스 권한을 갖지 않습니다.

관련 정보