Cygwin is a popular complete POSIX emulation environment for Windows. Most of its tools can be used with Emacs, and it covers a wide range of ported software. The main shell used by Cygwin is GNU bash, but other shells are also available. Some Cygwin tools may not interoperate well with Emacs or other native Windows tools, due to the total immersion aspect of Cygwin, including its non-native filesystem mapping.
If you choose to use Cygwin, then its tools will probably be all that
you need, but you will need to get image libraries from elsewhere, as
the Cygwin ones are not compatible with non-Cygwin software. In fact,
if Cygwin is on your PATH when you run Emacs, and Emacs does not find
other versions of the image libraries first, then the Cygwin ones can
cause problems. Cygwin developers recommend that you do not put
Cygwin on your system PATH for this reason. Instead you can
make the Cygwin tools available within Emacs by setting exec-path
in your init file.
MinGW is a set of development tools that produce native Windows executables, not dependent on Cygwin's POSIX emulation DLLs.
MSYS is a POSIX shell and minimal set of tools that are commonly used in configure scripts. Like Cygwin, this environment uses a non-native filesystem mapping to appear more POSIX like to the scripts that it runs. This is intended to complement the MinGW tools to make it easier to port software to Windows.
http://www.research.att.com/sw/tools/uwin/
UWIN is another POSIX emulation environment, like Cygwin and MSYS, that provides a large number of ported tools. The shell used by UWIN is ksh, the Korn shell.
http://gnuwin32.sourceforge.net/
GnuWin32 provides precompiled native Windows ports of a wide selection of Free software and libraries. Tools available here that are useful for Emacs include:
archive-mode
to edit .arc files.
gnus
to display XFace headers in messages.
ediff
and producing patches
grep-find
and other file searches.
grep
.
archive-mode
to edit .lzh files.
compile
for building projects (also in MinGW)
gnus
to talk to servers over SSL.
ediff-patch-file
and others to apply patches.
tar-mode
to edit tar files.
archive-mode
for extracting zip files.
archive-mode
for editing zip files.
GTK is a potential source for some of the image libraries that Emacs requires. GTK is installed along with other ports of GUI software, such as the GIMP image editor, and Pidgin instant messenger client. If GTK is installed when you run addpm, Emacs will use the image libraries that it provides, even if they are not on the PATH. GTK ships with JPEG, PNG and TIFF support.
Man pages for Emacs and other ported programs that you have can be
read using Emacs' built-in manual reader woman
. This
requires no external programs, but if you do have a port of
man, there is also an Emacs wrapper man
that
which may be slightly faster.