Microsoft๋Š” Windows์—์„œ Linux GUI ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์› ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

Microsoft๋Š” Windows์—์„œ Linux ์‹คํ–‰ ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋„๋ก ์„ค๊ณ„๋œ WSL2(Linux์šฉ Windows ํ•˜์œ„ ์‹œ์Šคํ…œ) ํ•˜์œ„ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์—์„œ ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค๋กœ Linux ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๊ณ  ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์‹œ์ž‘ ๋ฉ”๋‰ด์— ๋ฐ”๋กœ ๊ฐ€๊ธฐ ๋ฐฐ์น˜, ์†Œ๋ฆฌ ์žฌ์ƒ, ๋งˆ์ดํฌ ๋…น์Œ, OpenGL ํ•˜๋“œ์›จ์–ด ๊ฐ€์†, ์ž‘์—… ํ‘œ์‹œ์ค„์— ํ”„๋กœ๊ทธ๋žจ ์ •๋ณด ํ‘œ์‹œ, Alt-Tab์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ ๊ฐ„ ์ „ํ™˜, ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ ์ง€์›์„ ํฌํ•จํ•˜์—ฌ ๊ธฐ๋ณธ Windows ๋ฐ”ํƒ• ํ™”๋ฉด๊ณผ ์™„์ „ํžˆ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค. ํด๋ฆฝ๋ณด๋“œ๋ฅผ ํ†ตํ•ด Windows์™€ Linux ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด.

Microsoft๋Š” Windows์—์„œ Linux GUI ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์› ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ Windows ๋ฐ์Šคํฌํ†ฑ์— ๋Œ€ํ•œ Linux ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ถœ๋ ฅ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด Wayland ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๊ณ  Weston ์ฝ”๋“œ ๊ธฐ๋ฐ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” Microsoft์—์„œ ๊ฐœ๋ฐœํ•œ RAIL-Shell ๋ณตํ•ฉ ๊ด€๋ฆฌ์ž๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ถœ๋ ฅ์€ RDP-RAIL(RDP Remote Application Integrated Locally) ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋˜๋ฉฐ, ๋ณตํ•ฉ ๊ด€๋ฆฌ์ž๊ฐ€ ๋ฐ์Šคํฌํƒ‘ ์ž์ฒด๋ฅผ ๊ทธ๋ฆฌ์ง€ ์•Š๊ณ  ๊ฐœ๋ณ„ ํ‘œ๋ฉด(wl_surface)์„ ๊ธฐ๋ณธ Windows ๋ฐ”ํƒ• ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ RDP RAIL ์ฑ„๋„์ž…๋‹ˆ๋‹ค. X11 ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด XWayland๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Microsoft๋Š” Windows์—์„œ Linux GUI ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์› ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋””์˜ค ์ถœ๋ ฅ์€ RDP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ Windows์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” PulseAudio ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค(rdp-sink ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์˜ค๋””์˜ค ์ถœ๋ ฅ์— ์‚ฌ์šฉ๋˜๊ณ  rdp-source๋Š” ์ž…๋ ฅ์— ์‚ฌ์šฉ๋จ). Composite Server, XWayland ๋ฐ PulseAudio๋Š” ๊ทธ๋ž˜ํ”ฝ ๋ฐ ์˜ค๋””์˜ค ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์ถ”์ƒํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๊ณ  Microsoft ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ์—์„œ๋„ ์‚ฌ์šฉ๋˜๋Š” CBL-Mariner Linux ๋ฐฐํฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ฒ”์šฉ WSLGd ๋ฏธ๋‹ˆ ๋ฐฐํฌ๋กœ ํŒจํ‚ค์ง•๋ฉ๋‹ˆ๋‹ค. WSLGd๋Š” ๊ฐ€์ƒํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰๋˜๋ฉฐ virtio-fs๋Š” Linux ๊ฒŒ์ŠคํŠธ์™€ Windows ํ˜ธ์ŠคํŠธ ๊ฐ„์˜ ๊ณต์œ ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

FreeRDP๋Š” WSLGd Linux ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” RDP ์„œ๋ฒ„๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ mstsc๋Š” Windows ์ธก์˜ RDP ํด๋ผ์ด์–ธํŠธ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ทธ๋ž˜ํ”ฝ Linux ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ํ™•์ธํ•˜๊ณ  Windows ๋ฉ”๋‰ด์— ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด WSLDVCPlugin ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Ubuntu, Debian ๋ฐ CenOS์™€ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ Linux ๋ฐฐํฌํŒ์ด WSL2 ํ™˜๊ฒฝ์— ์„ค์น˜๋œ ๊ฒฝ์šฐ WSLGd์—์„œ ์‹คํ–‰๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ ์ง‘ํ•ฉ์€ Wayland, X11 ๋ฐ PulseAudio ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์†Œ์ผ“์„ ์ œ๊ณตํ•˜์—ฌ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. WSLGd ์ค€๋น„ ๋ฐ”์ธ๋”ฉ์€ MIT ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

