Wednesday, March 21, 2012

With SUA being deprecated in Windows 8, time to look again at other options...

With SUA, aka "Subsystem for Unix based Applications," being deprecated (i.e. marked for death, likely not being included in a future Windows version, etc), it's a good time to look at the other options available, many that have been around for a while and have a very loyal and thriving community. For example...

The Windows Club - Cygwin : UNIX shell for Windows

"Cygwin is a free application that provides a UNIX like environment on Windows operating system. Cygwin consists of UNIX system call libraries along with many GNU application. Compilers, development tools, development tool kits, GNU emacs, TeX and LaTeX, OpenSSH (client and server), and much more are packed into different modules which can be downloaded and used on your Windows PC.

Cygwin Overview

Cygwin acts as an emulation layer providing substantial POSIX (Portable Operating System Interface) system call functionality, and a collection of tools, which provide a Linux look and feel. With Cygwin installed, users have access to many standard UNIX utilities. Cygwin can help you execute all the UNIX commands on Windows PC which is always a concern for developers, specially the developers working on Linux servers.

Cygwin’s POSIX compatibility does not mesh well with the native Windows API. If you mix POSIX calls with Windows calls in your program it is possible that you will see uneven results. In particular, Cygwin signals will not work with Windows functions which accept filenames may be confused by Cygwin’s support for long filenames.

In this article I will be talking of its installation and listing some of the common features of Cygwin also the native UNIX tasks that can be done on Windows PC using this application.



This is the home of the Cygwin project

What... it?

Cygwin is:

  • a collection of tools which provide a Linux look and feel environment for Windows.
  • a DLL (cygwin1.dll) which acts as a Linux API layer providing substantial Linux API functionality.

...isn't it?

Cygwin is not:

  • a way to run native Linux apps on Windows. You must rebuild your application from source if you want it to run on Windows.
  • a way to magically make native Windows apps aware of UNIX®functionality like signals, ptys, etc. Again, you need to build your apps from sourceif you want to take advantage of Cygwin functionality.

The Cygwin DLL currently works with all recent, commercially released x86 32 bit and 64 bit versions of Windows, with the exception of Windows CE and Windows NT4.

For more information see the FAQ.


And what I find coolest is that Cygwin is OSS... :)


Related Past Post XRef:
“Utilities and SDK for Subsystem for UNIX-based Applications” Updated for Windows 7, Windows Server 2008 R2
Subsytem for Unix (SUA) Utilities and SDK For Windows 2008 and Vista SP1
Windows Services for UNIX 3.5 Downloads


Pulu said...

I'm a Unix hacker with almost 0 experience on Windows, and I'd never heard of the SUA/SFU before. The thought that there is such a thing totally blows my mind.

I've been fooling with Windows 8 recently, and actually think it's quite nice. Shame that they are getting rid - I have tried Cygwin but I think it's horrible.

Anonymous said...

I'm not sure why you'd want to run Cygwin on windows (I have with several versions over the past decade, and it has numerous quirks and challenges due to the windows semantics).

Since W8 is such a departure from legacy windows (W7 and before) perhaps now is the time to entertain migrating to Linux, BSD, or Macs instead of W8, and stop worrying about how to shoe horn the desired OS semantics (UNIX) into an inherently incompatible system.

Greg Duncan said...

I've used SUA in the past for some of the features it has that Windows doesn't... Just one example, long path support, paths greater than 255 characters. SUA has utilities to help me with those and Windows does not...

It's not something I use everyday, but...

Anonymous said...

I've used SUA, Cygwin and MinGW, and i could say that depending of what you want to do all are good and none of them, SUA comes with Windows, is easy to install and is more less compatible; Cygwin is the best when you want to "Emulate" a *nix enviroment (and por some *nix utilities/program to Windows, as long as they're Open Source); MinGW is the best when you want to program in Windows using the GNU compilers and are not worried by the slight incompatibility with some standard tools.

Anonymous said...

I've used cygwin constantly for the last ten years or so, in order to get a devent shell on Windows. In recent years, I've even used it to get a (sonmewhat) usable X server running on Windows.

(sa)MAMMON said...

Check out GOW too (gnu on windows). Many pros and cons as compared to cygwin. You can't install as much, but the basic tools are there. They are natively compiled (no dependency on the cygwin.dll). It's incredibly small and installs in seconds. I use it on all our windows servers at work, for basic shell scripting and command line goodness.

Anonymous said...

VirtualBox and Ubuntu. 'nuf said