Wine 11, 커널 수준에서 Linux의 Windows 게임 실행 방식을 재작성해 대규모 성능 향상 달성

2 days ago 2
  • Linux에서 Windows 게임 실행 구조를 커널 수준에서 전면 재설계해, 기존 wineserver 기반 동기화 병목을 제거
  • 새로운 NTSYNC 드라이버가 NT 동기화 객체를 커널에서 직접 처리하며, 최대 8배 이상의 FPS 향상을 기록
  • WoW64 완성으로 64비트 Linux에서도 32비트 Windows 앱을 별도 라이브러리 없이 실행 가능
  • Wayland 드라이버 강화, Vulkan 1.4 지원, Bluetooth·Force feedback 개선 등 그래픽·입출력 전반의 호환성 확대
  • Proton, SteamOS, Lutris 등 Wine 기반 생태계 전반에 성능과 안정성 향상 효과가 확산됨

Wine 11의 핵심 변화

  • Wine 11은 단순한 연례 업데이트가 아니라, Linux에서 Windows 게임 실행 방식을 커널 수준에서 재작성한 대규모 개편판

    • 수년간의 누적된 버그 수정과 성능 개선 외에도 NTSYNC 지원, WoW64 완성, Wayland 드라이버 강화 등 구조적 변화 포함
    • Proton, SteamOS 등 Wine 기반 프로젝트 전반에 성능 향상이 확산됨

기존의 한계와 임시방편

  • 과거 Wine은 Windows의 NT 동기화 프리미티브(mutex, semaphore, event 등)를 Linux에서 완벽히 구현하지 못함
    • 각 스레드 간 동기화를 위해 매번 wineserver로 RPC 호출을 수행, 초당 수천 회의 호출이 프레임 지연과 불규칙한 타이밍을 유발
  • Esync는 eventfd를 활용해 wineserver 호출을 줄였으나, 파일 디스크립터 한도 문제 발생
  • Fsync는 futex 기반으로 더 빠르지만, 커널 외부 패치가 필요해 일반 배포판에서는 사용이 어려움
    • Linux 5.16의 futex_waitv는 Fsync의 원형과 다르며 완전한 대체는 아님
  • 두 방식 모두 임시방편적 해결책으로, 일부 NT API(예: NtPulseEvent, NtWaitForMultipleObjects의 wait-for-all 모드)는 정확히 구현 불가

NTSYNC — 커널 수준의 동기화 재설계

  • NTSYNC는 Linux 커널에 새로운 /dev/ntsync 장치 드라이버를 추가해 Windows NT 동기화 객체를 직접 모델링
    • 사용자 공간이 아닌 커널 내부에서 동기화 처리, wineserver 왕복 호출 제거
    • 큐 관리, 이벤트 의미론, 원자적 연산을 모두 커널이 직접 수행
  • 개발자는 Esync와 Fsync를 만든 Elizabeth Figura, 2023년 Linux Plumbers Conference에서 발표 후 Linux 6.14에 병합
  • 성능 향상 수치

    • Dirt 3: 110.6 → 860.7 FPS (678% 향상)
    • Resident Evil 2: 26 → 77 FPS
    • Call of Juarez: 99.8 → 224.1 FPS
    • Tiny Tina’s Wonderlands: 130 → 360 FPS
    • Call of Duty: Black Ops I은 완전한 플레이 가능 상태
  • fsync 대비 차이점

    • fsync 사용자에게는 향상이 제한적이지만, 멀티스레드 병목이 있던 게임에서는 극적인 개선
    • 메인라인 커널 포함으로 별도 패치 불필요, Fedora 42·Ubuntu 25.04 등 최신 배포판에서 즉시 사용 가능
    • SteamOS 3.7.20 베타에 기본 탑재, Proton GE에서도 활성화
    • NTSYNC는 Wine 역사상 처음으로 커널 수준에서 정확한 동기화 구현을 달성한 사례

WoW64 완성 — 32비트 호환성의 통합

  • WoW64(Windows 32-bit on Windows 64-bit) 아키텍처 구현이 Wine 11에서 완성
    • 64비트 Linux 시스템에서 32비트 Windows 앱 실행 시 별도 32비트 라이브러리 설치 불필요
    • 단일 바이너리가 실행 파일의 비트 수를 자동 감지해 처리
  • OpenGL 메모리 매핑, SCSI 패스스루, 16비트 애플리케이션 지원까지 포함
    • 1990년대 구형 Windows 소프트웨어도 실행 가능
  • 과거에는 배포판별 multilib 설정 차이로 실행이 어려웠으나, 이제 Wine이 내부적으로 처리

Wayland 및 기타 주요 개선

  • Wayland 드라이버

    • 클립보드 양방향 복사, 드래그 앤 드롭 지원, 해상도 전환 시 컴포지터 스케일링으로 구형 게임 호환성 향상
    • X11에서 Wayland로 전환 시 Wine 호환성 문제 대부분 해소
  • 그래픽 및 미디어

    • X11에서 EGL이 OpenGL 기본 백엔드로 변경, GLX 대체
    • Vulkan 1.4 지원, Vulkan Video 기반 H.264 하드웨어 가속 디코딩 추가
  • 입출력 및 주변기기

    • Force feedback 개선으로 레이싱 휠·플라이트 스틱 대응 강화
    • Bluetooth BLE 서비스 및 페어링 지원**,** MIDI 사운드폰트 처리 개선

      • Zip64 압축, Unicode 17.0.0, TWAIN 2.0 스캐닝(64비트), IPv6 ping 기능 추가
  • 성능 및 플랫폼 확장

    • Linux·macOS에서 스레드 우선순위 관리 개선, 멀티스레드 성능 향상
    • ARM64에서 4K 페이지 크기 시뮬레이션 지원, ARM 기반 Linux 기기 호환성 확보

게임 호환성과 버그 수정

  • Nioh 2, StarCraft 2, The Witcher 2, Call of Duty: Black Ops II, Final Fantasy XI, Battle.net 등 주요 타이틀의 호환성 개선
  • 수백 건의 버그 수정이 포함되어 전반적인 안정성과 성능 향상

종합 평가

  • NTSYNC, WoW64 완성, Wayland 개선, 대규모 버그 수정이 결합된 Wine 11은 Proton 이후 가장 중요한 릴리스
  • Proton, Lutris, Bottles 등 Wine 기반 모든 프로젝트의 성능과 호환성이 향상
  • Linux에서 게임을 즐기는 사용자라면 Wine 11은 반드시 시도할 가치가 있는 버전
Read Entire Article