Cygwin: For Windows NT

Cygwin is a port of GNU development tools to Windows NT. This port also brings a Linux/UNIX environment to the Windows platform.
Installation and Setup

Cygwin requires at least a Pentium processor with 32MB of RAM and 100MB free disk space. The supported operating system is NT 4.0 with at least Service Pack 3. Plan to allot more than 100MB for this product. Install Shield suggested 300MB would be required for the basic product and contributed files. When source code was also selected, the storage requirement went up into the 1GB+ range. On my system, I selected the basic product and contributed files. They appear to use about 140MB of disk space.

Cygnus uses the very reliable Install Shield to install Cygwin. Install Shield properly installed and registered Cygwin with my Windows system. Pay heed to installation instructions. Cygwin should not be installed in any directory with spaces in the directory or path names. Once installed, traditional Linux/UNIX escaping, quoting or tabbing is necessary to get to directories with spaces in their names.

After installation, several steps are required to set up the Cygwin environment. A few of the tasks that need to be done include creating mount points for existing disk drives and directories; establishing the desired POSIX Cygwin directory structure; establishing environment variables; establishing and verifying file and path naming conventions; and customizing the shell.


Platform security is an area requiring a few moments of attention. Maintaining platform and file system security is important, and maintaining security on platforms containing business data is critical.

Cygwin has two security-related options: NT Extended Attributes (ntea) and NT Security (ntsec). Ntea can work with both FAT and NTFS file systems. The NTFS file system is required by the ntsec option. Enabling the ntea option permits NT file permissions to behave like UNIX file permissions. This option works best with NTFS file systems. It does work with FAT file systems. After using ntea a while with the FAT file system, one can expect a major performance hit.

NT can reproduce the POSIX security model. Enabling the ntsec option will cause file ownership and permissions, and process privileges to be treated in a UNIX-like manner. For processes, this means one can start a process with the group owner being the administrator. Anyone who is a member of the administrator group may send signals to the process. Normally, only the ID creating the process has permission to send signals to the process. Proper function of ntsec requires both /etc/passwd and /etc/group files. Using supplied tools, these files may be generated from the NT security files.

I am not sure how adding Cygwin to an NT platform impacts maintenance of a desired security posture. Once fully integrated, altering an established NT security posture with Cygwin seems possible. I do have one general question: are two sets of security reviews and corrective actions now required, one for NT and one for Linux/UNIX (Cygwin)? I believe the Cygnus documentation should include some discussion or clarification related to which NT/Cygwin security attributes take precedence.

Documentation and Support

A couple of sections in the manual provide concise information and guidance on Cygwin functions. Much of the rest is a collection of facts about the product. These facts have been organized to appear as though they are providing guidance. One example is the “Setting up Cygwin” topic. This topic presents eight bullet items, pointing to various pages. Each set of pages discusses aspects of setting up Cygwin, so one must go to eight different places in the manual to read about the Cygwin environment. This technique is used several times throughout the manual. I found the process of piecing information together tiresome. I never got the feeling I had seen all the information I needed to configure Cygwin properly.

On-line documentation includes man pages, Texinfo and HTML pages. Some man pages are no longer actively maintained. Instead, one should use the Texinfo source. Texinfo is the authoritative information source for many traditional man pages. Cygwin has complete control over the HTML files distributed with the product. Cygnus suggested the HTML files are the more accurate source of information at the time the product is shipped. Therefore, the HTML documentation should be consulted first.

The web-based FAQ is not very big, however, the few minutes it takes to browse this FAQ are worth the time. It provides an itemized list of implemented ANSI C and POSIX.1 API calls. All of the compatible APIs are also listed in the local on-line and printed documentation.

The Cygnus documentation is considerate of individuals who have Windows experience. References to Linux/UNIX and Linux/UNIX programming for the non-Linux/UNIX-initiated are provided.

Product installation support is available. Once the installation support ends, assistance may be obtained from the Cygwin mailing list, Another source of information is the web site.

The Good and the Bad

Daniel Lazenby ( first encountered UNIX in 1983 and discovered Linux in 1994.