web-dev-qa-db-fra.com

Quelles sont les limitations du sous-système Windows pour Linux?

J'ai joué avec le WSL l'année dernière, mais à l'époque, il n'était pas capable de gérer le projet de réseau de neurones que je voulais essayer. Apparemment, cela avait quelque chose à voir avec le fait que le noyau soit obsolète ou quelque chose du genre.

Depuis lors, le WSL a fait l'objet de nombreuses mises à jour. Quelles sont les limitations du fonctionnement de programmes fonctionnant sous Ubuntu sur le WSL? Sont-ils essentiellement équivalents? Existe-t-il des informations que je peux utiliser pour déterminer ceci à l’avance?

6
David A. French

Depuis que cette question initiale a été posée, les choses se sont un peu arrangées avec WSL et j'aimerais vous transmettre l'information.

Je peux dire qu'il est fondamentalement possible d'effectuer toute tâche Linux normale dans WSL qui nécessite uniquement le processeur. Cela signifie que vous pouvez facilement exécuter des applications à interface graphique, et même des environnements de bureau entiers, mais cela signifie également que l'exploitation de réseaux de neurones est davantage un exercice de gaspillage d'électricité. (WSL manque également de pilotes CUDA bien qu’il existe des pilotes CUDA pour Ubuntu qui pourraient éventuellement être utilisés si WSL pouvait réellement accéder au GPU)

Applications graphiques

Vous pouvez obtenir des applications graphiques de la manière suivante:

Tout ce que tu dois faire est:

  1. Installez un serveur Windows X. J'utilise VcXsrv
  2. Ajoutez les informations de routage à bash en utilisant la commande suivante:
    echo "export DISPLAY=localhost:0.0" >> ~/.bashrc
    
    Si vous exécutez zsh, ajoutez simplement les informations d'affichage de l'exportation à votre fichier .zshrc.

Si vous exécutez zsh, ajoutez simplement les informations d'affichage de l'exportation à votre fichier .zshrc.

J'ai résolu le problème de la gestion des réseaux neuronaux en… installant simplement Linux sur mon bureau, haha. C'est beaucoup plus facile comme ça.

Pour répondre à la question plus largement

La limitation la plus importante de WSL est que les systèmes de fichiers Linux et Windows ne sont pas vraiment compatibles. Les fichiers Linux utilisent un schéma d'autorisations différent de celui des fichiers Windows. Lorsque vous modifiez ou enregistrez un fichier dans le dossier de départ WSL ~/, vous enregistrez les métadonnées qui obligent Windows à afficher un fichier vide dans le Bloc-notes. Il existe également quelques problèmes de différence de fin de ligne (LF sous Linux vs CRLF sous Windows), mais le problème est moins grave, d’autant plus que Microsoft a permis à VS Code et Notepad d’utiliser l’une ou l’autre des lignes.

Techniquement, le système de fichiers Linux est accessible à partir de l’explorateur Windows, mais il est vivement déconseillé de le faire et vous ne pouvez rien y faire si vous le souhaitez.

0
David A. French

De la FAQ WSL :

Puis-je exécuter TOUTES les applications Linux en WSL?

Non! WSL est un outil destiné à permettre aux utilisateurs qui en ont besoin d’exécuter les outils de ligne de commande Bash et Linux sous Windows.

WSL ne vise pas à prendre en charge les bureaux ou les applications graphiques (par exemple, Gnome, KDE, etc.).

De plus, même si vous pourrez exécuter de nombreuses applications serveur courantes (Redis, par exemple), nous ne recommandons pas WSL pour les scénarios de serveur. Microsoft propose diverses solutions pour exécuter des charges de travail Ubuntu de production dans Azure, Hyper-V et Docker.

Il existe également le test officiel pour le programme de test Linux, qui fournit des informations sur certains logiciels et sur leur fonctionnement.


Les 2 liens ci-dessus sont la position officielle. L'une des choses notées par Microsoft est que WSL ne vise pas à prendre en charge une interface graphique. Les utilisateurs ont cependant été en mesure d'exécuter xfce et nité .

Quand quelqu'un peut obtenir une unité pour travailler sur WSL, je doute qu'il y ait des limites. Beaucoup de WSL étant un terrain non prouvé, il peut incomber à l'utilisateur de faire fonctionner quelque chose (par exemple, dans ce cas vous;)).

4
Rinzwind