The View from the Other Side
One of ourprincipal beefs with Microsoft's Windows Services for Unix 2.0 is that it isdesigned primarily to make Unix systems easier to manage from Windowsenvironments. In practice, however, a lot of Unix administrators are lookingfor a suite of tools that can help them manage their Windows systems from thefamiliarity of Unix environments. Windows Services for Unix 2.0 doesn’t reallyhelp them much.
With thisin mind, we took a look at version 1.1.x of Cygwin, a development environmentand suite of interoperability tools available -- as a free download -- fromCygnus Solutions, a subsidiary of Linux vendor Red Hat Inc.
Cygwinprovides a feature-complete port of the open source GNU development tools andadministrative utilities for Windows 9x, Windows ME, and Windows NT/2000. Partsof it are covered under the open source GNU public license, which means youcannot only modify it to your heart's content, but you can also incorporate themodifications of others if and when they're made available.
Make surethat you check out the licensing terms on Cygwin's Web site (www.cygwin.com/licensing.html)to find out what you can and can't do to the code.
We installedCygwin on an AMD Athlon 600 MHz system with 256 MB of RAM running Windows 2000Advanced Server with Service Pack 1 (SP1) installed. Our lab environmentconsisted of Windows NT 4.0 client machines; a Windows NT 4.0 Server with SP5running Oracle8; a Sun Solaris box running Netscape Enterprise Server 3.0; andsix Debian Linux servers handling tasks ranging in scope from simple Webserving to firewall and IP masquerading to DNS.
Cygwinincludes a GNU C compiler (GCC) as well as a full set of development tools,such as for bug checking and code optimization. The GCC compiler and thelibraries -- functions that a program can call that are standardized so youknow what to expect -- are becoming a standard across all flavors of Unix, andnow on Windows.
In contrastto Microsoft's Windows Services for Unix 2.0 -- which installs icons andfolders in the Start Menu -- CygWin installs only a single icon. We thinkadministrators from Unix backgrounds will be most at home with this approach:Double-clicking on the Cygwin icon drops you into a bash shell prompt and,voila, you're in a fake root -- file system root, that is -- environment.
To get theGNU tools to work right, programs expect a certain file system structure. Thehighest we could go in the directory tree from a bash prompt is the c:\programfiles\cygwin directory.
We could,however, mount the "C:\" drive in our test box in the "/"root directory. Once you're used to it, it's exactly how Unix works:StarOffice, for example, lives in /opt/Office51; Perl can live in/usr/share/bin/ -- just as they do on Unix platforms. We could even accessWindows applications by using Unix syntax to navigate to /c/ProgramFiles/winzip/winzip.exe, for example, to launch the Winzip file compressionprogram.
Cygwindoesn't include a Perl implementation, but there are open source Perlimplementations for Win32 available from other sources, as well as fromMicrosoft, which ships such an implementation with its Windows Services forUnix 2.0 interoperability toolset.
Cygwinincludes a port of VIM -- an improved version of the legendary Visual Interface(VI) editor -- which we feel is a good thing. VIM adds many features to VI,such as syntax highlighting, and is bundled with several Unix platforms.
Cygwin hasa few "gotchas" in store for programmers -- such as the fact that itisn't really case-sensitive. It also includes a secure shell (ssh) client, butno ssh daemon. SSH is preferred as a secure alternative to Telnet by mostsecurity conscious systems administrators.
We reallycan't say enough about Cygwin’s ports of the GNU utilities. They are exactlywhat you would get on a Unix box -- with the obvious exception of features suchas Unix-flavored multitasking -- that are impossible to reduplicate in Windowsenvironments. And Cygwin isn't a development-only tool. It seems really usefulfor administrative tasks.
Cygwinshould best be positioned as a complement to Microsoft's Windows Services forUnix 2.0. It picks up Windows Services for Unix in areas that it lacks --particularly where the Unix administrator is involved.
In ouropinion, Cygwin provides the kind of functional Unix environment that ismissing from the Microsoft offering. With Windows Services for Unix 2.0'sNFS/NIS support and Cygwin's powerful Unix command environment, administratorsin mixed environments now have a powerful joint solution.
CygnusSolutions, Sunnyvale, Calif.
+ Apowerful interoperability tool for administrators with mixed Windows and Unixsystems
+ Providesa near-perfect Unix command-line environment on Windows platforms
+ Canfacilitate the porting of existing Unix applications or the development ofcross-platform applications for Unix and Windows.
- Doesn'tship with an SSH daemon