Linux用のWindowsサブシステムのバイナリは、実際のLinux PCを起動するのと同じですか?

Linux用のWindowsサブシステムのバイナリは、実際のLinux PCを起動するのと同じですか?

Windows 10または11があり、Windows用のWindowsサブシステム(WSL)やUbuntuなどのディストリビューションを使用している場合は、起動可能なLinux PCの作成に使用するのと同じバイナリを使用しますか?

たとえば、WSL BashまたはZshコマンドプロンプトを使用している場合は、次のようにインストールします。

  • ルビー、gcc、cc
  • GPUドライバ
  • xmrig、t-rexなどの暗号マイニング実行可能ファイル

起動可能なLinuxドライブまたはUSBドライブを作成し、そこから起動するのと同じバイナリを使用しますか?

実際、Ruby/gcc/ccは問題ないかもしれませんが、Linux GPUドライバの場合、WindowsのネイティブGPUドライバと競合しますか?

答え1

まあ、はい、いいえ(いくつかの種類のバイナリについて質問しましたので)。

アプリケーションバイナリ

はい、x64 Linuxシステムを使用すると仮定すると、2つのシステム間のバイナリは同じです。実際、物理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)では、次のものが提供されています。WindowsGPUドライバWSL2 GPUコンピューティング仕事。これにより、GPUコンピューティングアーキテクチャ(TensorFlowなど)を利用するLinuxバイナリがWindows GPUを利用できます。

暗号通貨の採掘については話すことはできませんが(Microsoftがこれを推進するかどうかは疑問です)、これらのバイナリと共にこのアーキテクチャを使用できることを願っています。

答え2

いいえ。 WSL は Linux に対する Microsoft の解釈に過ぎず、スタンドアロン Linux と同じハードウェアアクセス権を持っていません。

関連情報