Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Cygwin and Wine both are compatibility layers. One is implementing POSIX on Windows, and the other is implementing Windows API on *nix. Why is it necessary to recompile binaries to run on Windows with Cygwin, while you can run Windows applications using Wine without recompilation?

share|improve this question
add comment

migrated from stackoverflow.com Oct 6 '12 at 10:04

This question came from our site for professional and enthusiast programmers.

2 Answers

up vote 2 down vote accepted

Because there is one Windows (albeit in different versions) on one platform (x86) but gazillions of *nixes (SysV, BSD, Linux, Dec, ...) multiplied by their platforms multiplied by their supported CPUs.

Sharing code on *nix was always sharing the source due to that variety.

share|improve this answer
add comment

There isn't really a good answer to this question other than "they're different". It would, in theory, be possible to produce a Cygwin-like layer for *nix which would enable you to recompile Windows applications on *nix and a Wine-like layer for Windows which would enable you to run *nix applications without recompilation - but that isn't what people did.

share|improve this answer
    
+1: If I have a Unix app I want to run on Windows, I can probably get the source code. That's very much not the case for a Windows app. Insisting on a recompile is probably easier, but if that was necessary for Wine, there would be very few apps that it could support. –  me_and Oct 6 '12 at 17:09
1  
Winelib allows Windows applications to be compiled for Unix (with various limitations). –  ak2 Oct 6 '12 at 18:04
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.