| |||
PhysioToolkit
|
Advanced Search |
Tour |
Mirrors How to Cite | Contributing | FAQ |
||
| |||
Contents |
What is Cygwin?Cygwin is free software that provides a Unix-like environment and software tool set to users of any modern version of MS-Windows for x86 CPUs (95/98/NT/2000/ME/XP). Cygwin consists of a Unix system call emulation library, cygwin1.dll, together with a vast set of GNU and other free software applications organized into a large number of optional packages. Among these packages are high-quality compilers and other software development tools, a complete X11 development toolkit, GNU emacs, TeX and LaTeX, OpenSSH (client and server), and much more, including everything needed to compile and use PhysioToolkit software under MS-Windows. Cygwin does not provide a means for running GNU/Linux or other Unix binary executables under MS-Windows. In order to run such software using Cygwin, that software must be compiled from its sources. Cygwin provides all of the components needed to do this in most cases; most POSIX-compliant software, including X11 applications, can easily be ported to MS-Windows using Cygwin. This page is provided as a service to help PhysioNet users and others get started using Cygwin. PhysioNet and the author are unaffiliated with the Cygwin project and cannot assist users in installing and using Cygwin. For general assistance on Cygwin beyond what is included here, please use the resources listed at the end of the page. |
Installing Cygwin begins with downloading and running the Cygwin installer (setup.exe), which is a small application that allows you to choose:
If you have at least 5 Gb free disk space (half of which can be reclaimed after installation), you may choose to perform a full installation of Cygwin with all of its optional packages. This choice is recommended for those who prefer to work in a Unix or GNU/Linux environment but who are constrained to work under MS-Windows. A full installation provides a large subset of the software provided as standard components of a typical GNU/Linux distribution. Allow at least an hour to perform a full installation if you have a fast Internet connection, more otherwise.
If you wish only to compile and use existing software under MS-Windows, you may choose a custom installation of Cygwin, consisting of the Base package and a few optional packages listed below; this choice requires less than 1 Gb, and proportionately less time than a full installation. A minimal installation may be upgraded easily at a later time, by following the same procedure as for initial installation. Packages that have previously been installed will not be changed unless newer versions have become available and you choose to install them.
When the installation is complete, the Cygwin root directory will resemble that of a typical Unix or GNU/Linux system, with subdirectories bin (applications and DLLs), etc (configuration files), home (containing a subdirectory for each Windows user registered on your system), lib (static libraries), tmp (temporary files), usr (containing additional software), var (log files), and (depending on the optional packages you choose) perhaps other directories as well. The later sections of this page (Using Cygwin and Using Cygwin/X) describe how to access the software once it has been installed.
Install Cygwin now! |
![[Cygwin installer]](setup-1.png)
![[Choose A Download Source]](setup-2.png)
![[Select Root Install Directory]](setup-3.png)
Don't change the default text file type ("Unix").
![[Select Local Package Directory]](setup-4.png)
![[Cygwin installer]](setup-5.png)
![[Cygwin installer]](setup-6.png)
![[Cygwin installer]](setup-7.png)
![[Cygwin installer]](setup-8.png)
To select a package for installation, click on its rotating selector (in the
New column) to cycle through the available choices until a version
number appears. In most cases, you should choose the highest version number
from those that are available (this is usually the first alternative offered).
![[Cygwin installer]](setup-9.png)
In the example below, the sunrpc package, version 4.0-2, has been
selected for installation. Note that the entry in the Bi... (Binary)
column changes from n/a to a checked box when you select a numbered version of
the package. Leave this box checked. The entry in the Sr... (Source)
column changes from n/a to an unchecked box, which you may check if you would
also like to download the sources for the package.
![[Cygwin installer]](setup-10.png)
If you plan to use PhysioToolkit software, be sure to choose at least the
following packages for installation:
![[Cygwin installer]](setup-11.png)
Be patient; the downloading and installation process may take an hour or more
(depending not only on the speed of your Internet connection, but also on the
load on the Cygwin mirror site from which you are downloading).
![[Cygwin installer]](setup-12.png)
![[Cygwin installer]](setup-13.png)
![[Cygwin installer]](setup-14.png)
![[Cygwin installer]](setup-15.png)
You may always run Cygwin setup again to obtain additional or updated packages
without reinstalling packages that remain current; if you do this, be sure to
shut down any running Cygwin applications first.
Using Cygwin
As noted, Cygwin provides a Unix-like environment under Windows. The
installation directory (by default, c:\cygwin) is the root of
the Unix-like file system, which contains bin, etc,
home, tmp, and usr directories as would be found
on a GNU/Linux or other Unix system. Within home will be one or
more subdirectories, each allocated to a Windows user.
To begin, click on the Cygwin desktop icon, or choose the Cygwin entry from your start menu, to open a Cygwin terminal window. Within this window, the GNU bash shell is running, with POSIX syntax (directory separators are '/', not '\'). Initially, the current (working) directory is /home/user, where user is your Windows login name. Don't use this directory if your Windows login name contains a space; make another and use that one instead, e.g., by typing these commands at the bash prompt:
mkdir /home/bob
echo "export HOME=/home/bob" >>.bashrc
echo "export HOME=/home/bob" >>.bash_profile
cp .bashrc .bash_profile /home/bob
echo "cd" >>.bashrc
Close your Cygwin terminal window and open another one; your current directory
should now be /home/bob (or whatever you chose to call it). See the
Cygwin FAQ (look for
"My Windows logon name has a space in it") for other solutions to this common
problem.
Pathnames of files are often confusing to new Cygwin users. A pathname is simply a set of directions for finding a file. An absolute pathname begins at a fixed location (the root of the file system). The confusion arises because native Windows programs use c:\ as their root, and Cygwin programs use c:\cygwin (unless you chose some other place to install Cygwin).
This means, for example, that a file created using a Cygwin program as /home/bob/foo.txt can be read using a native Windows program as c:\cygwin\home\bob\foo.txt (the two pathnames refer to the same disk file).
If you need to use a Cygwin program to read or write a file located outside of c:\cygwin, you can use a pathname beginning with /cygdrive/c/ for this purpose. For example, a native Windows file called c:\My Documents\hello.c can be found by a Cygwin program at /cygdrive/c/My\ Documents/hello.c (note how the space character in "My Documents" must be prefixed by "\" to force it to be treated as part of the pathname). If you have a Windows d: drive, use /cygdrive/d/ in the same way to access its contents from Cygwin programs.
Unix/Linux files occasionally have names that differ only in case (a frequent
example is makefile and Makefile). Be careful: although
Windows does preserve the original case of characters in filenames, it ignores
case when looking for matches to file names. So, for example, if you write
a file called baz.zip and then another called Baz.zip, the
first one will be overwritten. This behavior might be no surprise to Windows
users, but it may be unexpected to Unix users.
Using Cygwin/X
The X Window System, version 11 (often "X11", or simply "X") is the standard graphical environment under Unix and GNU/Linux; it is also available for other platforms, including Mac OS X and MS-Windows. X applications ("clients") exchange data with an X server (another application). The X server receives and interprets instructions from the clients for displaying the clients' windows, and it collects and transmits keyboard and mouse input events to the clients. The xorg packages available with Cygwin (collectively, "Cygwin/X") provide a high-quality X server (XWin), a large set of standard X clients, and a complete set of development tools that can be used to compile X clients that run under MS-Windows.
Important: X clients cannot run unless they can connect to a running X server. The X server must be started first. When you use Cygwin/X, the X server runs on your PC, under MS-Windows. Once the X server is running, you can launch and interact with X clients on your PC or on any other networked computer (which can be running MS-Windows, GNU/Linux, Mac OS X, Unix, or any other OS that can run X client software).
The X server, XWin, can be launched in several ways. One of these is by running c:\cygwin\usr\X11R6\bin\startxwin.bat (you may wish to create a desktop shortcut to this batch file so that you can launch the X server by clicking on its icon). Another way to launch the X server is by running the command startx in a Cygwin window.
When you launch the X server, it starts an xterm (terminal emulator)
client:
![[xterm]](using-x-1.png)
Within this window, just as in a Cygwin terminal window, you are running the
GNU bash shell. An important difference is that you can launch other
X clients from an xterm without additional preparation.
You can access xterm's menus by pressing and holding the Ctrl key while clicking the left, middle, or right mouse buttons. Use these menus to enable the scrollbar (as shown in the screen shot above) or to change the character size, among other possibilities.
While the X server is running, its icon ("X") appears in the Windows system tray (see above). You can click on this icon to force the X server to exit, but doing so will also force any X clients to exit; normally you should exit from all X clients before stopping the server.
Since the X server is a complete window system, it has a "root" (background)
window on which X clients' windows are displayed. By default, XWin runs in
"rootless" mode, in which its root window is invisible, allowing the
MS-Windows desktop and application windows to be visible, and allowing the
X clients' windows to be moved, resized, closed, and reopened using the same
methods as for native MS-Windows applications.
Further Reading
Readers who are familiar with GNU/Linux or Unix may not need much more information than what is given above to begin using Cygwin productively. The environment is so Unix-like that it's easy to forget that it is all running under MS-Windows. The Cygwin project documentation highlights the important differences between Cygwin and other Unix(-like) environments.
Those who are new to Unix may find the additional resources listed below to be helpful while they are becoming familiar with the Unix way of doing things, which is quite different from the MS-Windows model. Almost anything you learn while using Cygwin is directly transferrable to GNU/Linux. If your experience encourages you to make the leap to GNU/Linux, you might want to start with a live CD distribution such as Knoppix, which allows you to run a full GNU/Linux distribution without writing anything to your hard disk.
| Send feedback about this page to PhysioNet |
|
Your comments and suggestions are welcome. We encourage you to use our feedback form to comment on this page. If you would like to receive a reply, please send your comments by email to webmaster@physionet.org, or post them to: MIT Room E25-505A 77 Massachusetts Avenue Cambridge, MA 02139 USA |
![]() |
Updated Wednesday, 27-Feb-2008 19:22:56 EST