Wine 5.0์˜ ์•ˆ์ •์ ์ธ ์ถœ์‹œ

28๋…„๊ฐ„์˜ ๊ฐœ๋ฐœ๊ณผ XNUMX๊ฐœ์˜ ์‹คํ—˜ ๋ฒ„์ „์„ ๊ฑฐ์ณ ์ œ์‹œ๋œ Win32 API ๊ฐœ๋ฐฉํ˜• ๊ตฌํ˜„์˜ ์•ˆ์ •์ ์ธ ๋ฆด๋ฆฌ์Šค - ์™€์ธ 5.0, ์—ฌ๊ธฐ์—๋Š” 7400๊ฐœ ์ด์ƒ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์˜ ์ฃผ์š” ์„ฑ๊ณผ์—๋Š” PE ํ˜•์‹์˜ ๋‚ด์žฅ Wine ๋ชจ๋“ˆ ์ œ๊ณต, ๋‹ค์ค‘ ๋ชจ๋‹ˆํ„ฐ ๊ตฌ์„ฑ ์ง€์›, XAudio2 ์˜ค๋””์˜ค API์˜ ์ƒˆ๋กœ์šด ๊ตฌํ˜„ ๋ฐ Vulkan 1.1 ๊ทธ๋ž˜ํ”ฝ API ์ง€์›์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์™€์ธ์— ํ™•์ธ Windows์šฉ 4869๊ฐœ(4737๋…„ ์ „ 4136)๊ฐœ ํ”„๋กœ๊ทธ๋žจ์˜ ์ „์ฒด ์ž‘๋™, ๋˜ ๋‹ค๋ฅธ 4045๊ฐœ(3635๋…„ ์ „ XNUMX๊ฐœ) ํ”„๋กœ๊ทธ๋žจ์€ ์ถ”๊ฐ€ ์„ค์ • ๋ฐ ์™ธ๋ถ€ DLL๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. XNUMX๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์—๋Š” ๊ธฐ๋ณธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ธฐ๋Šฅ ์‚ฌ์šฉ์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๋Š” ์‚ฌ์†Œํ•œ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ด์‡  ํ˜์‹  ์™€์ธ 5.0:

  • PE ํ˜•์‹์˜ ๋ชจ๋“ˆ
    • MinGW ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ œ ๋Œ€๋ถ€๋ถ„์˜ Wine ๋ชจ๋“ˆ์ด ELF ๋Œ€์‹  PE(Windows์—์„œ ์‚ฌ์šฉ๋˜๋Š” Portable Executable) ์‹คํ–‰ ํŒŒ์ผ ํ˜•์‹์œผ๋กœ ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค. PE๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋””์Šคํฌ์™€ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ์‹œ์Šคํ…œ ๋ชจ๋“ˆ์˜ ID๋ฅผ ํ™•์ธํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ณต์‚ฌ ๋ฐฉ์ง€ ์ฒด๊ณ„ ์ง€์›๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
    • PE ์‹คํ–‰ ํŒŒ์ผ์€ ์ด์ œ ๋”๋ฏธ DLL ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ~/.wine($WINEPREFIX) ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณต์‚ฌ๋˜๋ฏ€๋กœ ์ถ”๊ฐ€ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์†Œ๋น„ํ•˜๋Š” ๋Œ€์‹  ์‹ค์ œ Windows ์„ค์น˜์™€ ๋” ์œ ์‚ฌํ•ด์ง‘๋‹ˆ๋‹ค.
    • PE ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋œ ๋ชจ๋“ˆ์€ ํ‘œ์ค€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. wchar ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•œ C ํ•จ์ˆ˜ ๋ฐ ์ƒ์ˆ˜(์˜ˆ: L"abc")
    • Wine C ๋Ÿฐํƒ€์ž„์—๋Š” DLL์„ ๋นŒ๋“œํ•  ๋•Œ MinGW ๋Ÿฐํƒ€์ž„ ๋Œ€์‹  ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” MinGW์— ๋‚ด์žฅ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ์™€์˜ ์—ฐ๊ฒฐ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ž˜ํ”ฝ ํ•˜์œ„ ์‹œ์Šคํ…œ
    • ๋™์ ์œผ๋กœ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์—ฌ ๋‹ค์ค‘ ๋ชจ๋‹ˆํ„ฐ ๋ฐ ๊ทธ๋ž˜ํ”ฝ ์–ด๋Œ‘ํ„ฐ ์ž‘์—…์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Vulkan ๊ทธ๋ž˜ํ”ฝ API์šฉ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ Vulkan 1.1.126 ์‚ฌ์–‘์„ ์ค€์ˆ˜ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • WindowsCodecs ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ธ๋ฑ์Šค ํŒ”๋ ˆํŠธ๊ฐ€ ์žˆ๋Š” ํ˜•์‹์„ ํฌํ•จํ•˜์—ฌ ์ถ”๊ฐ€ ๋ž˜์Šคํ„ฐ ํ˜•์‹์„ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Direct3D
    • ์ „์ฒด ํ™”๋ฉด Direct3D ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ ํ™”๋ฉด ๋ณดํ˜ธ๊ธฐ ํ˜ธ์ถœ์ด ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.
    • DXGI(DirectX ๊ทธ๋ž˜ํ”ฝ ์ธํ”„๋ผ)์—๋Š” ์ฐฝ์ด ์ตœ์†Œํ™”๋  ๋•Œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์•Œ๋ฆฌ๋Š” ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์ฐฝ์„ ์ตœ์†Œํ™”ํ•  ๋•Œ ๋ฆฌ์†Œ์Šค ์ง‘์•ฝ์ ์ธ ์ž‘์—…์˜ ์„ฑ๋Šฅ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • DXGI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ ์ด์ œ Alt+Enter ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒด ํ™”๋ฉด ๋ชจ๋“œ์™€ ์ฐฝ ๋ชจ๋“œ ๊ฐ„์— ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Direct3D 12 ๊ตฌํ˜„ ๊ธฐ๋Šฅ์ด ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด์ œ ์ „์ฒด ํ™”๋ฉด๊ณผ ์ฐฝ ๋ชจ๋“œ ๊ฐ„ ์ „ํ™˜, ํ™”๋ฉด ๋ชจ๋“œ ๋ณ€๊ฒฝ, ์ถœ๋ ฅ ํฌ๊ธฐ ์กฐ์ • ๋ฐ ๋ Œ๋”๋ง ๋ฒ„ํผ ๊ต์ฒด ๊ฐ„๊ฒฉ(์Šค์™‘ ๊ฐ„๊ฒฉ) ๊ด€๋ฆฌ๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
    • ํˆฌ๋ช…๋„ ๋ฐ ๊นŠ์ด ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ์ž…๋ ฅ ๊ฐ’ ์‚ฌ์šฉ, ๋ฐ˜์˜๋œ ํ…์Šค์ฒ˜ ๋ฐ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•œ ๋ Œ๋”๋ง, ์ž˜๋ชป๋œ DirectDraw ๊ฐœ์ฒด ์‚ฌ์šฉ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฒฝ๊ณ„์„  ์ƒํ™ฉ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์œ„, ์ž˜๋ชป๋œ ์ฐฝ์— ๋Œ€ํ•œ Direct3 ์žฅ์น˜ ์ƒ์„ฑ, ์ตœ์†Œ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์ด ์ตœ๋Œ€ ๊ฐ’๊ณผ ๊ฐ™์€ ํ‘œ์‹œ ์˜์—ญ ์‚ฌ์šฉ ๋“ฑ
    • Direct3D 8 ๋ฐ 9๋Š” ๋ณด๋‹ค ์ •ํ™•ํ•œ ์ถ”์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค."๋”๋Ÿฌ์šดยป ๋กœ๋“œ๋œ ํ…์Šค์ฒ˜ ์˜์—ญ;
    • S3TC ๋ฐฉ์‹์œผ๋กœ ์••์ถ•๋œ 3D ํ…์Šค์ฒ˜๋ฅผ ๋กœ๋“œํ•  ๋•Œ ํ•„์š”ํ•œ ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (์ „์ฒด๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋Œ€์‹  ํ…์Šค์ฒ˜๋ฅผ ์ฒญํฌ๋กœ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.)
    • ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ ID3D11๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ค‘์š” ์„น์…˜์„ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.
    • ์ด์ „ DirectDraw ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์กฐ๋ช… ๊ณ„์‚ฐ๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ๊ฐœ์„  ๋ฐ ์ˆ˜์ •์ด ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.
    • API์—์„œ ์…ฐ์ด๋”์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ํ˜ธ์ถœ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์…ฐ์ด๋”๋ฐ˜์‚ฌ;
    • wined3d๋Š” ์ด์ œ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค ๋ธ”๋ฆฌํ„ฐ ์••์ถ•๋œ ๋ฆฌ์†Œ์Šค ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ CPU ๊ธฐ๋ฐ˜
    • Direct3D์—์„œ ์ธ์‹๋˜๋Š” ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ƒˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ‚ค HKEY_CURRENT_USER\Software\Wine\Direct3D ์ถ”๊ฐ€: "shader_backend"(์…ฐ์ด๋” ์ž‘์—…์„ ์œ„ํ•œ ๋ฐฑ์—”๋“œ: GLSL์˜ ๊ฒฝ์šฐ "glsl", ARB ์ •์ /์กฐ๊ฐ์˜ ๊ฒฝ์šฐ "arb", ์…ฐ์ด๋” ์ง€์› ๋น„ํ™œ์„ฑํ™”์˜ ๊ฒฝ์šฐ "none"), "strict_shader_math"( 0x1 - ํ™œ์„ฑํ™”, 0x0 - Direct3D ์…ฐ์ด๋” ๋ณ€ํ™˜ ๋น„ํ™œ์„ฑํ™”). "UseGLSL" ํ‚ค๊ฐ€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค("shader_backend"๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ).
  • D3DX
    • 3D ํ…์Šค์ฒ˜ ์••์ถ• ๋ฉ”์ปค๋‹ˆ์ฆ˜ S3TC(S3 Texture Compression)์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํ…์Šค์ฒ˜ ์ฑ„์šฐ๊ธฐ ๋ฐ ๋งคํ•‘ํ•  ์ˆ˜ ์—†๋Š” ํ‘œ๋ฉด๊ณผ ๊ฐ™์€ ์ž‘์—…์˜ ์˜ฌ๋ฐ”๋ฅธ ๊ตฌํ˜„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ƒ์„ฑ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ๊ฐœ์„  ๋ฐ ์ˆ˜์ •์ด ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ ํšจ๊ณผ;
  • ์ปค๋„(Windows ์ปค๋„ ์ธํ„ฐํŽ˜์ด์Šค)
    • Kernel32์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์ด ๋‹ค์Œ์œผ๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
      KernelBase, Windows ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋”ฐ๋ผ

    • ๋กœ๋“œ์— ์‚ฌ์šฉ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์— 32๋น„ํŠธ ๋ฐ 64๋น„ํŠธ DLL์„ ํ˜ผํ•ฉํ•˜๋Š” ๊ธฐ๋Šฅ. ํ˜„์žฌ ๋น„ํŠธ ๊นŠ์ด์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ฌด์‹œ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค(32/64), ๊ฒฝ๋กœ๋ฅผ ๋” ๋”ฐ๋ผ๊ฐ€๋Š” ๊ฒฝ์šฐ ํ˜„์žฌ ๋น„ํŠธ ์‹ฌ๋„์— ๋งž๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์˜ ๊ฒฝ์šฐ ์ปค๋„ ๊ฐœ์ฒด ์—๋ฎฌ๋ ˆ์ด์…˜์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์Šคํ•€ ์ž ๊ธˆ, ๋น ๋ฅธ ๋ฎคํ…์Šค ๋ฐ ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐ๋œ ๋ณ€์ˆ˜์™€ ๊ฐ™์ด ์ปค๋„ ์ˆ˜์ค€์—์„œ ์ž‘๋™ํ•˜๋Š” ๋™๊ธฐํ™” ๊ฐœ์ฒด๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ฐฐํ„ฐ๋ฆฌ ์ƒํƒœ์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ์ •๋ณด๊ฐ€ ์ „๋‹ฌ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ๋ฐ์Šคํฌํƒ‘ ํ†ตํ•ฉ
    • ์ด์ œ ์ตœ์†Œํ™”๋œ ์ฐฝ์€ Windows 3.1 ์Šคํƒ€์ผ ์•„์ด์ฝ˜์ด ์•„๋‹Œ ์ œ๋ชฉ ํ‘œ์‹œ์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
    • ์ƒˆ๋กœ์šด ๋ฒ„ํŠผ ์Šคํƒ€์ผ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”Œ๋ฆฟ๋ฒ„ํŠผ (์ž‘์—… ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์ด ์žˆ๋Š” ๋ฒ„ํŠผ) ๋ฐ ๋ช…๋ น ๋งํฌ (๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ด๋™ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€ํ™” ์ƒ์ž์˜ ๋งํฌ)
    • Unix ์‹œ์Šคํ…œ์˜ ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” '๋‹ค์šด๋กœ๋“œ' ๋ฐ 'ํ…œํ”Œ๋ฆฟ' ํด๋”์— ๋Œ€ํ•œ ๊ธฐํ˜ธ ๋งํฌ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ž…๋ ฅ ์žฅ์น˜
    • ์‹œ์ž‘ ์‹œ ํ•„์š”ํ•œ ํ”Œ๋Ÿฌ๊ทธ ์•ค ํ”Œ๋ ˆ์ด ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์„ค์น˜๋˜๊ณ  ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.
    • ๋ฏธ๋‹ˆ ์กฐ์ด์Šคํ‹ฑ(๋ชจ์ž ์Šค์œ„์น˜), ์Šคํ‹ฐ์–ด๋ง ํœ , ๊ฐ€์Šค ๋ฐ ๋ธŒ๋ ˆ์ดํฌ ํŽ˜๋‹ฌ์„ ํฌํ•จํ•œ ๊ฒŒ์ž„ ์ปจํŠธ๋กค๋Ÿฌ์— ๋Œ€ํ•œ ์ง€์›์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋ฒ„์ „ 2.2 ์ด์ „์˜ Linux ์ปค๋„์—์„œ ์‚ฌ์šฉ๋œ ์ด์ „ Linux ์กฐ์ด์Šคํ‹ฑ API์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • . NET
    • Mono ์—”์ง„์€ ๋ฆด๋ฆฌ์Šค 4.9.4๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์œผ๋ฉฐ ์ด์ œ WPF(Windows Presentation Foundation) ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ผ๋ถ€๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
    • ํ•˜๋‚˜์˜ ๊ณตํ†ต ๋””๋ ‰ํ† ๋ฆฌ์— Mono ๋ฐ Gecko๊ฐ€ ํฌํ•จ๋œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์„ค์น˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํŒŒ์ผ์„ ์ƒˆ ์ ‘๋‘์‚ฌ์— ๋ณต์‚ฌํ•˜๋Š” ๋Œ€์‹  /usr/share/wine ๊ณ„์ธต ๊ตฌ์กฐ์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํ‚น ๊ธฐ๋Šฅ
    • MSHTML ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์‚ฌ์šฉ๋˜๋Š” Wine Gecko ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์ด 2.47.1 ๋ฆด๋ฆฌ์Šค๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด HTML API์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • MSHTML์€ ์ด์ œ SVG ์š”์†Œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ๋งŽ์€ ์ƒˆ๋กœ์šด VBScript ํ•จ์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ์˜ค๋ฅ˜ ๋ฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ, ์‹œ, ์ผ, ์›”, ๋ฌธ์ž์—ด, LBound, RegExp.Replace, ะ ScriptTypeInfo_* ๋ฐ ScriptTypeComp_Bind* ํ•จ์ˆ˜ ๋“ฑ).
    • VBScript ๋ฐ JScript์—์„œ ์ฝ”๋“œ ์ƒํƒœ ๋ณด์กด ์ œ๊ณต(์Šคํฌ๋ฆฝํŠธ ์ง€์†์„ฑ)
    • HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๋ฐ›๋Š” ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ HTTP ์„œ๋น„์Šค(WinHTTP) ๋ฐ ๊ด€๋ จ API(HTTPAPI)์˜ ์ดˆ๊ธฐ ๊ตฌํ˜„์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • DHCP๋ฅผ ํ†ตํ•ด HTTP ํ”„๋ก์‹œ ์„ค์ •์„ ์–ป๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • Microsoft Passport ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์ธ์ฆ ์š”์ฒญ์„ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์•”ํ˜ธํ™”
    • GnuTLS๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํƒ€์› ๊ณก์„  ์•”ํ˜ธํ™” ํ‚ค(ECC)์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • PFX ํ˜•์‹์˜ ํŒŒ์ผ์—์„œ ํ‚ค์™€ ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • PBKDF2 ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ‚ค ์ƒ์„ฑ ์ฒด๊ณ„์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ…์ŠคํŠธ ๋ฐ ๊ธ€๊ผด
    • DirectWrite API ๊ตฌํ˜„์—๋Š” ๋‹ค์Œ๊ณผ ๊ด€๋ จ๋œ OpenType ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธ€๋ฆฌํ”„ ์œ„์น˜ ์ง€์ •, ์ปค๋‹์„ ํฌํ•จํ•˜์—ฌ ๋ผํ‹ด ์Šคํƒ€์ผ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
    • ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์ •ํ™•์„ฑ์„ ํ™•์ธํ•˜์—ฌ ๊ธ€๊ผด ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๋ณด์•ˆ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • DirectWrite ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ตœ์‹  SDK์— ๋งž์ถฐ์กŒ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šด๋“œ ๋ฐ ๋น„๋””์˜ค
    • ์‚ฌ์šด๋“œ API์˜ ์ƒˆ๋กœ์šด ๊ตฌํ˜„์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. XAudio2, ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ• FA์˜ค๋””์˜ค. Wine์—์„œ FAudio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒŒ์ž„์—์„œ ๋” ๋†’์€ ์Œ์งˆ์„ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ณผ๋ฅจ ๋ฏน์‹ฑ, ๊ณ ๊ธ‰ ์‚ฌ์šด๋“œ ํšจ๊ณผ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋‚ด์žฅ ๋ฐ ์‚ฌ์šฉ์ž ์ง€์ • ๋น„๋™๊ธฐ ๋Œ€๊ธฐ์—ด, ์†Œ์Šค ๋ฆฌ๋” API, ๋ฏธ๋””์–ด ์„ธ์…˜ ๋“ฑ์— ๋Œ€ํ•œ ์ง€์›์„ ํฌํ•จํ•˜์—ฌ Media Foundation ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌํ˜„์— ์ˆ˜๋งŽ์€ ์ƒˆ๋กœ์šด ํ˜ธ์ถœ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋น„๋””์˜ค ์บก์ฒ˜ ํ•„ํ„ฐ๊ฐ€ v4l2 API ๋Œ€์‹  v4l1 API๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜๋˜์–ด ์ง€์›๋˜๋Š” ์นด๋ฉ”๋ผ ๋ฒ”์œ„๊ฐ€ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋‚ด์žฅ๋œ AVI, MPEG-I ๋ฐ WAVE ๋””์ฝ”๋”๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฉฐ ๋Œ€์‹  ์ด์ œ GStreamer ๋˜๋Š” QuickTime ์‹œ์Šคํ…œ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • VMR7 ๊ตฌ์„ฑ API์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์‚ฌ์šด๋“œ ๋“œ๋ผ์ด๋ฒ„์— ๋Œ€ํ•œ ๊ฐœ๋ณ„ ์ฑ„๋„์˜ ๋ณผ๋ฅจ ์กฐ์ •์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ตญ์ œํ™”
    • ์œ ๋‹ˆ์ฝ”๋“œ ํ…Œ์ด๋ธ”์ด ๋ฒ„์ „ 12.1.0์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์œ ๋‹ˆ์ฝ”๋“œ ์ •๊ทœํ™”์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํ˜„์žฌ ๋กœ์บ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง€๋ฆฌ์  ์ง€์—ญ(HKEY_CURRENT_USER\Control Panel\International\Geo) ์ž๋™ ์„ค์น˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • RPC/COM
    • typelib์— ๋ณต์žกํ•œ ๊ตฌ์กฐ ๋ฐ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Windows ์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ดˆ๊ธฐ ๊ตฌํ˜„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ADO(Microsoft ActiveX Data Objects) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ดˆ๊ธฐ ๊ตฌํ˜„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์„ค์น˜์ž
    • MSI ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ํŒจ์น˜(ํŒจ์น˜ ํŒŒ์ผ) ์ œ๊ณต ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • WUSA(Windows Update Standalone Installer) ์œ ํ‹ธ๋ฆฌํ‹ฐ์—๋Š” ์ด์ œ .MSU ํ˜•์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ARM ํ”Œ๋žซํผ
    • ARM64 ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ์Šคํƒ ํ•ด์ œ์— ๋Œ€ํ•œ ์ง€์›์ด ntdll์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€ libunwind ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ARM64 ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ๊ฐ์ฒด ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด ์›ํ™œํ•œ ํ”„๋ก์‹œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ ๋„๊ตฌ / Winelib
    • Visual Studio์˜ ๋””๋ฒ„๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Wine์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์›๊ฒฉ์œผ๋กœ ๋””๋ฒ„๊ทธํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • DBGENG(๋””๋ฒ„๊ทธ ์—”์ง„) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ถ€๋ถ„์ ์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Windows์šฉ์œผ๋กœ ์ปดํŒŒ์ผ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ๋” ์ด์ƒ libwine์— ์˜์กดํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ถ”๊ฐ€ ์ข…์†์„ฑ ์—†์ด Windows์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํ—ค๋” ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌ์†Œ์Šค ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ IDL ์ปดํŒŒ์ผ๋Ÿฌ์— '--sysroot' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • winegcc์— 'โ€”target', 'โ€”wine-objdir', 'โ€”wine-objdir' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
      ํฌ๋กœ์Šค ์ปดํŒŒ์ผ์„ ์œ„ํ•œ ํ™˜๊ฒฝ ์„ค์ •์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” 'โ€”winebuild' ๋ฐ '-fuse-ld'

  • ์ž„๋ฒ ๋””๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
    • ์ฝ˜์†” ์ธ์ฝ”๋”ฉ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ CHCP ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • MSI ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ MSIDB ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ ์ตœ์ ํ™”
    • ๊ณ ์„ฑ๋Šฅ ์‹œ์Šคํ…œ ํƒ€์ด๋จธ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ํƒ€์ด๋ฐ ๊ธฐ๋Šฅ์ด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋˜์–ด ๋งŽ์€ ๊ฒŒ์ž„์˜ ๋ Œ๋”๋ง ๋ฃจํ”„์—์„œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๊ฐ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • FS์—์„œ Ext4๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์ •๊ถŒ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค.
    • LBS_NODATA ๋ชจ๋“œ์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ชฉ๋ก ํ‘œ์‹œ ๋Œ€ํ™” ์ƒ์ž์—์„œ ๋งŽ์€ ์ˆ˜์˜ ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์„ฑ๋Šฅ์ด ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Futex๋กœ ๋ณ€ํ™˜๋œ Linux์šฉ SRW ์ž ๊ธˆ(์Šฌ๋ฆผ ๋ฆฌ๋”/๋ผ์ดํ„ฐ)์˜ ๋” ๋น ๋ฅธ ๊ตฌํ˜„์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์™ธ๋ถ€ ์ข…์†์„ฑ
    • PE ํ˜•์‹์œผ๋กœ ๋ชจ๋“ˆ์„ ์–ด์…ˆ๋ธ”ํ•˜๋ ค๋ฉด MinGW-w64 ํฌ๋กœ์Šค ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • XAudio2๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด FAudio ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    • BSD ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๋ ค๋ฉด
      Inotify ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    • ARM64 ํ”Œ๋žซํผ์—์„œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด Unwind ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    • ์ด์ œ Video4Linux1 ๋Œ€์‹  Video4Linux2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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