Weston ๋ณตํ•ฉ ์„œ๋ฒ„ 12.0 ๋ฆด๋ฆฌ์Šค

12.0๊ฐœ์›”์˜ ๊ฐœ๋ฐœ ๋์— Weston XNUMX ๋ณตํ•ฉ ์„œ๋ฒ„์˜ ์•ˆ์ •์ ์ธ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๊ฒŒ์‹œ๋˜์–ด Enlightenment, GNOME, KDE ๋ฐ ๊ธฐํƒ€ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์—์„œ Wayland ํ”„๋กœํ† ์ฝœ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•˜๋Š” ๊ธฐ์ˆ ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Weston์˜ ๋ชฉํ‘œ๋Š” ์ž๋™์ฐจ ์ธํฌํ…Œ์ธ๋จผํŠธ ์‹œ์Šคํ…œ, ์Šค๋งˆํŠธํฐ, TV ๋ฐ ๊ธฐํƒ€ ์†Œ๋น„์ž ์žฅ์น˜์šฉ ํ”Œ๋žซํผ๊ณผ ๊ฐ™์€ ์ž„๋ฒ ๋””๋“œ ์†”๋ฃจ์…˜๊ณผ ๋ฐ์Šคํฌํ†ฑ ํ™˜๊ฒฝ์—์„œ Wayland๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ํ’ˆ์งˆ ์ฝ”๋“œ ๊ธฐ๋ฐ˜๊ณผ ์ž‘์—… ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” MIT ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

Weston์˜ ์ฃผ์š” ๋ฒ„์ „ ๋ฒˆํ˜ธ ๋ณ€๊ฒฝ์€ ํ˜ธํ™˜์„ฑ์„ ๊นจ๋Š” ABI ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด Weston ์ง€์ ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • backend-rpd์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” backed-vnc ๋ฐ์Šคํฌํ†ฑ์— ๋Œ€ํ•œ ์›๊ฒฉ ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฑ์—”๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. VNC ํ”„๋กœํ† ์ฝœ์€ aml ๋ฐneatvnc๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ๋งํฌ ์•”ํ˜ธํ™”(TLS)๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • PipeWire ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์„œ๋ฒ„ ์ž‘์—…์„ ์œ„ํ•œ ๋ฐฑ์—”๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • DRM(Direct Rendering Manager) ๋ฐฑ์—”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ:
    • ๋‹ค์ค‘ GPU ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ GPU๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด "-additional-devices list_of_output_devices" ์˜ต์…˜์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค.
    • ์ถœ๋ ฅ(์ฐข์–ด์ง) ์ค‘์— ์ฐข์–ด์ง์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ˆ˜์ง ๋ธ”๋žญํ‚น ํŽ„์Šค๋กœ ์ˆ˜์ง ๋™๊ธฐ(VSync)๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ฐข์–ด์ง ์ œ์–ด ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ VSync๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์•„ํ‹ฐํŒฉํŠธ๊ฐ€ ์ฐข์–ด์ง€๋Š” ๋Œ€์‹  ๋””์Šคํ”Œ๋ ˆ์ด ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • HDMI ์ฝ˜ํ…์ธ  ์œ ํ˜•(๊ทธ๋ž˜ํ”ฝ, ์‚ฌ์ง„, ๋™์˜์ƒ ๋ฐ ๊ฒŒ์ž„)์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ํ‰๋ฉด ํšŒ์ „ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์Šคํฌ๋ฆฐ์ƒท์„ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ง€์—ฐ๋œ ์ปค๋„ฅํ„ฐ(์“ฐ๊ธฐ ์ €์žฅ ์ปค๋„ฅํ„ฐ)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํ‰๋ฉด์˜ ํˆฌ๋ช…๋„ ์ˆ˜์ค€์„ ์ •์˜ํ•˜๋Š” ์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • libdisplay-info ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” EDID ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • Backend-wayland๋Š” xdg-shell ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ํฌ๊ธฐ ์กฐ์ • ์ž‘์—…์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • backend-rdp ์›๊ฒฉ ์•ก์„ธ์Šค ๋ฐฑ์—”๋“œ์—์„œ ๋‹ค์ค‘ ํ—ค๋“œ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์˜ˆ๋น„ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋””์Šคํ”Œ๋ ˆ์ด๊ฐ€ ์—†๋Š” ์‹œ์Šคํ…œ์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์„ค๊ณ„๋œ ๋ฐฑ์—”๋“œ ํ—ค๋“œ๋ฆฌ์Šค ๋ฐฑ์—”๋“œ๋Š” color-lcms ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ถœ๋ ฅ ๋ฐ์ฝ”๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ launcher-logind ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  logind๋„ ์ง€์›ํ•˜๋Š” launcher-libseat๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • libweston/desktop(libweston-desktop)์€ ์ถœ๋ ฅ ๋ฒ„ํผ๊ฐ€ ํด๋ผ์ด์–ธํŠธ์— ์—ฐ๊ฒฐ๋˜๊ธฐ ์ „ ๋‹จ๊ณ„์—์„œ ์ ์šฉ๋˜๋Š” ๋Œ€๊ธฐ ์ƒํƒœ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ „์ฒด ํ™”๋ฉด ๋ชจ๋“œ์—์„œ ์ฒ˜์Œ๋ถ€ํ„ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์Šคํฌ๋ฆฐ์ƒท์„ ์ฐ๊ณ  ์ด์ „ weston-screenshooter ํ”„๋กœํ† ์ฝœ์„ ๋ณด๋‹ค ๊ธฐ๋Šฅ์ ์œผ๋กœ ๋Œ€์ฒดํ•˜๋„๋ก ์„ค๊ณ„๋œ weston-output-capture ํ”„๋กœํ† ์ฝœ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํŠน์ • wl_surface ํ‘œ๋ฉด์— ๋Œ€ํ•œ xwayland_surface_v1 ๊ฐœ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” xwayland_shell_v1 ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • libweston ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” PAM์„ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ง€์›์„ ๊ตฌํ˜„ํ•˜๊ณ  wl_output API ๋ฒ„์ „ 4์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ„์†Œํ™”๋œ ๋ฐฑ์—”๋“œ, ์…ธ ๋ฐ ๋ Œ๋”๋Ÿฌ ์„ ํƒ ๋ชจ๋“œ๊ฐ€ ์ปดํฌ์ง€ํ„ฐ ํ”„๋กœ์„ธ์Šค์— ์ถ”๊ฐ€๋˜์–ด "--backend=headless", "--shell=foo" ๋ฐ "--renderer=gl|pixman" ๊ตฌ๋ฌธ์„ "--backend=headless-backend.so", "--shell=foo-shell.so" ๋ฐ "--renderer=gl-renderer.so" ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • simple-egl ํด๋ผ์ด์–ธํŠธ๋Š” ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ฐฐ์œจ ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” fractional-scale ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์œผ๋ฉฐ ์ˆ˜์ง ํŒจ๋„ ๋ Œ๋”๋ง ๋ชจ๋“œ๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ž๋™์ฐจ ์ธํฌํ…Œ์ธ๋จผํŠธ ์‹œ์Šคํ…œ์šฉ ivi-shell ์…ธ์€ ๋ฐ์Šคํฌํƒ‘ ์…ธ ๋ฐ ํ‚ค์˜ค์Šคํฌ ์…ธ ์…ธ์˜ ์ž…๋ ฅ ํ™œ์„ฑํ™”์™€ ์œ ์‚ฌํ•˜๊ฒŒ xdg-์…ธ ํ‘œ๋ฉด์— ๋Œ€ํ•œ ํ‚ค๋ณด๋“œ ํฌ์ปค์Šค ํ™œ์„ฑํ™”๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • libweston-desktop ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” libweston ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ํ†ตํ•ฉ๋˜์–ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ libweston์— ์—ฐ๊ฒฐํ•˜๋ฉด ์ด์ „์— libweston-desktop์—์„œ ์ œ๊ณตํ–ˆ๋˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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