points by jdub 10 years ago

Windows NT was designed from the start to have modular subsystems. It was most infamously used to provide a POSIX subsystem which really only checked boxes on government acquisition forms. :-)

The reason WINE went with the library emulation route is because: (a) the Windows kernel doesn't have a stable system call layer, and (b) the Win32 API is massive anyway.

Windows has an easier time emulating Linux at the very lowest levels because Linux has an ABI stable system call layer. If you emulate those, you can run ANY Linux binary.

It also means Microsoft doesn't have to ship or support hundreds of Open Source projects. They ship the syscall layer, and distributions ship the user layer.

cpach 10 years ago

”It was most infamously used to provide a POSIX subsystem which really only checked boxes on government acquisition forms.”

Ah, so that was the rationale. I always found that subsystem curious.

philjohn 10 years ago

IIRC, this is how the Linux binary compat on BSD works.

makomk 10 years ago

Also (c) Windows isn't open source so there are licensing issues with Wine shipping actual Windows DLLs. Some of them do work under Wine but the project aims to replace as many of them as possible with emulated versions.