30๋ ๊ฐ์ ๊ฐ๋ฐ๊ณผ 32๊ฐ์ ์คํ ๋ฒ์ ๋์ Win7.0 API์ ๊ฐ๋ฐฉํ ๊ตฌํ์ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค์ธ Wine 9100์ด ๋ฐํ๋์์ต๋๋ค. ์ด ๋ฆด๋ฆฌ์ค์๋ 64๊ฐ ์ด์์ ๋ณ๊ฒฝ ์ฌํญ์ด ํตํฉ๋์์ต๋๋ค. ์ ๋ฒ์ ์ ์ฃผ์ ์ฑ๊ณผ์๋ ๋๋ถ๋ถ์ Wine ๋ชจ๋์ PE ํ์์ผ๋ก ๋ณํ, ํ ๋ง ์ง์, HID ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ถ ์กฐ์ด์คํฑ ๋ฐ ์ ๋ ฅ ์ฅ์น์ฉ ์คํ ํ์ฅ, 32๋นํธ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํ WoW64 ์ํคํ ์ฒ ๊ตฌํ์ด ํฌํจ๋ฉ๋๋ค. XNUMX๋นํธ ํ๊ฒฝ.
Wine์ Windows์ฉ 5156(5049๋ ์ 4312) ํ๋ก๊ทธ๋จ์ ์ ์ฒด ์๋์ ํ์ธํ์ผ๋ฉฐ, ๋ ๋ค๋ฅธ 4227(3813๋ ์ 3703) ํ๋ก๊ทธ๋จ์ ์ถ๊ฐ ์ค์ ๋ฐ ์ธ๋ถ DLL๊ณผ ์๋ฒฝํ๊ฒ ์๋ํฉ๋๋ค. XNUMX๊ฐ(XNUMX๋ ์ ) ํ๋ก๊ทธ๋จ์๋ ํด๋น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฃผ์ ๊ธฐ๋ฅ ์ฌ์ฉ์ ์ง์ฅ์ ์ฃผ์ง ์๋ ์ฌ์ํ ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
Wine 7.0์ ์ฃผ์ ํ์ :
- PE ํ์์ ๋ชจ๋
- ๊ฑฐ์ ๋ชจ๋ DLL์ด ELF ๋์ PE(Portable Executable, Windows์์ ์ฌ์ฉ๋จ) ์คํ ํ์ผ ํ์์ ์ฌ์ฉํ๋๋ก ๋ณํ๋์์ต๋๋ค. PE๋ฅผ ์ฌ์ฉํ๋ฉด ๋์คํฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ์์คํ ๋ชจ๋์ ID๋ฅผ ํ์ธํ๋ ๋ค์ํ ๋ณต์ฌ ๋ฐฉ์ง ์ฒด๊ณ ์ง์๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
- ํ์ค NT ์ปค๋ ์์คํ ํธ์ถ์ ์ฌ์ฉํ์ฌ PE ๋ชจ๋๊ณผ Unix ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ํธ ์์ฉํ๋ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด Windows ๋๋ฒ๊ฑฐ์์ Unix ์ฝ๋์ ๋ํ ์ก์ธ์ค๋ฅผ ์จ๊ธฐ๊ณ ์ค๋ ๋ ๋ฑ๋ก์ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
- ๋ด์ฅ DLL์ ์ด์ ์ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ์ง ์คํ ์ธ์ง์ ๊ด๊ณ์์ด ๋์คํฌ์ ํด๋น PE ํ์ผ์ด ์๋ ๊ฒฝ์ฐ์๋ง ๋ก๋๋ฉ๋๋ค. ์ด ๋ณ๊ฒฝ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ํญ์ PE ํ์ผ์ ๋ํ ์ฌ๋ฐ๋ฅธ ๋ฐ์ธ๋ฉ์ ๋ณผ ์ ์์ต๋๋ค. ์ด ๋์์ ๋นํ์ฑํํ๋ ค๋ฉด WINEBOOTSTRAPMODE ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์์ฐ64
- WoW64 ์ํคํ ์ฒ(64๋นํธ Windows-on-Windows)๊ฐ ๊ตฌํ๋์ด 32๋นํธ Unix ํ๋ก์ธ์ค์์ 64๋นํธ Windows ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์์ต๋๋ค. ์ง์์ 32๋นํธ NT ์์คํ ํธ์ถ์ NTDLL์ ๋ํ 64๋นํธ ํธ์ถ๋ก ๋ณํํ๋ ๊ณ์ธต ์ฐ๊ฒฐ์ ํตํด ๊ตฌํ๋ฉ๋๋ค.
- WoW64 ๋ ์ด์ด๋ ๋๋ถ๋ถ์ Unix ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ฉ์ผ๋ก ์ค๋น๋์ด ์์ผ๋ฉฐ 32๋นํธ PE ๋ชจ๋์ด 64๋นํธ Unix ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ก์ธ์คํ ์ ์๋๋ก ํด์ค๋๋ค. ๋ชจ๋ ๋ชจ๋์ด PE ํ์์ผ๋ก ๋ณํ๋๋ฉด 32๋นํธ Unix ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ์ง ์๊ณ ๋ 32๋นํธ Windows ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์์ต๋๋ค.
- ํ
๋ง
- ํ ๋ง ์ง์์ด ๊ตฌํ๋์์ต๋๋ค. ๋์์ธ ํ ๋ง๋ "Light", "Blue" ๋ฐ "Classic Blue"๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ WineCfg ๊ตฌ์ฑ๊ธฐ๋ฅผ ํตํด ์ ํํ ์ ์์ต๋๋ค.
- ํ ๋ง๋ฅผ ํตํด ๋ชจ๋ ์ธํฐํ์ด์ค ์ปจํธ๋กค์ ๋ชจ์์ ์ฌ์ฉ์ ์ ์ํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ๋์์ธ ํ ๋ง๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์์์ ๋ชจ์์ด ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
- ๋ชจ๋ ๋ด์ฅ Wine ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ๋ง ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ ํฝ์ ๋ฐ๋(High DPI)์ ํ๋ฉด์ ๋ง์ถฐ ์กฐ์ ๋์์ต๋๋ค.
- ๊ทธ๋ํฝ ํ์ ์์คํ
- ์ปค๋ ์์ค์ ๊ทธ๋ํฝ ์ฒ๋ฆฌ ๋ฐ ์ฐฝ ๊ด๋ฆฌ์ ๊ด๋ จ๋ GDI32 ๋ฐ USER32 ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ผ๋ถ๋ฅผ ํฌํจํ๋ ์๋ก์ด Win32u ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์์ผ๋ก๋ winex32.drv ๋ฐ winemac.drv์ ๊ฐ์ ๋๋ผ์ด๋ฒ ๊ตฌ์ฑ ์์๋ฅผ Win11u๋ก ํฌํ ํ๋ ์์ ์ด ์์๋ ๊ฒ์ ๋๋ค.
- Vulkan ๋๋ผ์ด๋ฒ๋ Vulkan ๊ทธ๋ํฝ API ์ฌ์ 1.2.201์ ์ง์ํฉ๋๋ค.
- ํด๋ฆญ ์ ์ค ์ฌ๋ถ(์ ์ค ํ ์คํธ)๋ฅผ ํ์ธํ๋ ๊ธฐ๋ฅ๊ณผ ํจ๊ป Direct2D API๋ฅผ ํตํด ํด์น๋ ๊ธฐํํ์ ๊ฐ์ฒด ์ถ๋ ฅ์ ๋ํ ์ง์์ ์ ๊ณตํฉ๋๋ค.
- Direct2D API๋ ID2D1Effect ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฉ๋๋ ์๊ฐ ํจ๊ณผ์ ๋ํ ์ด๊ธฐ ์ง์์ ์ ๊ณตํฉ๋๋ค.
- Direct2D API์๋ ๋ฉํฐ ์ค๋ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค์ ๋ํ ๋ ์ ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ ID2D1MultiThread ์ธํฐํ์ด์ค์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- WindowsCodecs ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธํธ๋ WMP(Windows Media Photo) ํ์์ ์ด๋ฏธ์ง ๋์ฝ๋ฉ๊ณผ DDS(DirectDraw Surface) ํ์์ ์ด๋ฏธ์ง ์ธ์ฝ๋ฉ์ ์ง์ํฉ๋๋ค. Windows์์๋ ์ง์๋์ง ์๋ ICNS ํ์(macOS์ฉ)์ ์ด๋ฏธ์ง ์ธ์ฝ๋ฉ์ ๋ ์ด์ ์ง์ํ์ง ์์ต๋๋ค.
- Direct3D
- ์๋ก์ด ๋ ๋๋ง ์์ง์ด ํฌ๊ฒ ํฅ์๋์ด Direct3D ํธ์ถ์ Vulkan ๊ทธ๋ํฝ API๋ก ๋ณํํฉ๋๋ค. ๋๋ถ๋ถ์ ์ํฉ์์ Vulkan ๊ธฐ๋ฐ ์์ง์ Direct3D 10 ๋ฐ 11 ์ง์ ์์ค์ ์ด์ OpenGL ๊ธฐ๋ฐ ์์ง๊ณผ ๋์ผํด์ก์ต๋๋ค. Vulkan ๋ ๋๋ง ์์ง์ ํ์ฑํํ๋ ค๋ฉด Direct3D ๋ ์ง์คํธ๋ฆฌ ๋ณ์ "renderer"๋ฅผ "vulkan"์ผ๋ก ์ค์ ํ์ญ์์ค.
- ์ง์ฐ๋ ์ปจํ ์คํธ, ์ฅ์น ์ปจํ ์คํธ์์ ์๋ํ๋ ์ํ ๊ฐ์ฒด, ๋ฒํผ์ ์๊ตฌ ์คํ์ , ์์๊ฐ ์๋ชป๋ ํ ์ค์ฒ ๋ทฐ ์ง์ฐ๊ธฐ, ์ ํ ์๋ ํ์(DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R10G11B3A32_TYPELESS)์ ๋ฆฌ์์ค ๊ฐ ๋ฐ์ดํฐ ๋ณต์ฌ ๋ฑ์ ํฌํจํ์ฌ Direct32D 32 ๋ฐ 32์ ๋ง์ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์์ต๋๋ค. .
- ๋ค์ค ๋ชจ๋ํฐ ๊ตฌ์ฑ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์ด Direct3D ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ์ฒด ํ๋ฉด ๋ชจ๋๋ก ํ์ํ ๋ชจ๋ํฐ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
- DXGI API๋ Direct3D 10 ๋ฐ 11 ๊ธฐ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ์์ ํ๋ฉด ๋ฐ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ํ๋ฉด ๊ฐ๋ง ๋ณด์ ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ์ ํ๋ ์ ๋ฒํผ ์นด์ดํฐ(SwapChain) ๊ฒ์์ ํ์ฑํํ์ต๋๋ค.
- Direct3D 12์๋ ๋ฒ์ 1.1 ๋ฃจํธ ์๋ช ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Vulkan API๋ฅผ ํตํ ๋ ๋๋ง ์ฝ๋์์ ์์คํ ์ด VK_EXT_host_query_reset ํ์ฅ์ ์ง์ํ ๋ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ ํจ์จ์ฑ์ด ํฅ์๋์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด CEF(Chromium Embedded Framework) ํ๋ ์์ํฌ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋จ์์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ฐฝ์ผ๋ก ์ถ๋ ฅํ ๋ OpenGL ๋๋ Vulkan์ ๋์คํ๋ ์ด์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ GDI๋ฅผ ํตํด ๊ฐ์ ํ๋ ์ ๋ฒํผ(SwapChain)๋ฅผ ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- GLSL ์ ฐ์ด๋ ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ ๋ ์ ฐ์ด๋ ๋ช ๋ น์ ๋ํด "์ ํํ" ์์ ์๊ฐ ๋ณด์ฅ๋ฉ๋๋ค.
- DirectDraw API๋ "RGB", "MMX" ๋ฐ "Ramp"์ ๊ฐ์ ์ํํธ์จ์ด ์ฅ์น๋ฅผ ์ฌ์ฉํ์ฌ ์์คํ ๋ฉ๋ชจ๋ฆฌ์ 3D ๋ ๋๋ง์ ๋ํ ์ง์์ ์ถ๊ฐํฉ๋๋ค.
- AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 ๋ฐ NVIDIA GT 630 ์นด๋๊ฐ Direct1030D ๊ทธ๋ํฝ ์นด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ถ๊ฐ๋์์ต๋๋ค.
- "UseGLSL" ํค๊ฐ HKEY_CURRENT_USER\Software\Wine\Direct3D ๋ ์ง์คํธ๋ฆฌ์์ ์ ๊ฑฐ๋์์ต๋๋ค. ๋์ Wine 5.0๋ถํฐ๋ "shader_backend"๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- Direct3D 12๋ฅผ ์ง์ํ๋ ค๋ฉด ์ด์ vkd3d ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ 1.2 ์ด์์ด ํ์ํฉ๋๋ค.
- D3DX
- D3DX 10 ๊ตฌํ์ผ๋ก ์๊ฐ ํจ๊ณผ ํ๋ ์์ํฌ์ ๋ํ ์ง์์ด ํฅ์๋์์ผ๋ฉฐ Windows Media ์ฌ์ง ์ด๋ฏธ์ง ํ์(JPEG XR)์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- D3DX10CreateTextureFromMemory()์ ๊ฐ์ด D3DX10์์ ์ ๊ณต๋๋ ํ ์ค์ฒ ์์ฑ ํจ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ID3DX10Sprite ๋ฐ ID3DX10Font ์ํํธ์จ์ด ์ธํฐํ์ด์ค๊ฐ ๋ถ๋ถ์ ์ผ๋ก ๊ตฌํ๋์์ต๋๋ค.
- ์ฌ์ด๋ ๋ฐ ๋น๋์ค
- DirectShow ๋ฐ Media Foundation ํ๋ ์์ํฌ์ฉ GStreamer ์ถ๊ฐ ๊ธฐ๋ฅ์ ํ๋์ ๊ณตํต WineGStreamer ๋ฐฑ์๋๋ก ๊ฒฐํฉ๋์ด ์๋ก์ด ์ฝํ ์ธ ๋์ฝ๋ฉ API ๊ฐ๋ฐ์ ๋จ์ํํฉ๋๋ค.
- WineGStreamer ๋ฐฑ์๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Windows Media ๊ฐ์ฒด๋ ๋๊ธฐ ๋ฐ ๋น๋๊ธฐ ์ฝ๊ธฐ๋ฅผ ์ํด ๊ตฌํ๋ฉ๋๋ค.
- Media Foundation ํ๋ ์์ํฌ์ ๊ตฌํ์ด ๋์ฑ ๊ฐ์ ๋์์ผ๋ฉฐ IMFPMediaPlayer ๊ธฐ๋ฅ ๋ฐ ์ํ ํ ๋น์์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ผ๋ฉฐ EVR ๋ฐ SAR ๋ ๋๋ง ๋ฒํผ์ ๋ํ ์ง์์ด ํฅ์๋์์ต๋๋ค.
- QuickTime ํ์์ ๋ํ ๋์ฝ๋๋ฅผ ์ ๊ณตํ๋ wineqtdecoder ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๊ฑฐ๋์์ต๋๋ค(์ด์ ๋ชจ๋ ์ฝ๋ฑ์ GStreamer๋ฅผ ์ฌ์ฉํฉ๋๋ค).
- ์
๋ ฅ ์ฅ์น
- HID(Human Interface Devices) ํ๋กํ ์ฝ์ ์ง์ํ๋ ์ ๋ ฅ ์ฅ์น์ฉ ์คํ์ด ๋ํญ ๊ฐ์ ๋์ด HID ์ค๋ช ์ ๊ตฌ๋ฌธ ๋ถ์, HID ๋ฉ์์ง ์ฒ๋ฆฌ, ๋ฏธ๋ HID ๋๋ผ์ด๋ฒ ์ ๊ณต๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- winebus.sys ๋๋ผ์ด๋ฒ์ ๋ฐฑ์๋์์ ์ฅ์น ์ค๋ช ์ HID ๋ฉ์์ง๋ก ๋ณํํ๋ ๊ธฐ๋ฅ์ด ๊ฐ์ ๋์์ต๋๋ค.
- HID ํ๋กํ ์ฝ์ ์ง์ํ๋ ์กฐ์ด์คํฑ์ ์ํ ์๋ก์ด DirectInput ๋ฐฑ์๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์กฐ์ด์คํฑ์์ ํผ๋๋ฐฑ ํจ๊ณผ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์์ต๋๋ค. ํฅ์๋ ์กฐ์ด์คํฑ ์ ์ดํ. XInput ํธํ ์ฅ์น์์ ์ํธ ์์ฉ์ด ์ต์ ํ๋์์ต๋๋ค. WinMM์์๋ Linux์ evdev ๋ฐฑ์๋์ macOS IOHID์ IOHID๋ฅผ ์ฌ์ฉํ๋ ๋์ ์กฐ์ด์คํฑ ์ง์์ด DInput์ผ๋ก ์ด๋๋์์ต๋๋ค. ์ด์ ์กฐ์ด์คํฑ ๋๋ผ์ด๋ฒ winejoystick.drv๊ฐ ์ ๊ฑฐ๋์์ต๋๋ค.
- ๊ฐ์ HID ์ฅ์น ์ฌ์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ๋ฌผ๋ฆฌ์ ์ฅ์น๊ฐ ํ์ํ์ง ์์ ์๋ก์ด ํ ์คํธ๊ฐ DInput ๋ชจ๋์ ์ถ๊ฐ๋์์ต๋๋ค.
- ํ
์คํธ ๋ฐ ๊ธ๊ผด
- DirectWrite์ ๊ธ๊ผด ์ธํธ ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- RichEdit์ TextHost ์ธํฐํ์ด์ค๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํํฉ๋๋ค.
- ์ปค๋(Windows ์ปค๋ ์ธํฐํ์ด์ค)
- Wine์์ ์๋ณ๋์ง ์์ ์คํ ํ์ผ(์: 'wine foo.msi')์ ์คํํ ๋ ์ด์ start.exe๊ฐ ํธ์ถ๋์ด ํ์ผ ํ์๊ณผ ๊ด๋ จ๋ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ํธ์ถํฉ๋๋ค.
- Linux์ futex์ ์ ์ฌํ ๋๊ธฐํ ๋ฉ์ปค๋์ฆ NtAlertThreadByThreadId ๋ฐ NtWaitForAlertByThreadId์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์ปค๋ ๊ธฐ๋ฅ์ ๋๋ฒ๊ทธํ๋ ๋ฐ ์ฌ์ฉ๋๋ NT ๋๋ฒ๊ทธ ๊ฐ์ฒด์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ๋์ ๋ ์ง์คํธ๋ฆฌ ํค์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- C ๋ฐํ์
- C ๋ฐํ์์ ์ฃผ๋ก Musl ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ๋ฌ๋๋ ์ ์ฒด ์ํ ํจ์ ์ธํธ๋ฅผ ๊ตฌํํฉ๋๋ค.
- ๋ชจ๋ CPU ํ๋ซํผ์ ๋ถ๋ ์์์ ํจ์๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ง์ํฉ๋๋ค.
- ๋คํธ์ํน ๊ธฐ๋ฅ
- ์ด์ HTML ๋ฌธ์ ์ฒ๋ฆฌ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋๋ Internet Explorer 11(IE11)์ ๋ํ ํธํ์ฑ ๋ชจ๋๊ฐ ๊ฐ์ ๋์์ต๋๋ค.
- mshtml ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ let ํํ์ ๋ฐ Map ๊ฐ์ฒด์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ง์ํ๋ ES6 JavaScript ๋ชจ๋(ECMAScript 2015)๋ฅผ ๊ตฌํํฉ๋๋ค.
- Gecko ์์ง์ ์ถ๊ฐ๋ MSI ํจํค์ง๋ฅผ Wine ์์ ๋๋ ํฐ๋ฆฌ์ ์ค์นํ๋ ์์ ์ ์ด์ Wine ์ ๋ฐ์ดํธ ๋์ค์ด ์๋๋ผ ํ์ํ ๋ ์ํ๋ฉ๋๋ค.
- DTLS ํ๋กํ ์ฝ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- NSI(Network Store Interface) ์๋น์ค๊ฐ ๊ตฌํ๋์ด ์ปดํจํฐ์ ๋ผ์ฐํ ๋ฐ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ๋ค๋ฅธ ์๋น์ค๋ก ์ ์กํฉ๋๋ค.
- setockopt ๋ฐ getsockopt์ ๊ฐ์ WinSock API ์ฒ๋ฆฌ๊ธฐ๋ Windows ์ํคํ ์ฒ๋ฅผ ๋ฐ๋ฅด๊ธฐ ์ํด NTDLL ๋ฐ afd.sys ๋๋ผ์ด๋ฒ๋ก ์ด๋๋์์ต๋๋ค.
- /etc/protocols ๋ฐ /etc/networks์ ๊ฐ์ Wine ์์ฒด ๋คํธ์ํฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ์ ์ด์ ์ ์ฌํ Unix ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ก์ธ์คํ๋ ๋์ Wine ์์ ๋๋ ํฐ๋ฆฌ์ ์ค์น๋ฉ๋๋ค.
- ๋์ฒด ํ๋ซํผ
- M1 ARM ์นฉ(Apple Silicon) ๊ธฐ๋ฐ Apple ์ฅ๋น์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์ด์ macOS์์ BCrypt ๋ฐ Secur32 ๊ธฐ๋ฅ์ ์ง์ํ๋ ค๋ฉด GnuTLS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค.
- ARM ํ๋ซํผ์ฉ 32๋นํธ ์คํ ํ์ผ์ ์ด์ Windows์ ์ ์ฌํ๊ฒ Thumb-2 ๋ชจ๋๋ก ๋น๋๋ฉ๋๋ค. ์ด๋ฌํ ํ์ผ์ ๋ก๋ํ๋ ๋ฐ ํ๋ฆฌ๋ก๋๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- 32๋นํธ ARM ํ๋ซํผ์ ๊ฒฝ์ฐ ํด์ ์์ธ์ ๋ํ ์ง์์ด ๊ตฌํ๋์์ต๋๋ค.
- FreeBSD์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ์ํ, ๋ฐฐํฐ๋ฆฌ ์ถฉ์ ์์ค๊ณผ ๊ฐ์ ํ์ ์์ค ์์คํ ์ ๋ณด์ ๋ํด ์ง์๋๋ ์ฟผ๋ฆฌ ์๊ฐ ํ์ฅ๋์์ต๋๋ค.
- ๋ด์ฅ๋ ์ ํ๋ฆฌ์ผ์ด์
๋ฐ ๊ฐ๋ฐ ๋๊ตฌ
- reg.exe ์ ํธ๋ฆฌํฐ์๋ 32๋นํธ ๋ฐ 64๋นํธ ๋ ์ง์คํธ๋ฆฌ ๋ณด๊ธฐ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ๋ ์ง์คํธ๋ฆฌ ํค ๋ณต์ฌ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- WineDump ์ ํธ๋ฆฌํฐ์๋ Windows ๋ฉํ๋ฐ์ดํฐ ๋คํ ๋ฐ CodeView ํญ๋ชฉ์ ๋ํ ์์ธํ ์ ๋ณด ํ์์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Wine Debugger(winedbg)๋ 32๋นํธ ๋๋ฒ๊ฑฐ์์ 64๋นํธ ํ๋ก์ธ์ค๋ฅผ ๋๋ฒ๊น ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- PE ํ์ผ์ ๋ด์ฅ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ก๋ํ๋ ๊ธฐ๋ฅ์ด IDL ์ปดํ์ผ๋ฌ(widl)์ ์ถ๊ฐ๋์๊ณ , WinRT ๊ด๋ จ ํน์ฑ ๋ฐ ๊ตฌ์ฑ์ ๋ํ ์ง์์ด ์ ๊ณต๋์์ผ๋ฉฐ, ํ๋ซํผ๋ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฒ์์ด ๊ตฌํ๋์์ต๋๋ค.
- ์กฐ๋ฆฝ ์์คํ
- ์ํคํ ์ฒ๋ณ ๋๋ ํฐ๋ฆฌ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด์ PE ํ์์ ๊ฒฝ์ฐ 'i386-windows', Unix ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒฝ์ฐ 'x86_64-unix'์ ๊ฐ์ด ์ํคํ ์ฒ ๋ฐ ์คํ ๊ฐ๋ฅ ์ ํ์ ๋ฐ์ํ๋ ์ด๋ฆ์ผ๋ก ์ ์ฅ๋์ด ๋จ์ผ Wine์์ ๋ค์ํ ์ํคํ ์ฒ๋ฅผ ์ง์ํ ์ ์์ต๋๋ค. Winelib์ ์ค์น ๋ฐ ํฌ๋ก์ค ์ปดํ์ผ์ ์ ๊ณตํฉ๋๋ค.
- ๋ค์ดํฐ๋ธ DLL ์ฌ์ฉ์ผ๋ก์ ์ ํ์ ์ ์ดํ๋ โโPE ํ์ผ์ ํค๋์ ์ต์ ์ ์ค์ ํ๊ธฐ ์ํด '--prefer-native option' ํ๋๊ทธ๊ฐ winebuild์ ์ถ๊ฐ๋์์ต๋๋ค(DllMain์ DLL_WINE_PREATTACH ์ฒ๋ฆฌ๊ฐ ์ค์ง๋์์ต๋๋ค).
- ์ด์ Wine ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋น๋ํ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋๋ Dwarf ๋๋ฒ๊ทธ ๋ฐ์ดํฐ ํ์ ๋ฒ์ 4์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์คํ ํ์ผ์ ๊ณ ์ ํ ๋น๋ ์๋ณ์๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ๋น๋ ์ต์ 'โenable-build-id'๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- MSVC ํธํ ๋ชจ๋์์ Clang ์ปดํ์ผ๋ฌ ์ฌ์ฉ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์ฌ๋ฌ ๊ฐ์ง ์ก๋คํ
- ์ฌ์ฉ์ ์ ธ(Windows Shell)์ ์ผ๋ฐ์ ์ธ ๋๋ ํฐ๋ฆฌ ์ด๋ฆ์ Windows Vista๋ถํฐ ์ฌ์ฉ๋๋ ๊ตฌ์ฑํ์ ์ง์ ๋ฉ๋๋ค. ์ด์ '๋ด ๋ฌธ์' ๋์ '๋ฌธ์' ๋๋ ํฐ๋ฆฌ๊ฐ ์์ฑ๋๊ณ ๋๋ถ๋ถ์ ๋ฐ์ดํฐ๊ฐ 'AppData' ๋๋ ํฐ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค.
- OpenCL 1.2 ์ฌ์์ ๋ํ ์ง์์ด OpenCL ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ ์ด์ด์ ์ถ๊ฐ๋์์ต๋๋ค.
- WinSpool ๋๋ผ์ด๋ฒ์๋ ์ธ์ ์ ๋ค์ํ ํ์ด์ง ํฌ๊ธฐ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ODBC ๋๋ผ์ด๋ฒ์ฉ Microsoft OLE DB ๊ณต๊ธ์์ธ MSDASQL์ ๋ํ ์ด๊ธฐ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- .NET ํ๋ซํผ ๊ตฌํ์ ๊ฐ์ถ Wine Mono ์์ง์ด ๋ฆด๋ฆฌ์ค 7.0.0์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
- ์ ๋์ฝ๋ ๋ฐ์ดํฐ๊ฐ ์ ๋์ฝ๋ 14 ์ฌ์์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
- ์์ค ํธ๋ฆฌ์๋ Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt ๋ฐ Zlib ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ PE ํ์์ผ๋ก ์ปดํ์ผ๋๋ฉฐ Unix ํ์ ๋ฒ์ ์ด ํ์ํ์ง ์์ต๋๋ค. ๋์์ ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์คํ ์์ ๊ฐ์ ธ์ ๋ด์ฅ PE ์ต์ ๋์ ์ธ๋ถ ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru