WSL

De The Linux Craftsman
Aller à : navigation, rechercher

Introduction

Windows Subsystem for Linux (WSL) est une couche de compatibilité permettant d'exécuter des exécutables binaires Linux (au format ELF) de manière native sur Windows 10 et Windows Server 2019. wikipedia

Cela va permettre d'exécuter un terminal (bash) de manière native sur votre système Windows et les applications lancées par ce biais profiteront de toute la puissance que matériel peu offrir.

regardons comment activer cette fonctionnalité !

Warning-icon.png

NB 27/06/2020 : Pour l'instant, WSL2, qui offre une plus grande intégration / compatibilité Linux, est encore en phase de test. De gros problèmes de performance sur le système de fichier, notamment la partie « /mnt » qui permet la passerelle avec Windows, ont été identifiés depuis juin 2019 et ne sont toujours pas corrigés (lien github).

Préférez donc WSL1 pour le moment...

Activation

Il faut d'abord activer la fonctionnalité "Sous-système Windows pour Linux", soit dans un Powershell (en tant qu'administrateur):

Powershell enable wsl win10.png
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Soit à travers l'interface graphique:

Add remove progs win10.png

Features and progs win10.png

Enable disable features win10.png

Wsl activation win10.png

Choix de la distribution

Il faut maintenant choisir une distribution Linux:

Installation en PowerShell

Une fois le fichier appx récupéré:

Download appx kali win10.png

Il suffit d'ouvrir un Powershell pour se déplacer dans le répertoire de téléchargement et lancer l'installation:

Powershell install appx win10.png

Install progress appx win10.png
> cd .\Downloads\
> Add-AppPackage .\kali-linux-08-06-2019.appx

Avec un exécutable

Dans le cas de CentOS, pas besoin de lancer un Powershell, il suffit de décompresser l'archive et de lancer l'exécutable Centos wsl runnable.png en tant qu'administrateur. La première fois, l'exécutable créer les fichiers nécessaires et après, un terminal se lancera:

Centos wsl bash.png

Gérer les distributions WSL

Dans un Powershell, il est possible de lister les distributions installées

>wslconfig /l
Distributions du sous-système Windows pour Linux :
CentOS7 (par défaut)

Et de les supprimer:

>wslconfig /u CentOS7

Ajouter un point de montage Windows

Il peut être intéressant de monter une partition Windows sous Linux WSL. Tout d'abord il faut identifier la lettre de la partition à ajouter sous Windows (clé USB, carte SD, etc...). Dans cet exemple, nous allons:

  • monter le disque Windows G:
  • dans le point de montage /mnt/g (si le répertoire n'existe pas il faut le créer).
# mount -t drvfs G: /mnt/g

Lancer une application graphique

Côté Windows

Le déport d'affichage ou déport X (du nom du serveur graphique Linux X11) permet de lancer une application depuis un système Linux sur un autre (Linux ou Windows).

Le seul problème est que Windows ne possède pas de serveur X... nous allons utiliser VcXSrv.

Pour MAC il faut télécharger XQuartz !

Pour démarrer VcXSrv, double cliquez sur l’icône XLaunch qui permet de lancer le serveur X.

Côté Linux

Il ne reste plus qu'à spécifier à notre Linux de rediriger les paquets graphique et pour cela nous allons utiliser la ligne suivante:

$ export DISPLAY=:0

Pour que cela se fasse à chaque démarrage de WSL, il est possible de mettre cette ligne dans le fichier .bashrc de votre répertoire home (à la fin par exemple).

Test

Pour notre exemple nous allons utiliser une application très simple qui affiche une horloge: xclock.

Pour installer xclock il suffit d'utiliser la commande suivante:

  • sour Ubuntu:
$ sudo apt-get install -y x11-apps
  • sour CentOS:
# yum -y install xclock

et de lancer xclock

Xclock vcxsrv wsl.png

Créer un raccourci

Il est possible de faire un raccourci Windows pour lancer directement notre application graphique depuis le bureau Windows.

Pour cela nous allons créer le fichier xclock.bat sur le bureau et y placer les lignes suivante:

powershell -window hidden ^
-command "ubuntu1804.exe run 'export DISPLAY=:0;xclock'"
  • La première ligne permet de démarrer notre script en mode caché pour qu'il ne reste pas dans la barre des tâches.
  • La deuxième ligne permet de spécifier la commande à exécuter.

Il ne vous reste plus qu'à sauvegarder le script et double cliquer pour lancer une application Linux depuis Windows !