Depuis la sortie de Windows 10 Anniversary Update, j’ai pas mal joué avec Windows Subsystem for Linux, que je vois bien remplacer à terme mon bon vieux Cygwin. Globalement, je suis pour l’instant plutôt satisfait du fonctionnement.
Par rapport à Cygwin, je trouve qu’on gagne grandement en simplicité de mise en œuvre, en particulier quand on travaille également régulièrement avec Ubuntu (ce qui est mon cas, Ubuntu Desktop au boulot, Ubuntu Server pour ce site) : on retrouve bien plus vite ses marques, et on peut réutiliser plus facilement ses scripts d’une plateforme à l’autre. Je pense qu’à terme je pourrais également remplacer PuTTY. Cygwin garde tout de même quelques avantages pour l’instant, et notamment sa capacité à suivre les liens symboliques sur les volumes Windows.
Au titre des reproches, c’est surtout au niveau de l’ergonomie que j’aurais quelques critiques à émettre. Ainsi, la fenêtre Bash est calquée sur celle de l’invite de commande Windows : clic-droit pour copier la sélection, clic-droit pour coller. J’aurais largement préféré le comportement habituel des systèmes Unix : copie automatique de la sélection, clic-milieu pour coller. Comme l’invite de commande Windows, la fenêtre Bash peut défiler vers le bas, bien au delà de la dernière ligne imprimée… mais il n’y a par contre pas moyen de revenir à la dernière ligne automatiquement, il faut refaire défiler à la main. Enfin, je cherche toujours un moyen de changer le code RVB des couleurs ANSI, en particulier le bleu sombre, quasiment illisible sur fond noir.
J’ai également effectué quelques tests (très basiques…) de performances, à l’aide de deux scripts Python que j’ai réalisés. Le premier, PySums, est un script qui parcours le contenu d’un répertoire et calcule la somme MD5 de chaque fichier qu’il contient. Le second, MemAlloc, cherche à occuper 4 Gio de RAM en allouant un bloc de taille donnée et en le recopiant jusqu’à atteindre 4 Gio. L’opération est répétée 20 fois avec 20 tailles de blocs différentes, de 4 Gio à 4 Kio. Tous ces tests ont été mené avec Python 3.4.3, compilé en 64 bits.
On constate donc que les performances de Cygwin et de Python en natif sont grosso modo identiques dans les deux tests. Pour WSL par contre, les résultats divergent d’un test à l’autre. Pour le test PySums, c’est assez clair, le débit moyen de traitement est en retrait d’environ 7% pour le Python WSL par rapport aux deux autres versions de Python.
Pour le test MemAlloc, les résultats sont un peu plus contrastés : les cas extrêmes (très gros blocs et très petits blocs), qui sont les plus lents, sont nettement plus rapides sous WSL que sous Cygwin ou en natif. Mais à l’inverse, les cas les plus rapides sont sensiblement plus lents sous WSL.
Globalement, je n’ai toutefois pas constaté d’écart de performances véritablement sensibles à l’usage.
Une réflexion sur « Premier retour sur Windows Subsystem for Linux »