ááá¯ááºáááá¯áá±á¬á·áẠáá®áá±á·áá»ááºážááá²á· Microsoft Build 2019 áá®áá¬áá¶ááŸá¬á á¡ááºááááºáá¯ááºáá¬ážáá²á· WSL2 subsystem (Windows á¡ááœáẠSubsystem Linux) executable files ááœá±ááᯠrun ááá¯á· áá®ááá¯ááºážáá¯ááºáá¬ážáá«ááẠLinux в Windowsáá±á¬á· áá¯áááá¡ááŒáááºáá¯ááºáá±ááŸá¯ááŸá¬ kernel á¡ááŒáá·áºá¡á á¯á¶áá±ážááá¯á·ááŒááºážááŒá áºááẠLinuxá áá áºáá±á«áºááá¯ááŸá¯áá»á¬ážááᯠáá»ááºáá»ááºážáá¬áá¬ááŒááºáá±ážááá·áº á¡ááœáŸá¬á¡á á¬áž Linux á áá áºáá±á«áºááá¯ááŸá¯áá»á¬ážáá²ááá¯á· Windows.
WSL2 á ááºážáááºááŒáá·áºáá»áááŸá¯ááᯠááœááºáááŸá±á¬ááºážááá¯ááºážááœáẠá ááºážáááºáááºáá±á¬ááºááŸá¯áá»á¬ážááœáẠáááºážááŸááºážáááºááŒá áºáááºá Emulator-based WSL1 support ááᯠáááºáááºááááºážááááºážáá¬ážááŸá¬ááŒá áºááŒá®áž á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠWSL2 ááŸáá·áº áá±ážáá»ááºážááŸááºá¡áá¯á¶ážááŒá¯ááá¯ááºáááºááŒá áºáááºá kernel ááᯠrun ááẠLinux ááá¯ááºážáá¶áá¬ážááẠWindows Azure ááœáẠá¡áá¯á¶ážááŒá¯ááŒá®ážáá¬áž áá±á«á·áá«ážáá±á¬ virtual machine áá áºáá¯ááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááºá
WSL2 áá²á· á¡á áááºá¡ááá¯ááºážáá áºáá¯á¡áá±áá²á· Windows 10 á á¶ kernel áá«áá²á· component áá áºáá¯ááᯠáá±ážáá±á¬ááºááœá¬ážááŸá¬áá« Linux á.ááá LTS áá¬áááœá² á.áá á¡ááœáẠááŒááºáááºááŸá¯áá»á¬áž áá¯ááºááŒááºáááºááŸáá·áºá¡áá»áŸ WSL2 á¡ááœáẠkernel ááᯠááá¹ááá¬ážááŸáá áºááá·áº áá»ááºáá»ááºáž á¡ááºááááºáá¯ááºááœá¬ážáá«áááºá Windows Microsoft áá²á· á ááºáááºáááŒáẠáá±á«ááºážá ááºááŸá¯ á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááŸá¬ á¡ááºááááºáá¯ááºááŒá®áž á ááºážáááºáá¬ážáá«áááºá WSL2 áᬠAzure á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááŸá¬ á¡áá¯á¶ážááŒá¯áá¬ážáá²á· kernel áá áºáá¯áááºážááᯠá¡áá¯á¶ážááŒá¯ááŸá¬ááŒá áºááá¯á· ááŒá¯ááŒááºááááºážááááºážááŸá¯ááᯠááá¯ážááŸááºážá á±áá«áááºá
WSL ááŸáá·áº kernel áá±á«ááºážá ááºááŸá¯á¡ááœáẠááŒááºáááºáá¬ážáá±á¬ ááŒá±á¬ááºážáá²ááŸá¯á¡á¬ážáá¯á¶ážááᯠá¡ááá²á· GPLv2 ááá¯ááºá ááºá¡á±á¬ááºááœáẠáá¯ááºáá±áááºááŒá áºááŒá®áž upstream áá¯ááºááœá¬ážáááºááŒá áºáááºá ááŒááºáááºáá¬ážáá±á¬ patch áá»á¬ážááœáẠkernel startup á¡áá»áááºááᯠáá»áŸá±á¬á·áá»áááºá memory áá¯á¶ážá áœá²ááŸá¯ááᯠáá»áŸá±á¬á·áá»áááºááŸáá·áº kernel ááœáẠá¡áááºážáá¯á¶ážááá¯á¡ááºáá±á¬ drivers áá»á¬ážááŸáá·áº subsystem áá»á¬ážááᯠááááºážááááºážáá¬ážááẠoptimization áá»á¬áž áá«áááºáááºá á¡ááá¯ááŒá¯áá¬ážáá±á¬ kernel ááẠWSL1 ááœáẠáá±ážáá¬ážáá±á¬ emulation layer á¡ááœáẠááœáá·áºáááºážááŒááºáá¬áá±á¬ á¡á á¬ážááá¯ážááŸá¯áá áºáá¯á¡ááŒá Ạáá¯ááºáá±á¬ááºááá¯ááºáááºááŒá áºáááºá source code áááŸáááá¯ááºááŸá¯ááẠá áááºá¡á¬ážáááºáááºáá°áá»á¬ážá¡á¬áž ááá¯á¡ááºáá«á áááºážááá¯á·áááá¯ááºááá¯áẠkernel build áá»á¬ážááᯠáááºáá®ážááá¯ááºá á±áááºááŒá áºáááºá Linux WSL2 á¡ááœááºá áááºážá¡ááœáẠááá¯á¡ááºáá±á¬ ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠááŒááºáááºáá±ážáá«áááºá
Azure ááá±á¬áá»ááºá០optimization áá»á¬ážááŒáá·áº standard kernel ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠá¡ááŒáá·áºá¡á ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºá
á±áááºááŒá
áºáááºá Linux á
áá
áºáá±á«áºááá¯ááŸá¯á¡ááá·áºááŸá¬ áá»á±á¬ááœá±á·á
áœá¬áááºáááºááá¯ááºá
áœááºážááᯠáá±áá»á¬á
á±áá« Windows Docker containers áá»á¬ážá¡ááŒáẠFUSE ááá¹ááá¬ážá¡áá±á«áº á¡ááŒá±áá¶ááá·áº file system áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá«áááºá ááá¯á·á¡ááŒááºá WSL2 ááẠááááºá WSL1 ááœáẠbottleneck áá
áºáá¯ááŒá
áºáá²á·áá±á¬ I/O á
áœááºážáá±á¬ááºáááºááŸáá·áº file system operations áá»á¬ážááᯠáááááá¬áᬠááá¯ážáááºáá±á¬ááºážááœááºá
á±áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá compressed archive áá
áºáá¯ááᯠunpack áá¯ááºáá±á¬á¡áá«á WSL2 ááẠWSL1 ááẠ20 á ááá¯ááŒááºááŒá®áž operations áá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±á¬á¡áá«á
"git clone", "npm install", "apt update" ááŸáá·áº "apt upgrade" ááá¯á·ááᯠ2-5 ááŒáááºááŒá¯áá¯ááºáá«á
á¡ááá ááá¯á·áá±á¬ááºááŸá¯ ááŒá¯áá¯ááºáá²á·áá±á¬áºáááºáž Linuxá¡áááºáááá¯áá² WSL 2 ááŸá¬ user-space component ááœá±ááᯠá¡ááá·áºááŒááºáá¬ážááŸá¬ ááá¯ááºáá«áá°ážá áá® component ááœá±ááᯠáá®ážááŒá¬ážá á® install áá¯ááºáá¬ážááŒá®áž distribution á¡áá»áá¯ážáá»áá¯ážáá²á· build ááœá±áá±á«áºááŸá¬ á¡ááŒá±áá¶áá¬ážáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áº WSL ááŸá¬ install áá¯ááºááá¯á·á¡ááœáẠMicrosoft Store catalog ááᯠ... á ááºážáá±ážááœá²áá»á¬áž , , О á¡ááá¯ááŒá¯áá¬ážáá±á¬ááŸáá·áº ááááœá±á·áááºáá¶ááẠWindows á¡á°ááá¯áẠLinux áááºážá¡ááœáẠboot áá¯ááºáááºážá ááºááᯠááŒá¯ááŒááºáá±ážááá·áº distribution ááœáẠinitialization script áááºáá áºáá¯ááᯠinstall áá¯ááºááẠááá¯á¡ááºáá«áááºá Canonical ááẠáá¯ááºáááºážá¡ááœáẠá¡ááŒáá·áºá¡á áá¶á·ááá¯ážáá°áá®ááẠáááºááœááºáá»ááºááŸáá·áº áááºáááºá Ubuntu WSL2 áá²á·á¡áá±á«áºááŸá¬á
ááá¯á·á¡ááŒááºáááºážááá¯ááŸááºáá¬ážááá¯ááºáááºá Microsoft terminal emulator á¡á¬ážááŒáá·áº á áááºážáá¯ááºááᯠMIT ááá¯ááºá ááºá¡á±á¬ááºááœáẠááŒáá·áºáá±áá¬ážáááºá terminal ááŸáá·áºá¡áá°á áá°áááºáž conhost.exe command-line interface á áá¯ááºááᯠá¡áá¯á¶ážááŒá¯ááẠWindows ááŸáá·áº á¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºáž Windows Console APIá terminal ááẠtabbed interface ááŸáá·áº split windows áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááŒá®áž color output á¡ááœáẠUnicode ááŸáá·áº escape sequences áá»á¬ážááᯠá¡ááŒáá·áºá¡á áá¶á·ááá¯ážáá±ážáááºá theme ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááŸáá·áº add-on áá»á¬ážááᯠááœáá·áºááŒá¯áááºá virtual consoles (PTYs) ááᯠáá¶á·ááá¯ážáá±ážáááºá ááŸáá·áº á á¬áá¬áž rendering ááá¯ááá¯ááŒááºáááºá á±ááẠDirectWrite/DirectX ááá¯á¡áá¯á¶ážááŒá¯áááºá terminal ááẠCommand Prompt (cmd), PowerShell ááŸáá·áº WSL shell áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáááºá terminal á¡áá áºááᯠááá¯ááœá±áá¬áá®ááœáẠá¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡ááœáẠáááŸáááá¯ááºáááºááŒá áºáááºá Windows Microsoft Store áááºááá±á¬ááºááŸáá áºááá·áºá
source: opennet.ru
