Skip to content

Wine ​

Wine Is Not an Emulator.

Ref: How Wine works 101

Why not an emulator ​

  • Emulators are slow.
  • No need: Windows and Linux on the same CPU run the same machine instructions.

Dynamic Loader ​

On Linux, the dynamic loader loads and runs an ELF:

bash
/lib64/ld-linux-x86-64.so.2 ./app

Wine is a "Windows dynamic library loader":

bash
wine64 HalfLife4.exe

Syscall ​

Windows API calls are translated, e.g. when the app calls NtWriteFile(), Wine calls write() instead.

More ​

  • wine-server: a process that holds the "kernel" state.
  • Works with DirectX, audio APIs, ...
  • A lot of work 😦

頁面歷史

Just observe 👀