Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

Windows Subsystem for Linux

Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voirWSL.

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne s'appuie pas, ou pas assez, sur des sourcessecondaires ou tertiaires().

L'article peut contenir des analyses et interprétations inexactes ou inédites de sources primaires. Pour améliorer lavérifiabilité de l'article ainsi queson intérêt encyclopédique, il est nécessaire, quand dessources primaires sont citées, de les associer à des analyses faites par des sources secondaires.
Windows Subsystem for Linux
Description de l'image Windows Subsystem for Linux logo.png.
Description de cette image, également commentée ci-après
Bash s'exécutant sous Windows 10
Informations
CréateurMicrosoft
Première version (9 ans, 202 jours)
Dernière version2.6.2 ()[1]Voir et modifier les données sur Wikidata
Dépôtgithub.com/microsoft/WSLVoir et modifier les données sur Wikidata
Écrit enC++Voir et modifier les données sur Wikidata
Système d'exploitationWindows 10 etWindows 11Voir et modifier les données sur Wikidata
TypeMicrosoft Windows component(d)
Environmental subsystem(en)Voir et modifier les données sur Wikidata
LicenceMicrosoft CLUF(d),licence publique générale GNU version 2 etlicence propriétaireVoir et modifier les données sur Wikidata
Site webhttps://docs.microsoft.com/fr-fr/windows/wsl/

modifier -modifier le code -voir Wikidata(aide)

Windows Subsystem for Linux (WSL) est une couche de compatibilité permettant d'exécuter desexécutables binairesLinux (au formatELF) de manière native surWindows 10,Windows 11 etWindows Server 2019[2].

La versionWSL 2 est sortie en[3],[4]. Cette nouvelle version introduit d'importants changements, notamment la présence d'un véritablenoyau Linux[5] via un sous-ensemble de fonctionnalitésHyper-V. Depuis, WSL 2 est disponible pour les clients Windows 10 via le programmeWindows Insider, y compris l'édition Famille[6]. En, il est accessible à tous les utilisateurs généraux Windows[7]. Les appels graphiques et les lectures de fichiers Linux deviennent très rapides, mais l'accès aux fichiers Windows est en revanche ralenti.

Vue d'ensemble

[modifier |modifier le code]

La première version de WSL fournit une interface noyau compatibleLinux développée par Microsoft, qui ne contient aucuncode source dunoyau Linux[8]. Cette interface permet d'exécuter unespace utilisateurGNU comme celui d'Ubuntu[9],[10],[11],[12],openSUSE[13],SUSE Linux Enterprise Server[14],[15],[16],Debian[17] ouKali Linux[18]. Un tel espace utilisateur peut contenir un shellBash avec des outils en ligne de commande GNU / Linux natifs (sed,awk, etc.), des interpréteurs delangage de programmation (Ruby,Python, etc.) et même des applications graphiques (utilisant unserveur X11 côté hôte)[19].

L'architecture a été repensée dans WSL 2[3], avec un noyau Linux s'exécutant dans une machine virtuelle légère.

Introduction et disponibilité

[modifier |modifier le code]

Lors de son introduction avec lamise à jour anniversaire (1607) le, seule une image Ubuntu était disponible. Lamise à jour Fall Creators (1709), publiée le, a déplacé le processus d'installation desdistributions Linux vers leWindows Store et a introduit les imagesSUSE[16].

WSL est disponible uniquement dans les versions64 bits de Windows 10 à partir de la version 1607. Il est également disponible sous Windows Server 2019.

Le[3], Microsoft a lancé WSL 2[3], qui propose un tout nouveaubackend qui repose sur une machine virtuelle (reposant sur un sous-ensemble de fonctionnalités Hyper-V) au lieu de la couche de compatibilité antérieure.

Développement

[modifier |modifier le code]

La première tentative de Microsoft pour atteindre une compatibilité de type Unix sur Windows a commencé avec le sous-système Microsoft POSIX, remplacé parWindows Services for UNIX, qui a finalement été rendu obsolète à la sortie deWindows 8.1. La technologie à l'origine de WSL est issue duprojet non publiéAstoria, qui permettait à certaines applicationsAndroid de s'exécuter surWindows 10 Mobile[20]. Il a d'abord été mis à disposition dansWindows 10 Insider Preview build 14316[21].

Alors que les projets précédents de Microsoft et deCygwin s’étaient concentrés sur la création de leurs propres environnements detype Unix basés sur lestandard POSIX, WSL vise la compatibilité native avec Linux. Au lieu d'encapsuler les fonctionnalités non natives danslesappels systèmeWin32, la conception initiale de WSL (WSL 1) exploitait l'exécutif dunoyau NT pour servir les programmes Linux en tant queprocessus minimaux isolés et uniques (appelés"pico processus") liés aumode noyau"pico providers" en tant que gestionnaires d'appels système et d'exceptions dédiés, distincts de ceux d'un processus NT classique, en choisissant de réutiliser les implémentations NT existantes dans la mesure du possible[22].

