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.
This is really great - I was setting up rsync and ssh on my parents computer a couple days ago as part of a backup system. I was having a problem with rsync hanging on a 2GB pst file, but the new cygwin brings rsync up to date, and whatdoya know... it works! Now my openbsd box happily backs up their stuff!
Its handy if you have to run windows at work but you need unix services.
http://michaelsmith.id.au
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:
Let's be honest -- whether Linux or BSD is ready for the desktop, ready for the laptop is something slightly lacking, and I mostly have laptops these days. I couldn't take it anymore with Linux or BSD on my laptop, so I bought Vista. Of course, I can't live without a command line, because that's what I'm used to. I remembered having used Cygwin years ago, back in the Win95 days, and so I tried to give it ago.
No dice -- it doesn't really integrate with the rest of the system very well, I find. Maybe I'm just not doing it right, but whatever. Then I gave up and grabbed SFU off of Microsoft's website. It was OK, but not really stellar. It's more for running batch jobs and giving something to code against than for interactive use, same as Cygwin I guess.
Eventually I got so pissed sick of it all that I just bought a MacBook Pro so that I could have a Unix-ish environment without having to worry about power management or weird wifi issues that I'd had with Fedora, CentOS, Ubuntu, Slackware, ZenWalk, Mint, FreeBSD, OpenBSD and PC-BSD on the Toshiba hardware.
So, I guess my question is -- is Cygwin meant for interactive use, or just to give the POSIX API and build environment so you can see whether or not your code will compile against a Unix machine? Because it seems like they've been putting an awful lot of effort into this for a very long time for it to suck so bad if its meant to be an interactive method of accessing a Windows machine by Unix commands.
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.
The people who run Slashdot are not religious.
The largest prime factor of my UID is 263267.
+1 orc
And I have mod point I could have applied.
-- I have a private email server in my basement.
It works well using WINE.
upon the advice of my lawyer, i have no sig at this time
What are you nerds doing still working??
Isn't there some kind of /. Santa tracker or something??
Oh wait a minute. Slashdot is run by Jews. That explains everything.
Marduk has them all on a short leash.
I know it sounds stupid but I hate the Cygwin icon, it looks like a Windows 3.1 app.
Yay me! ^^
This does not take into account his advanced distribution network, planetary time dilation field generator, and bag of infinite holding.
With those tools in place, every present can be delivered in what would appear to be a fraction of a second to us. He doesn't do it all by himself. The "Santa Claus" image is actually a generalization of the appearance of an advanced species. They handle the delivery, assigned sectors based on population of "good" children. They stopped the "bad" children delivery of coal decades ago to optimize the delivery patterns.
The reindeer are a common question posed. They are not in fact reindeer. They the antigravity and propulsion systems, simply shaped to look like reindeer and a sleigh.
Did I mention that the entities known as "Santa Claus" is also not of this world, but brings happiness and joy to the juvenile population of the planet. It is, of course, a conspiracy where the children are being educated to be "good" obedient servants for when the harvesting time comes. When that happens, they will take the "good" children between the ages of 8 to 18, and put them to work on the alien masters ships.
I for one welcome our alien Santa Claus overlords. More over, I hereby request a ride off this rock.
Serious? Seriousness is well above my pay grade.
so his work load will be smaller and more manageable, and there are rumours that he's been cloned
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
Mintty. Available from http://mintty.googlecode.com/ or under 'Shells' in Cygwin's setup.exe.
What do you mean small subset, you can compile and install KDE and x.org on Cygwin. Pointless I agree, but most common place unix commandline stuff compiles and works on cygwin. I used to depend on cygwin to make life a bit more tolerable when I was still depending on windows laptops for development. There's something called puttycyg which is a fork of putty with some cygwin stuff compiled in that really improves the terminal experience (bash in a dos window kind of sucks).
I never noticed any performance issues. But then I don't do much performance critical work on the commandline. A few simple greps, ls and wc commands and the odd bash script to automate some stuff.
Jilles
Reindeer is redundant. The root rein is Scandinavian for 'reindeer', so reindeer translates to 'reindeer deer'.
rewriting history since 2109
I'm pretty sure the main purpose is for porting Unix applications to MS Windows, and/or for maintaining a common build environment for the two platforms. At least that is what I use it for. I actually compile with MinGW as the application itself have very few OS dependencies, Cygwin "just" provides the pure build environment.
I also used to use Cygwin/X11 to provide a Unix like interactive programming environment, but as the MS version of GNU Emacs is quite good these days, and GNU Emacs itself provide most of the common environment I need, I don't bother with that anymore.
Cygwin can't use the NT fork support, because it's implemented on top of Win32, and NT's fork does not support Win32 DLLs. Obviously that is a significant disadvantage, particularly during fork-heavy 'configure' runs, but there are also advantages that approach too, e.g. it allows things like /dev/clipboard for accessing the clipboard and /proc/registry for accessing the registry. It also means that Cygwin programs can mix POSIX and Win32 calls, so when porting from Unix to Windows you can take a gradual approach, or just port the UI only.
Yep, a scheme for keeping processes using different Cygwin DLLs out of each other's way has been implemented. Just don't expect them to interact with each other, e.g. you can't send signals from one Cygwin sandbox to another. That's why the best approach still is to have only one Cygwin DLL on your system.
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 ]
Now that they are dropping Win9x support, they can use NT kernel system calls to implement fork(), rather than the high-level Win32 calls. This might be a bit better. These are the same low-level calls used to implement fork() in the POSIX subsystem.
That said, it's much better to avoid using fork(). It isn't particularly efficient on any platform (and hasn't been since about 1975) and doesn't work on things like the Symbian POSIX layer. Use system() or popen() instead of fork() if at all possible. vfork() is implemented with setjmp()/longjmp() and system() in cygwin, so it's also reasonably fast.
I am TheRaven on Soylent News
Another im not sure you considered is running Cygwins X server and running xterm or some other X11 terminal emulator on windows. works well.
Good points about avoiding fork where possible. spawn() is another way to do that.
Now they'll let me put it on our production 2008 boxes. No more RDP to do every little thing!
I'm not talking about using a different subsystem, I'm talking about using the low-level NT system calls. The POSIX, OS/2 and Win32 subsystems are all implemented on top of the same core set of system calls. These are not well documented - they are not part of the public APIs - but they are compatible with all NT-series kernels and are exposed in a usable way via the Nt* family of calls. You can use them with any of the subsystems, because all of the subsystems are implemented in terms of them.
I am TheRaven on Soylent News
The Windows command interpreter sucks as a terminal program. What's a good alternative for use with Cygwin? I'd prefer Unicode support, so I don't see question marks on all non-ascii filenames.
Yes, but the Win32 loader - to take a single example - does not necessarily know how to handle copy-on-write pages logically (idata or bss) mapped in from DLLs, which is what would need to happen in a proper fork() scenario.
"Consider the task of converting a few thousand files from one format to another. The average Windows user will spend hours doing it by hand or spend a lot of money on a special purpose tool to do such conversions. If they're really smart, they may spend a lot of time and cobble something together in VisualBasic. That's the Windows way: slow, cumbersome, and expensive."
You mean there's a UNIX utility you can launch fom the command line that will convert a file from any arbitrary format to another arbitrary format without having to obtain a special purpose tool? What do they call it?
I am surprised that there are so many Cygwin haters out here. I install it on every Windows machine I own. Life would be very difficult without it. I did find the Windows command console that Cygwin uses, very limiting. Cut-n-paste is extremely painful. However I discovered puttycyg http://code.google.com/p/puttycyg/ that provides the putty interface for Cygwin. And now I don't have much to complain about.
For those talking about Services For Unix, does SFU provide all the tools (latest version of Subversion client/server, SSH client/server etc) that Cygwin provides? I don't think so.
Is SFU under continuous development, like Cygwin? I don't think so.
Cygwin is an excellent piece of software, specially when used with puttycyg.
It's a dog at performance, no doubt, but it was good enough even seven or eight years ago that I could compile a Radius server on it to serve dialup users coming in on a Cisco AS5200. Even being a bit slow, it beat the hell out of the shitty Radius server that came with Server 2000.
This is how I feel about a lot of MS "interoperability" stuff. It all seems semi-busted or only half-implemented. Yes, you can use the Posix userland, but not for much. Cygwin fills a major hole, the ability to use standard Unix tools like Bash, the GNU userland and even some daemon stuff on a Windows box.
The world's burning. Moped Jesus spotted on I50. Details at 11.
Except it was called 4DOS back in the 90s, and NDOS back in the 80s. It's a command-line that has seen over 20 yrs of development. It may be no bash, but in conjunction with cygwin, I can do a great deal of things that unix people can do on my windows machine. Which is my main reason for sticking with windows -- don't want to re-write my 1000+ scripts.
-Clio
Karma: Bad (mostly from not giving a fuck)
Blog: http://clintjcl.wordpress.com
I have many scripts that pipe from clip: ... Like my linkifier that automatically links terms I want linked. Suck my comment into clipboard, run linkifier, paste back out with links. 4NT > CMD.
-Clio
Karma: Bad (mostly from not giving a fuck)
Blog: http://clintjcl.wordpress.com
In your case, the other 5% would be adding an apostrophe, a comma, and a well timed tap on the shift key, and would have cost you another 300ms (apologies for that remark if you lost both pinkies in a wheat-field bailer accident).
In their case, as we all know, "the first ninety percent of the task takes ninety percent of the time, and the last ten percent takes the other ninety percent", so they're well into exponential innings already.
And finally, a tip of the hat to Corinna Vinschen, who answered my emails about problems with services under Cygwin as far back 2000. That's a long run shepherding the near-sighted stepchild into some semblance of functional adulthood.
I know many younger Linux people whose devotion to a software download rarely exceeds ten minutes if the first spin doesn't immediately express preconceived gratification mojo.
The source for 4DOS is available; it should be fairly easy to port it to Linux.
http://www.4dos.info/sources.htm
Now that they are dropping Win9x support, they can use NT kernel system calls to implement fork(), rather than the high-level Win32 calls. This might be a bit better.
It should be no surprise that most of the comments in this thread are rehashes of 12+ years of history of "Why don't they just do ...?"
We'll happily accept a patch which implements fork using low-level NT semantics since all of our efforts in finding the right sequence of calls to make this work have proved to be for naught.