Windows подсистем за Linux (енгл.Windows Subsystem for Linux; скраћено WSL) је компонента Microsoft Windows-а која омогућава коришћење Linux окружења из самог Windows-а, чиме се избегава оптерећење виртуелне машине и представља алтернативу двоструком покретању. WSL алат за интерфејс командне линије је подразумевано инсталиран у Windows-у 11, али дистрибуција мора бити преузета и инсталирана преко њега пре употребе. [1] У Windows-у 10, WSL се може инсталирати или придруживањем програму Windows Insider или ручно путем Microsoft Store-а или Winget-а. [2]
Оригинална верзија, WSL 1, значајно се разликује од друге главне верзије, WSL 2. WSL 1 (објављен 2. августа 2016.), деловао је као слој компатибилности за покретање бинарних извршних датотека Linuxа (у ELF формату) имплементацијом системских позива Linuxа у Windows кернелу. [3] WSL 2 (најављен маја 2019.[4]), представио је прави Linux кернел – управљану виртуелну машину (преко Hyper-V-а) која имплементира пун Linux кернел. Као резултат тога, WSL 2 је компатибилан са више Linux бинарних датотека јер нису сви системски позиви имплементирани у WSL 1.[5]
Microsoft нуди WSL из више разлога. Microsoft замишља WSL као „алат за програмере – посебно веб програмере и оне који раде на или са пројектима отвореног кода“. [6] Microsoft такође тврди да „WSL захтева мање ресурса (CPU, меморију и складиште) него потпуна виртуелна машина“ (уобичајена алтернатива за коришћење Linuxа у Windowsу), а истовремено омогућава коришћење и Windows и Linux алата на истом скупу датотека. [6]
Већина WSL-а је објављена као софтвер отвореног кода 19. маја 2025., иако се одређене функције фајл система и даље ослањају на власничку библиотеку која тренутно није отвореног кода.
LXSS Manager Service је сервис задужен за интеракцију са подсистемом (кроз драјвереlxss.sys и lxcore.sys), и начин на који Bash.exe (не треба мешати са Shell-овима које пружају Linux дистрибуције) покреће процесе, као и за руковање системским позивима Linux-а и бинарним закључавањима током њиховог извршавања. [7] Сви процеси које покрене одређени корисник иду у такозвану „Linux инстанцу“ (обично је први позвани процес init). Када се све апликације затворе, инстанца се затвара.
Дизајн WSL 1 није садржао емулацију/виртуелизацију хардвера (за разлику од других пројеката као што је coLinux) и директно је користио фајл систем хоста (преко VolFS и DrvFS) [8] и неке делове хардвера, као што је мрежа, што гарантује интероперабилност. Веб серверима, на пример, може се приступити преко истих интерфејса и IP адреса конфигурисаних на хосту, и деле иста ограничења у коришћењу портова који захтевају администраторске дозволе или портова које већ заузимају друге апликације. [9] Постоје одређене локације (као што су системске фасцикле) и конфигурације чији је приступ/модификација ограничена, чак и када се покреће као root, са sudo из љуске. Инстанца са повишеним привилегијама мора бити покренута да би се добило „sudo“ за администраторске привилегије и омогућио такав приступ. [6]
WSL 1 није у стању да покреће сав Linux софтвер, као што су 32-битне бинарне датотеке[10][11] или оне који захтевају специфичне Linux кернел сервисе који нису имплементирани у WSL-у. Због потпуног недостатка Linux-а у WSL-у 1, модули језгра, као што су драјвери уређаја, не могу се покренути. WSL 2, међутим, користи живе виртуелизоване инстанце Linux језгра. Могуће је покренути неке графичке (GUI) апликације (као што је Mozilla Firefox) инсталирањем X11 сервера унутар Windows (хост) окружења (као што су VcXsrv или Xming), [12] иако не без ограничења, као што је недостатак аудио подршке (мада се то може решити инсталирањем PulseAudio-а у Windows-у на сличан начин као X11) или хардверско убрзање (што резултира лошим графичким перформансама). Подршка за OpenCL и CUDA такође се тренутно не имплементира, иако је планирана за будућа издања. [13][14] Microsoft је изјавио да је WSL дизајниран за развој апликација, а не за десктоп рачунаре или производне сервере, препоручујући употребу виртуелних машина (Hyper-V), Kubernetes-а и Azure-а за те сврхе. [6]
Верзија 2 уводи промене у архитектури. Microsoft се определио за виртуелизацију кроз високо оптимизовани подскуп Hyper-V функција, како би покренуо кернел и дистрибуције (засноване на кернелу), обећавајући перформансе еквивалентне WSL 1. Ради компатибилности са претходним верзијама, програмери не морају ништа да мењају у својим објављеним дистрибуцијама. Подешавања WSL 2 могу се прилагодити помоћу глобалне конфигурације WSL-а, која се налази у INI датотеци под називом .wslconfig у фолдеру Кориснички профил. [15][16]
Инсталација дистрибуције се налази унутар ext4 -форматираног фајл система унутар виртуелног диска, а хост фајл систем је транспарентно доступан путем 9P протокола,[17] слично другим технологијама виртуелних машина попут QEMU-а. [18] За кориснике, Microsoft је обећао до 20 пута веће перформансе читања/писања од WSL 1. [4] Из Windows-а је обезбеђен IFS мрежни преусмеравач за приступ датотекама гостију Linux-а користећи UNC префикс путање \\wsl$ .
WSL 2 захтева Windows 11, [19] или Windows 10 верзију 1903 или новију, са Build 18362 или новијом, за x64 системе, и верзију 2004 или новију, са Build 19041 или новијом, за ARM64 системе. [2]
WSL 2 на Windows 11 задржава 95% перформанси изворног Ubuntu 20.04 LTS-а. [20]
WSL 1 и WSL 2 подржавају IPv6 конекције.[21][22] Подршка за IPv6 у WSL 2 захтева Windows 11. [23]
Пријем и критика
2017. Ричард Столман је изразио забринутост да би интеграција GNU функционалности у Windows ометала развој слободног софтвера, називајући напоре попут WSL-а „кораком уназад у кампањи за слободу“. [24]
WSL се најчешће описује као алат који се користи и користи за програмере,[25] а генерално се не препоручује крајњим корисницима. [26][27][28] Рецензенти су критиковали нека ограничења, напомињући да није исто што и имати Linux и да пати од неких ограничења перформанси, укључујући спор улазно-излазни саобраћај са диска. [25]
^Leeks, Stuart (2020). Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques: Maximise Productivity of Your Windows 10 Development Machine with Custom Workflows and Configurations. Birmingham: Packt Publishing. стр. 18—19. ISBN978-1-80056-352-0. OCLC1202451000.
^ абCraig Loewen (2019-05-06). „Announcing WSL 2”. Windows Command Line Tools For Developers.
^„OpenCL & CUDA GPU support”. Windows Developer feedback (Microsoft/UserVoice). 15. 9. 2016. Архивирано из оригинала 7. 7. 2018. г. Приступљено 10. 9. 2018.CS1 одржавање: Формат датума (веза)
^Loewen, Craig (26. 7. 2019). „What's new for WSL in Insiders Preview Build 18945”. Microsoft devblog. Архивирано из оригинала 26. 7. 2019. г. Приступљено 26. 7. 2019. „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.”CS1 одржавање: Формат датума (веза)
Barnes, Hayden (2021). Pro Windows Subsystem for Linux (WSL): Powerful Tools and Practices for Cross-Platform Development and Collaboration. Apress. ISBN978-1484268728.
Leeks, Stuart (2020). Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques: Maximise productivity of your Windows 10 development machine with custom workflows and configurations. Packt Publishing. ISBN978-1800562448.
Singh, Prateek (2020). Learn Windows Subsystem for Linux: A Practical Guide for Developers and IT Professionals. Apress. ISBN978-1484260371.