WSLGd๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด Windows 10 Insider Preview ๋ฒ„์ „ 21362 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ WSLGd๋Š” Insider Preview ํ”„๋กœ๊ทธ๋žจ์— ์ฐธ์—ฌํ•  ํ•„์š” ์—†์ด ์ผ๋ฐ˜ Windows ๋ฒ„์ „์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. WSLGd๋Š” ์ผ๋ฐ˜์ ์ธ wsl --install ๋ช…๋ น(์˜ˆ: Ubuntu์˜ ๊ฒฝ์šฐ "wsl --install -d Ubuntu")์„ ์‹คํ–‰ํ•˜์—ฌ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด WSL2 ํ™˜๊ฒฝ์˜ ๊ฒฝ์šฐ WSLGd ์„ค์น˜๋Š” "wsl --update" ๋ช…๋ น์„ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค(Call Translation์ด ์•„๋‹Œ Linux ์ปค๋„์„ ์‚ฌ์šฉํ•˜๋Š” WSL2 ํ™˜๊ฒฝ๋งŒ ์ง€์›๋จ). ๊ทธ๋ž˜ํ”ฝ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ๋ฐฐํฌํŒ์˜ ์ผ๋ฐ˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

WSLGd๋Š” 2D ๊ทธ๋ž˜ํ”ฝ ๋ Œ๋”๋ง์„ ์œ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜๋งŒ ์ œ๊ณตํ•˜๋ฉฐ OpenGL์„ ๊ธฐ๋ฐ˜์œผ๋กœ 3D ๊ทธ๋ž˜ํ”ฝ์„ ๊ฐ€์†ํ™”ํ•˜๊ธฐ ์œ„ํ•ด WSL2์— ์„ค์น˜๋œ ๋ฐฐํฌํŒ์—์„œ๋Š” ๊ฐ€์ƒ GPU(vGPU)๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. WSL์šฉ vGPU ๋“œ๋ผ์ด๋ฒ„๋Š” AMD, Intel ๋ฐ NVIDIA ์นฉ์šฉ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”ฝ ๊ฐ€์†์€ DirectX 12๋ฅผ ํ†ตํ•ด OpenGL์„ ๊ตฌํ˜„ํ•œ ๋ ˆ์ด์–ด ์ œ๊ณต์„ ํ†ตํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋ ˆ์ด์–ด๋Š” Mesa 3์˜ ์ฃผ์š” ๊ตฌ์„ฑ์— ํฌํ•จ๋˜์–ด Collabora์™€ ๊ณต๋™์œผ๋กœ ๊ฐœ๋ฐœ๋œ d12d21.0 ๋“œ๋ผ์ด๋ฒ„๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์ƒ GPU์˜ ์ž‘๋™์€ Windows ์ปค๋„์˜ WDDM(Windows ๋””์Šคํ”Œ๋ ˆ์ด ๋“œ๋ผ์ด๋ฒ„ ๋ชจ๋ธ) D3DKMT๋ฅผ ๋ชจ๋ฐฉํ•˜๋Š” ์„œ๋น„์Šค์™€ ํ•จ๊ป˜ /dev/dxg ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Linux์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ฒ„๋Š” VM ๋ฒ„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌผ๋ฆฌ์  GPU์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Linux ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ Windows์™€ Linux ๊ฐ„์˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋ณธ Windows ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋™์ผํ•œ ์ˆ˜์ค€์˜ GPU ์•ก์„ธ์Šค๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. Intel GPU๊ฐ€ ์žฅ์ฐฉ๋œ Surface Book Gen3 ์žฅ์น˜์˜ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ์—์„œ Geeks32D GpuTest๋Š” ๊ธฐ๋ณธ Win3 ํ™˜๊ฒฝ์—์„œ 19 FPS, vGPU๊ฐ€ ์žˆ๋Š” Linux ํ™˜๊ฒฝ์—์„œ 18 FPS, Mesa์—์„œ ์†Œํ”„ํŠธ์›จ์–ด ๋ Œ๋”๋ง์ด 1 FPS์ธ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.



์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€