Ever heard of WINE? Or TWIN? (See http://www.winehq.com/ or
http://www.willows.com/ for details.) BOTH of these are (a) GPL'd,
and (b) run Windows 3.1 binaries fairly well, and Wine also runs
some Win95/WinNT binaries. Work is in progress on turning Wine into
a full-blown Win32 API implementation.
The problem is that all Microsoft has to do is move the goal-posts once
every three years, by adding a new API to some valuable service. The
commercial developers who Microsoft want to help get help aid in
updating/understanding their APIs, so that new applications rely on
it; the white-room cloners on the Wine team have to run just to keep
up, otherwise not all the bleeding edge applications will run on their
shim, and the luser-base and PHB's will complain "wine is no good, it
can't run xyzzy release 75.4b1".
I have a PC at home. It runs Linux applications. It also runs java
bytecode, Macintosh applications, DOS applications, SCO Xenix or
UNIX applications, and Windows 3.1 applications (without needing a
reboot :). But will it satisfy someone who wants to run Lotus Notes
Server for NT? Nope.
One proposal I've seen floated a while ago was to take the Windows
APIs are in effect grab 'em from Microsoft, saying "this is now an
ANSI or ISO standard for a windowing applications programming interface
on intel hardware: live with it". Microsoft would still own their code
base, and would be free to produce a superset of ANSI Windows, but the
availability of a standards document and alternative implementations
would drive a post into the ground and send a message to developers: "if
you use proprietary extensions to the open standard, your code may not
run on other systems". Unfortunately it's either three years too late
or two years too early to do this right now -- M$ are migrating from
a 16-bit API to a 32-bit API, and freezing a standard in the middle would
result in a horrendous mess. But I think by designating the APIs as
an open standard, some of the sting might be taken out of their
ownership by a single monopolistic company. After all, who would have
complained in 1995 about UNIX being owned by Sun or SCO, even though
those companies shipped most of the branded UNIX boxes in circulation?
UNIX was an open standard, administered by The Open Group (or X/Open
as it then was).
Open standards are bad for monopolies. If Windows was an open standard
rather than Microsoft's +3 magic aluminium baseball bat of compatability,
I'd have a lot less trouble with it.