Книга: Embedded Linux development using Eclipse
2.5.1 Cygwin
2.5.1 Cygwin
Cygwin is described as a “Linux-like environment” for Windows. It was originally developed in 1995 by Cygnus Solutions, which was subsequently purchased by Red Hat. Red Hat now maintains both the open source version and a licensable, proprietary version for people who want to maintain their own applications as proprietary.
Cygwin consists of two basic parts:
• A Windows DLL (cygwin1.dll) that acts as a Linux API emulation layerproviding substantial Linux API functionality.
• A collection of tools that provide Linux look-and-feel. Among these tools is the GNU tool chain.
The primary motivation for Cygwin is to provide Unix/Linux functionality in a Windows environment, but it is not a way to run native Linux apps under Windows. Applications must be rebuilt from source to run in the Cygwin environment.
Nevertheless, it can be a useful tool for experimenting with C development with Eclipse under Windows. Note, however, that to build code for an embedded target, you will need a build of the GNU tool chain that supports your target processor. Many chip and board vendors provide Linux-based tool chains for their architectures, but rarely offer the tool chain built for Cygwin. So you will likely be on your own to build the target tool chain.
Another perceived drawback to Cygwin, for desktop applications anyway, is that the cygwin1.dll
is released under the GPL. This means that anything that links with it, i.e., an application, is considered a “derivative work” and must itself be released under the GPL. On the other hand, this wouldn’t be a problem for an embedded application intended for a target that runs real Linux. It is widely accepted that a Linux application running in user space and using only the published kernel APIs is not a derivative work.
Another nice feature of Cygwin is that it happens to include NFS and TFTP servers.