Cygwin: For Windows NT
Manufacturer: Cygnus Solutions
E-mail: info@cygnus.com
Price: $99 US
Reviewer: Daniel Lazenby
During 1999, Cygnus released products such as Cygnus Insight, Source-Navigator and Code Fusion. These tools focused on providing a better-integrated, Linux-based development and debugging environment. Cygnus recently added another tool to the Cygnus development tool chest, named Cygwin. With Cygwin, Cygnus takes a step in a slightly different direction. Cygwin is a port of GNU development tools to Windows NT. This port also brings a Linux/UNIX environment to the Windows platform.
You might ask, why would I want it? What does this do for me? The answer is, “it depends.” Are you a developer who wants to bring your Linux/UNIX open-source projects to Windows platforms? Do you want to develop open-source Windows applications? Or are you a Linux/UNIX administrator with the responsibility of also administering Windows NT workstations and servers? Cygwin can support all three situations.
Once Cygwin is installed, an administrator has the same shell interface on both Windows and Linux/UNIX platforms. Many traditional Linux/UNIX shell commands are included with the product. In the two default directories /bin and /contrib/bin, I counted about 300 commands and basic Linux/UNIX tools. (In this context, I am calling a command such as wc a tool.)
In addition to NT's GUI administrator interface are several console NT administrative commands. These include a series of “net...” commands that may be used to stop, start, pause and resume services. For example, these commands can be used with printers, print queues and shared items. There are also commands to change certain user account attributes. The command net send is used to send a message globally or to a specific user. A set of TCP/IP-related commands is also available.
The ability to intermix the Windows console commands, like those above, and Linux/UNIX commands in the same program is the result of Cygwin's integration with Windows. Jointly, these commands, tools, Linux/UNIX programs and shell scripts may be used to manage a Windows platform. I did have to play a little with escapes and quotations to get the Windows commands to execute properly from within bash scripts.
Several open-source Internet d<\#230>mons are included in the Cygwin product. telnetd and ftpd are examples of the included inetd d<\#230>mons. Capabilities such as rlogin are also provided. Combined, these tools make it possible to do system administration of Windows platforms remotely. Some inetd d<\#230>mons duplicate Windows commands. I kept getting a syntax error on a couple of commands, until I used “which” to learn the command's real location. A slight change in Windows pathing corrected my syntax problem.
Most administrators have a favorite scripting language and set of power tools. Cygwin scripting languages include bash, ksh and tcsh. Power tools such as Perl, Tcl/Tk, awk and sed are included. I also found both the vim and xemacs editors. I got a strange behavior with xemacs, though. The xemacs file-open menu option caused a dialog box to appear momentarily. All other xemacs menu options seemed to behave normally, as did the traditional Ctrl keyboard commands.
Cygwin does not automatically build a POSIX-compliant directory structure. Therefore, the library you need may be in a different location. I had to make pathing edits to a couple of the supplied awk scripts. Constructing a POSIX directory structure and properly linking to directories should reduce pathing edits.
Cygwin contains eleven GNUPro tools optimized for Intel Pentium processors. These tools include GNUPro compilers, linkers, assembler and comparison tools. The Cygnus Insight Visual debugging tool is also included in the package. Insight was formerly known as GDBTk. Figure 1 is a screen capture of the Insight debugger's Source Window. The October 1999 issue of Linux Journal contains a review of GDBTk.
Cygwin may be used to develop both console and GUI-based applications. The cygwin.dll portability library makes it possible to write and compile Windows applications with GNU tools. This library also supports the ability to port Linux/UNIX open-source projects to Windows. A sizable subset of UNIX SVR4, BSD and POSIX APIs have been integrated into Cygwin. These APIs make it possible to develop traditional Linux/UNIX programs on a Windows platform. Combined, these features and tools provide a standard Linux/UNIX GNU development environment on a Windows platform.
Using Cygwin to compile a console-mode C application on a 300MHz Pentium II with 64MB of RAM produced a timely response. A couple of Perl and awk scripts also performed well.
Simwin.c contains code for a simple no-frills window. Compiling from the command line performed well. Issuing the simwin.exe command at the bash shell prompt caused the sample window to appear on the desktop as though it belonged there (see Figure 2). Resource files and DLLs are required to compile more robust Windows applications. Cygwin includes the capability to use custom resource and DLL files. The documentation briefly highlights building and linking to DLL and resource files. I am not a Windows developer, therefore, I was not able to exercise some of Cygwin's Windows compiling features seriously.
The documentation says Cygwin uses standard Windows APIs. According to the documentation, use of standard Windows APIs means Cygwin will keep functioning whenever Windows is upgraded to the next release.
As with the other Cygnus tools, Cygwin is under the GPL. Be sure to review the various licensing terms and conditions before distributing your applications. All programs or applications developed with these tools must be open source. This does not mean you can never use the tools to develop commercial applications, however. Contact Cygnus for information regarding licensing if you want to do commercial work.
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Sponsored by AMD
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
| Designing Electronics with Linux | May 22, 2013 |
| Dynamic DNS—an Object Lesson in Problem Solving | May 21, 2013 |
| Using Salt Stack and Vagrant for Drupal Development | May 20, 2013 |
| Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
| Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
| Home, My Backup Data Center | May 13, 2013 |
- New Products
- Linux Systems Administrator
- Senior Perl Developer
- Technical Support Rep
- UX Designer
- Web & UI Developer (JavaScript & j Query)
- Designing Electronics with Linux
- Dynamic DNS—an Object Lesson in Problem Solving
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Using Salt Stack and Vagrant for Drupal Development
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi

It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Featured Jobs
| Linux Systems Administrator | Houston and Austin, Texas | Host Gator |
| Senior Perl Developer | Austin, Texas | Host Gator |
| Technical Support Rep | Houston and Austin, Texas | Host Gator |
| UX Designer | Austin, Texas | Host Gator |
| Web & UI Developer (JavaScript & j Query) | Austin, Texas | Host Gator |
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?







2 hours 14 min ago
2 hours 31 min ago
4 hours 22 min ago
10 hours 14 min ago
14 hours 45 min ago
14 hours 46 min ago
16 hours 46 min ago
1 day 1 hour ago
1 day 2 hours ago
1 day 3 hours ago