Cygwin unites Unix and Windows apps

Cygwin unites Unix and Windows apps

The development and maintenance investment required to support cross-platform applications can represent a sizable expenditure for corporate IT shops that have heterogeneous computing environments. Cygwin 1.0, from Cygnus Solutions, is an open-source application for Windows NT that allows you to run Windows-based applications side-by-side with your Unix applications.

Despite some buggy interaction, I found that Cygwin provides a good foundation for quick and affordable deployment of existing Unix tools on a Windows platform.

By contrast, Microsoft's interoperability add-on, Windows NT Services for Unix, offers less-than-comprehensive utilities and command-line support, and does not scratch the surface when it comes to Unix and Windows application migration.

Cygwin neatly combines a Unix command-line shell environment with a portability library that enables developers to quickly port Unix applications to Windows without recoding.

Using Cygwin will significantly reduce development costs and the time required to migrate applications across operating systems. Moreover, Unix administrators will be able to easily leverage existing scripts and familiar tools within Windows.

I was disappointed that this 1.0 release only supports Windows NT 4.0, which somewhat diminishes its value. Although this first commercial release of the product did not yet have Windows 95/98 support, beta versions on these platforms have existed for some time, and I have been successfully using the Windows 95 version. Cygwin presents a sizable cost saving over proprietary packages, such as MKS/DataFocus or Interix (recently acquired by Microsoft).

Improvements in Cygwin's setup routine and provisions for a more Unix-like directory structure have been added to ease implementation. This allowed me to quickly install the package and immediately become productive.

In addition to the Unix/Linux shell, replete with a good supply of common shell commands, Cygwin delivers the GNUPro application development toolset, including the gcc compiler and gdb debugger, which have been optimised for Windows-based development and Pentium-based processing.

The Cygwin.dll library, which supplies the portability layer between operating systems, goes beyond the strict Posix API implementation found in products such as AT&T's UWIN, supplementing the library with pieces of Unix BSD and SVR4. Applications can make both Posix and 32-bit Windows calls, enabling a single code core to support multiple interfaces.

I found that Cygwin did a good job meshing incompatibilities in path and filenames, as well as in text and binary mode translations. With some minor modifications, I was able to quickly rebuild ports of several Unix tools. In addition, I was able to make quick work of building and importing dynamic link libraries, using the dlltool utility.

There were some minor incompatibilities in areas like mapping file permissions and security parameters. However, most of the tools and commands behaved comparably to execution under native Unix.

Although Cygwin competently handles mapping between Unix and NT security systems, it also implements a shared memory area for running Unix processes that could permit uninvited access, thus diminishing security.

Given the system resource overhead required to run Cygwin, it will not be the ideal solution for adapting every application from your Unix arsenal. However, Cygwin provides a comprehensive means of reducing development and deployment costs, while improving portability and interoperability.the bottom lineCygnus Solutions Cygwin 1.0Summary: Cygwin enables mixed-platform sites to run both Unix and Microsoft Windows-based applications side-by-side on Windows NT.

Business Case: Cygnus' tool reduces administrative costs by allowing Unix gurus to use familiar tools across multiple platforms. The ability to quickly port applications across platforms saves time and effort for redevelopment. Cygwin's open-source business model reduces your initial investment, while improving extensibility and reliability.


Comprehensive Unix/Linux environment

Speeds up application porting projects

Fast native implementation of development toolsUseful utility pack providedCons:

Weak documentation


Security holes

Platforms: Windows NT 4.0, Service Pack 3 and laterPrice: $US99 for electronic delivery direct from the vendor through Solutions

Follow Us

Join the newsletter!

Error: Please check your email address.
Show Comments