| |
Tipus | Microsoft Windows component (en) i environmental subsystem (en) |
---|---|
Versió estable | |
Llicència | Microsoft end-user license agreement (en) GNU GPL 2.0 llicència de propietat |
Característiques tècniques | |
Sistema operatiu | Windows 10 i Windows 11 |
Equip | |
Desenvolupador(s) | Microsoft |
Més informació | |
Lloc web | learn.microsoft.com… (anglès) |
Blog | Blog oficial |
Stack Exchange | Etiqueta |
Seguiment d'errors | Seguiment d'errors |
Id. Subreddit | bashonubuntuonwindows |
| |
Windows Subsystem for Linux (WSL) és una capa de compatibilitat per executar fitxers binaris de Linux (en format ELF) de forma nativa a Windows 10 i Windows Server 2019.
El maig de 2019, es va anunciar WSL 2,[1] introduint canvis importants com un nucli Linux real,[2] mitjançant un subconjunt de funcions Hyper-V. Des del juny de 2019, WSL 2 està disponible per als clients de Windows 10 mitjançant el programa Windows Insider, inclosa l'edició Home.[3]
La primera versió de WSL publicada per Microsoft proporcionà una interfície compatible amb el nucli de Linux, que no contenia cap codi del nucli de Linux,[4] que podia llavors executar un entorn d'usuari GNU a la part superior del mateix sistema, amb distribucions com Ubuntu,[5][6][7][8] openSUSE,[9] SUSE Linux Enterprise Server,[10][11][12] Debian[13] i Kali Linux.[14] Aquest espai d'usuari podia contenir un intèrpret d'ordres i un llenguatge d'ordres GNU Bash, amb eines de línia d'ordres natives de GNU (sed, awk, etc.), intèrprets de llenguatge de programació (Ruby, Python, etc.) i fins i tot aplicacions gràfiques (amb un Servidor X11 al costat de l’amfitrió).[15]
L'arquitectura es va redissenyar a WSL 2,[1] amb un nucli Linux funcionant en un entorn de màquina virtual lleuger.
Quan es va presentar amb l'actualització d’aniversari per a Windows 10 el 2 d’agost de 2016, només hi havia disponible una imatge d’Ubuntu. La Fall Creators Update, publicada el 17 d’octubre de 2017, va traslladar el procés d’instal·lació de les distribucions de Linux al Windows Store i va introduir imatges SUSE.[12]
WSL només estava disponible en versions de 64 bits de Windows 10 des de la versió 1607. Però també estaria disponible al Windows Server 2019.
Microsoft va anunciar WSL 2 el 6 de maig de 2019[1] que incloïa un backend completament nou basat en màquina virtual (basat en un subconjunt de funcions Hyper-V) en lloc de la capa d’adaptació de crides del sistema anterior, prevista per al llançament a través del programa Windows Insider el juny de 2019.
La primera incursió de Microsoft per aconseguir la compatibilitat similar de Unix a Windows va començar amb el subsistema POSIX de Microsoft, substituït pels Serveis de Windows per a UNIX a través de MKS/Interix, que finalment va quedar obsolet amb el llançament de Windows 8.1. La tecnologia darrere del subsistema Windows per a Linux es va originar en el no publicat Project Astoria, que va permetre que algunes aplicacions d'Android s'executessin a Windows 10 Mobile [16] I que es va fer disponible per primera vegada a la versió 14316 de Windows 10 Insider Preview.[17]
Mentre que els projectes anteriors de Microsoft i Cygwin s’havien centrat a crear els seus propis entorns similars a Unix basats en l'estàndard POSIX, WSL pretén la compatibilitat nativa amb Linux. En lloc d’ajustar funcionalitats no natives a les trucades del sistema Win32 com feien servir aquests sistemes anteriors, el disseny inicial de WSL (WSL 1) va aprofitar l'executable del nucli NT per servir els programes Linux com a processos mínims especials i aïllats (coneguts com a "pico processes") connectats al nucli mode "pico providers" com a gestors de trucades i excepcions del sistema dedicats diferents del d'un procés NT de vainilla, optant per reutilitzar les implementacions NT existents sempre que sigui possible.[18]
Tot i que WSL (mitjançant aquest disseny inicial) era molt més ràpid i, sens dubte, molt més popular que els seus germans UNIX-on-Windows, els enginyers del nucli de Windows van trobar dificultats per intentar augmentar el rendiment de WSL i la compatibilitat amb les trucades intentant remodelar el nucli NT existent per reconèixer i funcionar correctament a l'API de Linux. En una conferència de Microsoft Ignite el 2018, els enginyers de Microsoft van oferir una visió general d’alt nivell d’una nova tecnologia “lleugera” Hyper-V VM per a la contenimentació on un nucli virtualitzat podia fer un ús directe de les primitives NT a l’amfitrió.[19] El 2019, Microsoft va anunciar una arquitectura WSL completament redissenyada (WSL 2) que utilitza aquesta tecnologia de màquina virtual lleugera que allotja imatges reals (personalitzades) del nucli Linux, reclamant una compatibilitat completa amb syscall.[2]
Microsoft considerà WSL com "principalment una eina per a desenvolupadors, especialment per a desenvolupadors web i aquells que treballen en projectes de codi obert o amb ells".[15] El setembre del 2018, Microsoft va dir que "WSL requeriria menys recursos (CPU, memòria i emmagatzematge) que una màquina virtual completa" (que abans de WSL era la forma més directa d'executar programari Linux en un entorn Windows), alhora que permetia als usuaris utilitzar aplicacions de Windows i eines de Linux al mateix conjunt de fitxers.
LXSS Manager Service és el servei encarregat d’interactuar amb el subsistema (a través dels controladors lxss.sys
i lxcore.sys
), i la forma en què Bash.exe (que no s’ha de confondre amb els shell proporcionats per les distribucions de Linux) llança Linux processos, així com gestiona les crides del sistema Linux i els bloquejos binaris durant la seva execució.[20]
Tots els processos Linux invocats per un usuari concret passen a una "instància Linux" (normalment, el primer procés invocat és init). Un cop tancades totes les aplicacions, es tanca la instància.
| |
Tipus | Microsoft Windows component (en) i environmental subsystem (en) |
---|---|
Versió estable | |
Gènere | Command |
Llicència | Microsoft end-user license agreement (en) GNU GPL 2.0 llicència de propietat |
Característiques tècniques | |
Sistema operatiu | Microsoft Windows |
Equip | |
Desenvolupador(s) | Microsoft |
Més informació | |
Lloc web | learn.microsoft.com… (anglès) |
Blog | Blog oficial |
Stack Exchange | Etiqueta |
Seguiment d'errors | Seguiment d'errors |
Id. Subreddit | bashonubuntuonwindows |
| |
L'ordre wsl.exe
s'utilitzaria per gestionar distribucions al subsistema Windows per a Linux a la línia d'ordres. Pot llistar les distribucions disponibles, establir una distribució predeterminada i desinstal·lar distribucions.[21] L'ordre també es pot utilitzar per executar binaris de Linux des del símbol del sistema o del Windows PowerShell.[22] wsl.exe
substitueix lxrun.exe
que està obsolet a partir de Windows 10 1803 i versions posteriors.[23]
Executant l'uname
al WSL mitjançant PowerShell.
PS C:\temp> wsl uname --all
Linux 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 amb l' sudo
des del símbol del sistema.
C:\temp> wsl sudo apt-get update
[sudo] password for username:
Hit:1 https://archive.ubuntu.com/ubuntu xenial InRelease
Get:2 https://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]
El disseny de WSL 1 no presentava emulació / virtualització de maquinari (a diferència d'altres projectes com coLinux) i feia ús directe del sistema de fitxers amfitrió (mitjançantVolFS
i DrvFS
)[24] i algunes parts del maquinari, com la xarxa, que garanteix la interoperabilitat. Per exemple, es podia accedir als servidors web a través de les mateixes interfícies i adreces IP configurades a l’amfitrió i comparteixen les mateixes restriccions en l’ús de ports que requereixen permisos administratius o ports que ja ocupen altres aplicacions.[25]
Hi ha certes ubicacions (com ara carpetes del sistema) i configuracions l'accés / modificació de les quals està restringit, fins i tot quan s'executa com a root, amb sudo des de l'intèrpret d'ordres. Cal iniciar una instància amb privilegis elevats per aconseguir que "sudo" doni privilegis d'arrel reals i permeti aquest accés.[15]
El WSL 1 no és capaç d'executar tot el programari Linux, com ara binaris de 32 bits,[26][27] o aquells que requereixen serveis específics del nucli Linux no implementats a WSL. A causa de la manca de nucli Linux "real" al WSL 1, no es poden executar mòduls del nucli, com ara els controladors de dispositiu. WSL 2, però, fa ús d’instàncies de nucli Linux virtualitzades en directe.
És possible executar algunes aplicacions gràfiques (GUI) (com Mozilla Firefox) instal·lant un servidor X11 en l'entorn de Windows (host) (com VcXsrv o Xming),[28] encara que no sense advertències, com ara la manca de suport d’àudio (tot i que es pot solucionar instal·lant PulseAudio al Windows d’una manera similar a X11) o acceleració de maquinari (resultant en un rendiment gràfic deficient). El suport per a OpenCL i CUDA tampoc s’està implementant actualment, tot i que està previst per a futures versions.[29][30]
Microsoft va afirmar que WSL va ser dissenyat per al desenvolupament d'aplicacions i no per a ordinadors d'escriptori o servidors de producció, recomanant l'ús de màquines virtuals (Hyper-V), Kubernetes i Azure per a aquests propòsits.[15]
En els punts de referència, el rendiment de WSL 1 és sovint a prop de Linux natives Ubuntu, Debian, Intel Clear Linux o altres distribucions Linux. En algunes proves, l’I/O és un coll d’ampolla per al WSL.[31][32][33] Microsoft reclama el backend WSL 2 redissenyat per oferir vint vegades augment de velocitat en determinades operacions en comparació amb el de WSL 1.[2]
La versió 2 introduí canvis en l'arquitectura. Microsoft optà per la virtualització mitjançant un subconjunt altament optimitzat de funcions Hyper-V, per tal d’executar el nucli i les distribucions (basades en el nucli), prometent un rendiment equivalent al WSL 1. Per a una compatibilitat posterior, els desenvolupadors no necessitarien canviar res a les seves distribucions publicades. Els paràmetres de WSL 2 es podrien modificar mitjançant la configuració global de WSL, continguda en un fitxer INI anomenat .wslconfig
a la carpeta Perfil d'usuari.[34][35]
La instal·lació de distribució residiria dins d'un sistema de fitxers amb format ext4 dins d'un disc virtual i el sistema de fitxers amfitrió seria accessible de manera transparent a través del protocol 9P,[36] de manera similar a altres tecnologies de màquines virtuals com QEMU.[37] Per als usuaris, Microsoft va prometre fins a 20 vegades el rendiment de lectura / escriptura de WSL 1.[38] Des del Windows es proporciona un redirector de xarxa IFS per a l'accés al fitxer de convidat de Linux mitjançant el prefix de camí UNC de \\wsl$
WSL 2 requereix Windows 10 versió 1903 o superior, amb Build 18362 o superior, per als sistemes x64, i la versió 2004 o superior, amb Build 19041 o superior, per als sistemes ARM64.[39]
Hi ha temors a la comunitat de desenvolupadors que el subsistema Windows per a Linux pugui ser una manera d'abraçar, estendre i extingir Linux.[40][41]
Richard Stallman ha expressat el seu temor que la integració de la funcionalitat de Linux a Windows només dificulti el desenvolupament de programari lliure, i ha considerat que els esforços com WSL són "un pas enrere en la campanya per la llibertat".[42] Linus Torvalds, per contra, va dir que no li preocupava la presa de possessió de Linux per part de Microsoft, perquè creia que les llicències GPL 2 de Linux i la mida del projecte ho feien impossible, a més de citar l’augment de la cooperació de Microsoft amb la comunitat Linux.[43]