Windows Subsystem for Linux, или скраћено WSL, је слој компатибилности који омогућава нативно извршавање ELF бинарних датотека на Windows 10 и Windows Server 2019 системима.

ELF (Executable and Linkable Format) је стандардни формат за ивршне датотеке, објекти код, дељене библиотеке и датотеке с иватком. Више о њему овде.

Википедија

Постао је јавно доступан са Anniversary ажурирањем 2. августа 2016. године уз само доступну Ubuntu слику. У првим издањима и није био нарочито занимљив, због скромних могућности, али са појавом друге верзије привукао је већу пажњу на себе.

Како Мајкрософт наводи у званичној документацији WSL 2, који је изашао маја 2019, има за циљ повећање перформанси фајл система као и додавање пуне компатибилности при системским позивима. Нова архитектура мења начин на који окружење интерреагује са Windows системом, али чувајући првобитно искуство.

Битно је напоменути да новоуведена архитектура користи право Linux језгро, што је вероватно и највећа промена друге верзије. Код који је коришћен могуће је пронаћи на сајту The Linux Kernel Archives.

Колико је Мајкрософту стало до овог пројекта говори и да ће у марту ове године организвоти WSL конференцију.

WSLConf

У позадини WSL користи виртуализацију како би покренуо Linux језгро. Ипак, виртуална машина која се стара да све ради није налик традиционалним које су неретко споре при подизању система, изоловане, тешке те изискују корисниково време како би биле корисне.

Још од иницијалног издања WSL је веома добро интегрисан у Windows окружење, има невероватну boot up брзину, лак је на ресурсима и не захтева посебна подешавања.

Истакнуте новине мајског ажурирања су

Повећане IO перформансе

Као девелопери засигурно сте се сусрели са повремено дуготрајним радњама при управљању датотекама или, још чешће, пакетима. Неки од многобројних примера су клонирање репозиторијума помоћу Git-а, инсталација или ажурирање пакета уз npm или apt пакетни менаџер и сл. WSL 2 је овде направио велики искорак те уз помоћ нове архитектуре обезбедио до 20 пута веће брзине у односу на претходника при отпакивању архива те око 2-5 брже перформансе код git, npm и cmake команди.

Пуна компатибилност системских позива

Системски позиви су увек били круцијална ствар. Помоћу њих приступамо датотекама, креирамо процесе и обављамо друге системске послове. У првој верзији је био коришћен транслациони слој развијен од WSL тима, који је ипак каскао са правим Linux искуством. Друга верзија је значајно напредовала уводећи сопствено Linux језгро. Ово је у многоме унапредило доживљај отварајући врата читавом новом сету апликација попут Docker-а. Такође, ажурирања језгра могу одмах бити спремна без потребе да WSL тим имплементира промене на транслационом слоју, као што је случај у првој верзији.

Мајкрософт је овим изменама снажно ударио на dual boot кориснике омогућивши им да програмирају у познатом окружењу без напуштања Windows-а.

Преглед Ubuntu-а у Windows-у

Scott Hanselman – Developing on Windows with WSL2 (Subsystem for Linux), VS Code, Docker, and the Terminal

Поред WSL-а Мајкрософт је обезбедио и Windows Terminal, апликацију која обухвата PowerShell, cmd, Azure Cloud Shell и (WSL) bash. Терминал је још у preview фази, али га можете преузети из Windows продавнице или погледату његов код на GitHub-у.

За крај остављам вам снимак екрана где сам покренуо xfce4-terminal на Windows-у као најаву за један од наредних чланака.