9. Proprietary Alternatives
When we started
developing Cygwin, alternatives to writing our own library either
did not exist or were not mature enough for our purposes. Today, we
know of three proprietary alternatives to Cygwin: UWIN from AT&T
Laboratories, NuTCracker from DataFocus, and OpenNT from Softway
Systems.
UWIN ("UNIX for Windows")
was developed by David Korn for AT&T Laboratories. Its architecture
and API appears to be quite similar to our library. Its single
biggest advantage over Cygwin is probably its more complete support
for the UNIX security model. UWIN binaries are available for free
non-commercial use, but its source code is not
available.
NuTCracker, by DataFocus, is another proprietary
product that is built on top of the Win32 subsystem. Version 4.0 of
the product appears to be quite complete, including such features as
support for POSIX threads.
OpenNT from Softway Systems takes a markedly different approach by providing
a capable POSIX subsystem for Windows NT, implemented with the Windows
NT source code close at hand. At least in principle, writing a
separate POSIX subsystem should result in better performance because
of the lack of overhead imposed when implementing a library on top of
the Win32 subsystem. More importantly, by avoiding the compromises
inherent in supporting both Win32 and POSIX calls in one application,
it should be possible for OpenNT to conform more strictly to the
relevant standards.
However, there are two substantial drawbacks to
OpenNT's approach. The first is that it is not possible to mix UNIX
and Win32 API calls in one application, a feature that is highly
desirable if you are attempting to do a full native Win32 port of a
UNIX program gradually, one module at a time. The second drawback is
that OpenNT does not and cannot support Windows 95/98, a requirement
for many applications, including the GNUPro development
tools.
The lack of source code, coupled with the licensing fees
associated with each of these commercial offerings, might still have
required us to have written our own library if we were faced with the
same porting challenge today.
|