I'm a long-time user of Cygwin. I'm running Win7/x64, but my Cygwin installation is 32-bit. At the time I installed it, 64-bit version was considered experimental. Now the Cygwin website lists 32-bit and 64-bit versions on their website without any special mentions or recommendations on which one to use.
As a programmer, my experience is: unless specifically designed for capabilities of 64-bit CPUs, very few applications can get any gains by being recompiled for a 64-bit CPU. They might use more memory, though, since each memory pointer now uses 8 bytes rather than 4.
So, my question is: is there any benefit to choose 64-bit Cygwin over 32-bit ones? Should I upgrade my 32-bit installation sooner or later?
Performance/memory benchmark results for common usage patterns (e.g. running common UNIX commands, particular shell scripts etc.) would be very welcome.
If you've upgraded your 32-bit Cygwin to 64-bit, please tell your story - was the upgrade worth it?
EDIT: I've been using 64-bit Cygwin for a while now, and haven't really noticed any differences - good or bad - from the 32-bit version.
Cygwin — A UNIX environment for the Windows Operating System. IMPORTANT NOTE: Cygwin is available in both a 32-bit version and a 64-bit version. If you have a 64-bit operating system (most of us do!) then you may use either version of Cygwin for this course.
Cygwin is a collection of open source tools that allows Unix or Linux applications to be compiled and run on a Microsoft Windows operating system (OS) from within a Linux-like interface. Cygwin offers users a Linux-like experience in a Windows environment.
Installation Steps Choose a download site. "http://mirrors.kernel.org" is a good choice. "http://cygwin.mirrors.hoobly.com" is another good one, in Pennsyvania. The next screen allows you to choose packages.
Cygwin is still relevant if you wish to have native *nix commands available to you on the Windows platform.
After running 32-bit Cygwin at work for a number of years, I recently upgraded to 64-bit. It was quite painless as you can run the two installations side-by-side. For me, there was no noticeable difference in performance though I did not run any benchmarks. The biggest gain for me in upgrading was starting with a new fresh install without any of the cruft that built up over the last few years.
The one disadvantage that I had when running 32-bit Cygwin was that the WoW64 subsystem filesystem redirector silently redirects 32-bit applications. This has the result that running ls /cygdrive/c/Windows/System32/
in 32-bit Cygwin doesn’t actually display the contents of %WINDIR%\System32
, but instead %WINDIR%\SysWOW64
. Attempts to access files in the %WINDIR%\System32
directory, e.g., ls /cygdrive/c/Windows/System32/nbtstat.exe
fail with the error message:
ls: cannot access /cygdrive/c/Windows/System32/nbtstat.exe: No such file or directory
This means that Windows commands installed in %WINDIR%\System32
such as nbtstat
and dnscmd
aren’t available without modifying the PATH
. The work-around for accessing 64-bit Windows files was that the %SystemRoot%\sysnative
pseudo-directory had to be used, e.g., to run the nbtstat
command, use /cygdrive/c/Windows/Sysnative/nbtstat
.
WoW64 (Windows 32-bit on Windows 64-bit) is a subsystem capable of running 32-bit applications. It is included on all 64-bit versions of Windows and creates a 32-bit environment to run unmodified 32-bit applications on a 64-bit system using DLLs to provide the necessary interfaces.
Windows uses the
%SystemRoot%\system32
directory for its 64-bit library and executable files. This is done for backward compatibility reasons, as many legacy applications are hardcoded to use that path. When executing 32-bit applications, WoW64 transparently redirects 32-bit DLLs toSystemRoot%\SysWoW64
, which contains 32-bit libraries and executables.32-bit applications are generally not aware that they are running on a 64-bit operating system. 32-bit applications can access
%SystemRoot%\System32
through the pseudo directory%SystemRoot%\sysnative
.
For 64-bit applications (such as Windows Command Prompt, cmd.exe) there’s no filesystem redirection:
See also: File System Redirection
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With