Bien que WSL (dans cette conception initiale) soit beaucoup plus rapide et sans doute beaucoup plus populaire que les autres solutions permettant d'utiliser Linux sur Windows, les ingénieurs dunoyau Windows ont eu du mal à augmenter les performances de WSL et la compatibilité des appels systèmes en essayant de remodeler le noyau NT existant pour qu'il reconnaisse et fonctionne correctement sur l'API de Linux . Lors d'une conférence Microsoft Ignite en 2018, les ingénieurs Microsoft ont donné un aperçu d'une nouvelle technologie "légère" de machine virtuelleHyper-V pour la conteneurisation dans laquelle un noyau virtualisé pouvait utiliser directement les primitives NT sur l'hôte. En 2019, Microsoft a repensé l'architecture de WSL 2, utilisant cette technologie VM légère hébergeant des images de noyau Linux réelles (personnalisées), revendiquant ainsi une compatibilité complète[5].

Microsoft présente WSL comme un outil pour les développeurs - en particulier les développeurs Web et ceux qui travaillent sur ou avec des projets open source[19]. WSL utilise moins de ressources qu'une machine virtuelle classique (avant WSL, une machine virtuelle était le moyen le plus direct pour exécuter un logiciel Linux dans un environnement Windows), tout en permettant aux utilisateurs d'utiliser des applications Windows et des outils Linux sur le même ensemble de fichiers.

Architecture

[modifier |modifier le code]

WSL 1

[modifier |modifier le code]

Service du gestionnaire LXSS

[modifier |modifier le code]

LXSS Manager Service est le service qui interagit avec le sous-système (via lespiloteslxss.sys etlxcore.sys), qui gère la façon dontbash.exe (à ne pas confondre avec les shells fournis par les distributions Linux) lance les processus Linux, et qui gère également lesappels système Linux et les verrous binaires lors de leur exécution[23].

Tous les processus Linux appelés par un utilisateur vont dans une "instance Linux" (généralement, le premier processus appelé estinit). Une fois toutes les applications fermées, l'instance est fermée.

wsl.exe

[modifier |modifier le code]

Lacommandewsl.exe permet de gérer, enligne de commande, les distributions dans WSL. Cette commande peut répertorier les distributions disponibles, définir une distribution par défaut et désinstaller les distributions[24]. La commande peut également être utilisée pour exécuter directement desfichiers binaires Linux à partir de l'invite de commandeWindows ou deWindows PowerShell[25].wsl.exe remplacelxrun.exe qui est obsolète à partir de Windows 10 1803[26].

Exemples
[modifier |modifier le code]

Exécuter la commandeuname dans WSL à l'aide de PowerShell.

PS C:\temp> wsl uname --allLinux WikiMachine 4.4.0-18362-Microsoft #1-Microsoft Mon Mar 18 12:02:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux

Exemple d'utilisation de la commandesudo partir de l'invite de commande.

C:\temp> wsl sudo apt-get update[sudo] password for username:Hit:1 https://archive.ubuntu.com/ubuntu xenial InReleaseGet:2 https://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]

Accès au matériel et au système de fichiers

[modifier |modifier le code]

La conception de WSL 1 ne comportait aucuneémulation / virtualisation matérielle (contrairement à d’autres projets tels que coLinux) et utilisait directement lesystème de fichiers hôte (viaVolFS etDrvFS)[27] et certaines parties du matériel, telles que le réseau afin de garantir l’interopérabilité[28]. Les serveurs Web, par exemple, sont accessibles via les mêmes interfaces etadresses IP configurées sur l'hôte et partagent les mêmes restrictions pour l'utilisation des ports nécessitant des autorisations administratives ou déjà occupés par d’autres applications).

Pour des raisons de sécurité, l'accès à certains emplacements (tels que les dossiers système) est restreint, même lors de l'exécution en tant que root (avecsudo à partir du shell). Pour accéder à ce type d'emplacement protégé, il est nécessaire de lancer une instance WSL avec des privilèges élevés (en tant qu'administrateur) afin que "sudo" donne de vrais privilèges root et autorise un tel accès[19].

Limites

[modifier |modifier le code]

