Cygwin 1.7 Released
jensend writes "The 1.7 branch of Cygwin, the Unix-like environment for Windows, has reached stable status after about 3 1/2 years of effort. Among many other changes, this release drops support for Windows 9x. Since the NT API and NT-based versions of Windows are more capable and somewhat less of a mismatch with POSIX (for instance, they include a security model), this has allowed for code path simplifications, better performance (particularly noticeable with pipe I/O), better security, and better POSIX compatibility."
... Does it run under WINE?
Colorless green Cthulhu waits dreaming furiously.
Windows has had a POSIX layer of its own for awhile now, as "Services for Unix".
On the lighter-weight end, mingw can give you the basics, and they usually run much faster (even bash!) than Cygwin did. Maybe Cygwin is better now, it's just that I don't really see what it has over, well, any other way of running POSIX apps on Windows.
Don't thank God, thank a doctor!
Even after all these years, Microsoft has nothing equivalent to the UNIX command line. The standard cmd.exe is too limited, and Powershell isn't a good interactive shell, it's more like typing at a Python or Ruby interpreter. Cygwin makes doing anything on Windows marginally tolerable and I install it on any Windows machine I happen to use.
For a while, I've been using a modified version of Cygwin in order to get proper UTF-8 support. Does the new version finally integrate a similar feature?
love the search feature in setup.exe !! long overdue, but welcome nonetheless.
who actually uses this... it REQUIRES windows?
I know. I've been hoping for years they'll release a version for Linux, but they never do.
If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
Yes. From the announcement:
It used to be if I wanted to run some Linux code under Windows I'd have to have a Linux box nearby, boot into Linux, or deal with Cygwin. I've never really enjoyed using Cygwin it's a pain to use, maintain, work with, and code for. There are lots of subtle differences in how your code behaves when you go from Linux to Cygwin (for example, re-writing someone's entire program because they liked to use lots of mallocs and Cygwin mallocs are unbelievably slow).
At this point though you can either run VMware, get a full Linux distro, and have easier access to your local Windows files (via a local share) than Cygwin's fun mapping scheme (/cygdrive what now?). Or you can even run an EC2 instance. Cygwin was never painless enough to make it worth while to use, if I needed to do something in Linux I'd rather use a real Linux box.
I don't think most people really miss the command line utilities enough to want to go through the hassle of using Cygwin (I hate the install process btw)... but then again I don't like using Linux as my desktop. I'd rather just use Windows or OS X and ssh into my Linux clusters as needed.
It works well using WINE.
upon the advice of my lawyer, i have no sig at this time
Cygwin isn't meant to give you all the Linux or Windows system features, just provide a full-featured POSIX emulation layer (at its core, just one DLL), and programs compiled for that. You may still need to use Windows utilities to access Windows-specific features that have no POSIX implementation. However, the important thing is that it basically gives Unix developers a common platform, so anything developed for general Unix systems will compile on Cygwin's POSIX emulation layer.
Since Cygwin basically throws you into a command shell, it really does require an understanding of the fundamentals of Unix/Linux systems and how to work effectively in a shell. For example, I doubt many users of Slackware or NetBSD would have any substantial complaints about Cygwin. As someone who used Cygwin for years in a corporate environment where I could not use Linux, it was a godsend. I could spend my whole day working in Cygwin without having to mess with Windows development environments. Being able to throw together a bash script that uses grep, sed, awk, etc. is so nice for a stranded Linux user. However, many people do not learn the basic utilities anymore, even basic things such as customizing a login shell.
If there is a weak point in the Cygwin interactive experience, in my opinion it comes from the fact that the default Windows terminal program is used, which is slow and generally terrible compared to the modern Linux terminal apps. Maybe someday there will be a fast and full-featured replacement. But as it is, the Windows terminal is basically sluggish early 90's cruft that just isn't up to the task. Not a fault of Cygwin, but still a problem when running any such programs on Windows.
Systemd: the PulseAudio of init systems
Thank God for atheists!
rewriting history since 2109
Good post. Regarding the last point about the default console, Cygwin ships with a number of replacement terminals: (u)rxvt, xterm, mintty. Mintty in particular provides a native Windows interface with Unicode support and does not require an X server. More at http://mintty.googlecode.com/
since when does WINE run under cygwin?
It works both ways, although buggy and not fully functional.
And as reported by parent poster, this two redundant monsters are used as test cases to assist developers in perfecting both software stacks (by investigating said bugs and lack of functionality)
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
Good points about avoiding fork where possible. spawn() is another way to do that.
Console, a very nice application that has tabs, sane copy/paste functionality, and can be configured to launch bash or whatever you want. Not sure about Unicode.