web-dev-qa-db-ja.com

Linux用Windowsサブシステムの制限は何ですか?

私は昨年WSLをいじりましたが、当時は試してみたいニューラルネットワークプロジェクトを実行できませんでした。どうやら、古いカーネルやその種のものと関係があるようです。

それ以来、WSLには多くの更新がありました。 WSL上のUbuntuで動作するプログラムの実行の制限は何ですか?それらは本質的に同等ですか?これを事前に判断するために使用できる情報がありますか?

7
David A. French

この元の質問が尋ねられたので、物事はWSLで少し落ち着きました、そして、私は情報を伝えたいです。

CPUのみを必要とするWSLで通常のLinuxタスクを実行することは基本的に可能であると報告できます。つまり、GUIアプリ、さらにはデスクトップ環境全体を簡単に実行できることを意味しますが、ニューラルネットワークを実行することは、より多くの電力を浪費することになります。 (WSLにはCUDAドライバーもありませんが、WSDLが実際にGPUアクセスを取得できる場合に使用できるUbuntu用のCUDAドライバーがあります)

GUIアプリ

GUIアプリは次の方法で入手できます。

あなたがしなければならないのは:

  1. Windows Xサーバーをインストールします。 VcXsrv を使用します
  2. 次のコマンドを使用して、ルーティング情報をbashに追加します。
    echo "export DISPLAY=localhost:0.0" >> ~/.bashrc
    
    zshを実行する場合、エクスポート表示情報を.zshrcファイルに追加するだけです。

Zshを実行する場合、エクスポート表示情報を.zshrcファイルに追加するだけです。

Linuxをデスクトップにインストールするだけで、ニューラルネットワークの問題を解決できました(笑)。その方がずっと簡単です。

より幅広く質問に答えるために

WSLの最も重要な制限は、LinuxとWindowsのファイルシステムが実際に互換性がないことです。 LinuxファイルはWindowsファイルとは異なる権限スキームを使用し、WSLホームフォルダー~/でファイルを編集または保存すると、Windowsがメモ帳に空のファイルを表示するだけのメタデータで保存します。行末の違いにはいくつかの問題もあります(LinuxでのLFとWindowsでのCRLF)。これは、特にMicrosoftがVS Codeとメモ帳でどちらかの行末を使用できるようにしたためです。

Linuxファイルシステムは、Windows Explorerから技術的にアクセスできますが、あまりお勧めできません。必要に応じて、実際には何もできません。

0
David A. French

WSL FAQ から:

WSLですべてのLinuxアプリを実行できますか?

番号! WSLは、必要なユーザーがWindowsでBashおよびコアLinuxコマンドラインツールを実行できるようにすることを目的としたツールです。

WSLは、GUIデスクトップまたはアプリケーション(Gnome、KDEなど)のサポートを目的としていません。

また、多くの一般的なサーバーアプリケーション(Redisなど)を実行できますが、サーバーシナリオにはWSLをお勧めしません。Microsoftは、Azure、Hyper-V、Dockerで本番Ubuntuワークロードを実行するためのさまざまなソリューションを提供しています。

また、Linuxテストプログラム用の 公式テスト があり、ソフトウェアの一部と、それらが機能するか、機能するかどうかについての洞察を提供します。


上記の2つのリンクは公式のスタンスです。 Microsoftが指摘していることの1つは、WSLはグラフィカルインターフェイスのサポートを目的としていないことです。ただし、ユーザーは xfce および nity を実行できました。

誰かが団結してWSLで作業できるようになると、制限があるとは思えません。多くのWSLは未だに実証されていないので、何かを機能させるのはユーザー次第かもしれません(つまり、この場合はあなた;))。

4
Rinzwind