WSL 1 ne peut pas exécuter tous les logiciels Linux, tels que les fichiers binaires 32 bits[29],[30], ou ceux nécessitant des services spécifiques du noyau Linux non implémentés dans WSL. En raison de l'absence de "vrai" noyau Linux dans WSL 1, les modules du noyau, tels que les pilotes de périphérique, ne peuvent pas être exécutés. WSL 2, quant à lui, utilise des instances de noyau Linux virtualisées.

Il est possible d’exécuter certaines applications graphiques (commeMozilla Firefox) en installant unserveur X11 dans l’environnement Windows (hôte) (VcXsrv ouXming par exemple)[31]. Cependant, l'audio ou l'accélération matérielle ne sont pas pris en charge (ce qui entraîne de mauvaises performances graphiques). La prise en charge d’OpenCL et deCUDA n’est pas non plus mise en œuvre actuellement, bien que celle-ci soit prévue pour les versions futures[32],[33].

Microsoft a déclaré que WSL 1 était destiné principalement au développement d'applications et non pas à l'exécution d'environnement de bureau ou de serveurs de production. Pour ce type d'usage, Microsoft recommande l'utilisation demachines virtuelles (Hyper-V),Kubernetes etAzure[19].

Performances

[modifier |modifier le code]

Dans les tests de performance, les performances de WSL 1 sont souvent proches des distributions Linux natives Ubuntu, Debian,Clear Linux ou autres. Dans certains tests, lesI/O sont un goulot d'étranglement pour WSL[34],[35],[36]. Selon Microsoft, les modifications apportées à WSL sont censées offrir une vitesse multipliée par vingt sur certaines opérations par rapport à celle de WSL 1[5].

WSL 2

[modifier |modifier le code]

La version 2[37] introduit des modifications dans l'architecture. Microsoft a opté pour la virtualisation via un sous-ensemble optimisé de fonctionnalités Hyper-V[38], afin d'exécuter le noyau fourni et les distributions sous-jacentes, offrant des performances plus proches d'un Linux natif. La compatibilité avec les versions antérieures étant annoncée, les développeurs n’ont donc pas besoin de changer quoi que ce soit dans leurs distributions publiées.

Dans WSL 2, il existe une nouvelleconfiguration globale. Il est toutefois toujours possible, comme avec WSL 1, d'utiliser unfichier INI nommé.wslconfig situé également dansle dossier personnel de l'utilisateur[39],[40]. Il s'installe particulièrement facilement sous la version "2004" disponible depuis fin.

L'installation de la distribution s'effectue sur un système de fichiers au formatext4 dans undisque virtuel. Le système de fichiers hôte est accessible de manière transparente via leprotocole 9P (en)[41]. Microsoft a annoncé multiplier par 20 les performances de lecture / écriture par rapport à WSL 1[42].

WSL 2 nécessiteWindows 10 version 1903 ou une version ultérieure pour les systèmes basés surx86, ou Windows 10 version 2004 ou une version ultérieure pour les systèmes basés surARM[43]. Le build 19041.329 de permet une installation en quelques dizaines de secondes, ne nécessitant ensuite qu'un redémarrage. On est libre ensuite de décider (ou non) que WSL 2 sera le WSL par défaut.

Un développeur signale ses compilations sous Linux comme13 fois plus rapides[44] sous cette nouvelle version, dont les performances permettent à tout programmeur C de réaliser des animations 3D fluides enOpenGL.

La sortie de WSL 2 coïncide avec l'annonce de Microsoft visant à arrêter le portage d'applications Linux vers Windows[45], tel quePHP 8 qui ne sera pas proposé pour Windows par Microsoft, favorisant ainsi l'usage de WSL 2 pour PHP sous Windows.

Captures d'écran

[modifier |modifier le code]
  • Firefox pour Linux s'exécutant sur WSL
    Firefox pour Linux s'exécutant sur WSL
  • Gestionnaire de paquets Synaptic s'exécutant sur WSL
    Gestionnaire de paquets Synaptic s'exécutant sur WSL

Voir aussi

[modifier |modifier le code]

Notes et références

[modifier |modifier le code]
  1. « Release 2.6.2 »,(consulté le)
  2. craigloewen-msft, « Installer WSL 2 », surdocs.microsoft.com(consulté le)
  3. abc etdCraig Loewen, « Announcing WSL 2 »,Windows Command Line Tools For Developers,
  4. « WSL 2 »
  5. ab etcmscraigloewen, « About WSL 2 »,docs.microsoft.com
  6. « WSL 2 Post BUILD FAQ »,Windows Command Line Tools For Developers,
  7. « Le sous-système windows pour linux 2 (wsl2) passe à la disponibilité générale sous windows 10, version 2004, avec un processus de mise à jour amélioré », surDeveloppez.com(consulté le).
  8. Gerwitz, « GNU/kWindows »,mikegerwitz.com(consulté le)
  9. Harsh, « Run Bash on Ubuntu on Windows »,Building Apps for Windows,Microsoft,
  10. Finley, « Why Microsoft Making Linux Apps Run on Windows Isn't Crazy », surwired.com,Condé Nast,
  11. Kirkland, « Ubuntu on Windows – The Ubuntu Userspace for Windows Developers », surinsights.ubuntu.com,Canonical,
  12. Hammons, « Bash on Ubuntu on Windows »,MSDN,Microsoft,
  13. Get openSUSE Leap 42 - Microsoft Store
  14. Get SUSE Linux Enterprise Server 12 - Microsoft Store
  15. Yegulalp, « Windows Subsystem for Linux welcomes Suse and Fedora options »,InfoWorld,(consulté le)
  16. a etb« Ubuntu now available from the Windows Store! »,Windows Command Line Tools For Developers Blog,(consulté le)
  17. (en) « Debian GNU/Linux for WSL now available in the Windows Store »,Windows Command Line Tools For Developers,‎(lire en ligne, consulté le)
  18. (en) « Kali Linux in the Windows App Store »,Kali Linux,‎(lire en ligne, consulté le)
  19. abc etd« Frequently Asked Questions for WSL »,Microsoft(consulté le)
  20. Bright, « Why Microsoft needed to make Windows run Linux software »,Ars Technica,Condé Nast,
  21. Aul, « Announcing Windows 10 Insider Preview Build 14316 »,Windows Experience Blog,Microsoft,
  22. (en) JackHammons, « Windows Subsystem for Linux Overview »,MSDN Blogs,‎(lire en ligne)
  23. Jack Hammons, « Windows Subsystem for Linux Overview »,Windows Subsystem for Linux blog onMSDN,
  24. Manage and configure Windows Subsystem for Linux
  25. Windows Subsystem for Linux interoperability with Windows
  26. Command Reference for Windows Subsystem for Linux
  27. Jack Hammons, « WSL File System Support »,Windows Subsystem for Linux blog onMSDN,
  28. Jack Hammons, « WSL Networking »,Windows Subsystem for Linux blog onMSDN,
  29. « Please enable WSL to run 32 bit ELF binaries »,Windows Developer feedback (Microsoft/UserVoice)
  30. « Support for 32-bit i386 ELF binaries »,GitHub
  31. « Windows 10's Bash shell can run graphical Linux applications with this trick »,PC World(consulté le)
  32. « GPU not accesssible for running tensorflow and installing CUDA · Issue #1788 · Microsoft/WSL »,GitHub(consulté le)
  33. « OpenCL & CUDA GPU support »,Windows Developer feedback (Microsoft/UserVoice),(consulté le)
  34. « Windows Subsystem for Linux »,Phoronix
  35. Michael Larabel, « A Look At The Windows 10 October 2018 Update Performance With WSL »,Phoronix,
  36. Michael Larabel, « The WSL Improvements In The Windows 10 October 2018 Update »,Phoronix,
  37. https://docs.microsoft.com/fr-fr/windows/wsl/wsl2-kernel
  38. Rappelons que Hyper-Vcomplet est fourni d'office avec les versionsprofessionnelles de Windows, et que curieusement c'est souvent une version Pro qui équipe en standard lesMini PCs
  39. Loewen,« What’s new for WSL in Insiders Preview Build 18945 »[archive du][html],Microsoft devblog,(consulté le) :« In this new update we’ve added the ability to start using global config options for WSL. These options are targeted towards power users who want to further customize their WSL experience. »
  40. Hillis,« MicrosoftDocs/WSL | Build 18947 »[archive du][html],GitHub,(consulté le)
  41. (en-US) « A Deep Dive Into How WSL Allows Windows to Access Linux Files »,Windows Command Line Tools For Developers,(consulté le)
  42. (en-US) « Announcing WSL 2 »,Windows Command Line Tools For Developers,(consulté le)
  43. « Étapes d’installation manuelle pour les versions antérieures de WSL »,Microsoft,(consulté le)
  44. https://windows.developpez.com/actu/302543/Premieres-impressions-sur-WSL-2-13-fois-plus-rapide-que-WSL-1-et-introduit-une-nouvelle-ere-pour-le-developpement-Web-sous-Windows-selon-un-developpeur/
  45. « Utilisez vos commandes 🐧Linux sous Windows 10 avec WSL2 », surcodedesign.fr(consulté le).

Liens externes

[modifier |modifier le code]
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Windows_Subsystem_for_Linux&oldid=231115403 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2026 Movatter.jp