I understand why someone wouldn't like to use cygwin, but why new project?
MSYS/mingw-get are active projects that provide a good base to build upon. Why not helping improve it? Unix tools on Windows is niche enough so that choice only leads to fragmentation, not competition.
This is exactly what I also thought when I read the headline. And this becomes even more strange given that they are almost certainly building upon using MinGW.
Cygwin is not perfect, but he's the thing that I prefer over other options.
It's unix emulator layer, and as such tries it's best to emulate fork() - which the other alternatives does not even think to put in.
VM is not a real alternative, as there is actually more work to be done to plumb source A with tools B from the VM.
I don't use cygwin from bash, but rather start it directly from the FAR manager (console based Norton Commander/Midnight Commander application for Windows). It's very useful, as a lot of commands just work.
Then there are others, which are some kind of symlink (one of the downsides of cygwin for me), but that's understandable. Symlinks as they are on linux are just starting to appear on Windows Vista and 7 (and I'm not even sure how compatible they are).
So for such cases, sh -c would work. For example checking out latest SDL using cygwin, but from the command-prompt:
c:\p\sdl> sh -c "hg pull -u"
And then other stuff works even better:
c:\p\libzmq> git pull -u
c:\p\libzmq> sh -c "gitk --all"
I find it strange that no one is mentioning UWIN[1], started by David Korn about the same time and with the same goals as Cygwin.
I used to use it. I liked the fact that it used the host compiler instead of gcc, plus I preferred the non-GNU tools.
Now I'm using Inferno, it works much better. It's not Unix, it's Plan9, but I view that as a plus. Of course cygwin can install all kinds of Unixy tools, like gcc, openssh, xterm and whatnot. Inferno doesn't come with anything, but I don't need anything except the basic Plan9 tools.
You run Inferno on top on Windows as an application? I have read that this is possible but I have never seen anyone doing this, not even in a screenshot. If so, what's your opinion of it as an environment?
(By the way, Inferno's implementation reminds me of Niklaus Wirth's Oberon, which could also run as either an application or as an operating system.)
I was about to ask the same question. MinGW is already the lightweight alternative to Cygwin, and has largely taken over for the task of compiling unixy things on Windows.
The major difference between MinGW and Cygwin is MinGW tries to use native Microsoft libs by dummy wrapping them (like, MS's libc is often compatible with POSIX standard stuff, the POSIX version merely starts with _ frequently, MinGW uses this fact).
Most stuff that won't compile "natively" on Windows through Visual C's compiler, those projects use MinGW, I never hear of anyone using Cygwin especially because of the requirement of shipping the Cygwin runtime dll (of which MinGW has none).
Even Strawberry Perl, the Perl distro for Windows, uses MinGW to compile XS perl modules from CPAN.
I recently decided to learn ed, as I felt it couldn't hurt to be familiar with it, and I was surprised to see that it wasn't installed in Arch Linux by default.
We really need to port Homebrew to Windows so that projects like this can be the base, but people can pull in packages on top of it, like a lightweight Cygwin but more Windows'y.
Does porting Homebrew make any more sense than porting something from Linux (for example)? My impression is that the Mac OS ones aren't as good.
A package manager really sounds like the sort of project where the incompatibilities between *nix and Windows are large enough that writing a new one would make more sense. I think there are even existing projects like that for Windows; I remember seeing one on HN a while back, but can't recall the name.
"apt-cyg is a command-line installer for Cygwin which cooperates with Cygwin Setup and uses the same repository. The syntax is similar to apt-get. Usage examples:"
"apt-cyg install <package names>" to install packages
"apt-cyg remove <package names>" to remove packages
"apt-cyg update" to update setup.ini
"apt-cyg show" to show installed packages
"apt-cyg find <pattern(s)>" to find packages matching patterns
"apt-cyg describe <pattern(s)>" to describe packages matching patterns
"apt-cyg packageof <commands or files>" to locate parent packages
pkgsrc already supports Windows Services for Unix, it may well work on top of this too (though I haven't looked at Gow yet and I honestly have no idea how it differs from MSYS).
But when I think "Unix-like core plus package management on Windows"... well, Cygwin is already there.
Well for a far more light weight solution there's GnuWin32 and GetGnuWin32 (which installs GnuWin32), both available via an easy Internet search. They both run from the command prompt and you don't need any other environment for them.
This is not an alternative to Cygwin, and shouldn't be called such.
Cygwin isn't a collection of binaries; that's a distribution. But the idea is to emulate UNIX, including fork(), etc., allowing you to easily recompile for Windows.
Would be good to have a standard ssh client similar to the ones in linux and other unixes. I use Cygwin mainly for that. I do not want to do putty -ssh ... and I want to copy my keys and other config in ~/.ssh. Like that I can "standardize" the way I setup my accounts on cygwin and linux. Without that it is kind of a big hassle
KpyM seems to do a decent job of providing SSH access to a cmd.exe prompt (and anything you care to run from one). It's free although the provided binaries do an annoying nagware thing on login. I've been using it for SCP access to Windows servers.
Semi-related: PowerShell Server, a commercial Windows SSH server with a free restricted license (notably a single connection and only password authentication):
1) if you want to program in "gnu", run unx, and if you want Windows as your host OS, run virtualization;
(yes, you need 8G, yes, you should have an SSD, if you don't, buy a new laptop for $700 and run linux native)
Being able to use a real shell with all the tools I'm used to when developing on Windows.
Cygwin in combination with MinGW and the Windows native version of GVim lets me have almost exactly the same environment as I do on Linux and Mac OS X.
Using Unix utilities (including Unix paths and forking semantics) on your Windows system. I regularly use Unix utilities to e.g. manage Windows processes; frequently, when a game crashes and leaves me with a blank screen, I can blindly alt-tab to a terminal and 'killall foogame', or if it's worse, ssh in.
I use Cygwin to get approximately the same terminal environment in Windows as I do in Solaris, Linux and Mac. I have a suite of scripts to massage platform differences (e.g. Cygwin getclip / putclip vs xclip vs pbcopy / pbpaste, or cygstart vs open vs gnome-open / xdg-open / etc.). It means that in the terminal environment, I'm equally at home no matter what the OS.
I run Cygwin in rxvt. Using a better terminal than a Windows command window is a must; until I started using rxvt, I didn't even live in bash. Rxvt / bash combo uses considerably less memory, less startup time and less disk space - my dual-boot macbook air has Cygwin installed in the Windows 7 partition.
Half-decent interop between the unix-y bits and the Win32 native bits.
e.g., you might want to have a mostly unix-style build process that uses VC++ as the C compiler, and run it all inside Visual Studio using a makefile project.
I work at a company that currently provides a 32bit version of Windows 7 (the reasons are somewhat unclear.) But the bottom line is that we have the 3gb max addressable memory problem. When I have eclipse, outlook, chrome, various other dev tools and whatnot open, I'm often near the limit, and adding VMWare player or whatnot would probably be too much. So that's one reason... Plus, I find switching back and forth between a vm and the host OS still somewhat slow/clumsy.
(Yes, I know I should get a new job...)
I like the idea of Gow. Anyone know if you can achieve middle mouse button pasting as when you have X11 under cygwin?
I'm a UNIX and Mac OS X transplant using Windows for embedded hardware development (almost all the tools are Windows-only).
I need a terminal from which I can operate on my Windows file system, but running an entire virtual machine is enormous performance-impacting overkill.
[+] [-] markokocic|14 years ago|reply
MSYS/mingw-get are active projects that provide a good base to build upon. Why not helping improve it? Unix tools on Windows is niche enough so that choice only leads to fragmentation, not competition.
[+] [-] vog|14 years ago|reply
[+] [-] malkia|14 years ago|reply
It's unix emulator layer, and as such tries it's best to emulate fork() - which the other alternatives does not even think to put in.
VM is not a real alternative, as there is actually more work to be done to plumb source A with tools B from the VM.
I don't use cygwin from bash, but rather start it directly from the FAR manager (console based Norton Commander/Midnight Commander application for Windows). It's very useful, as a lot of commands just work.
Then there are others, which are some kind of symlink (one of the downsides of cygwin for me), but that's understandable. Symlinks as they are on linux are just starting to appear on Windows Vista and 7 (and I'm not even sure how compatible they are).
So for such cases, sh -c would work. For example checking out latest SDL using cygwin, but from the command-prompt:
c:\p\sdl> sh -c "hg pull -u"
And then other stuff works even better:
c:\p\libzmq> git pull -u c:\p\libzmq> sh -c "gitk --all"
[+] [-] ComputerGuru|14 years ago|reply
http://neosmart.net/blog/2006/vista-symlinks-revisited/
And an open source (MIT) binary-compatible implementation of ln for Windows Vista+ using native WIN32 APIs:
http://neosmart.net/blog/2011/open-source-100-compatible-ln-...
disclosure: my site
[+] [-] 4ad|14 years ago|reply
I used to use it. I liked the fact that it used the host compiler instead of gcc, plus I preferred the non-GNU tools.
Now I'm using Inferno, it works much better. It's not Unix, it's Plan9, but I view that as a plus. Of course cygwin can install all kinds of Unixy tools, like gcc, openssh, xterm and whatnot. Inferno doesn't come with anything, but I don't need anything except the basic Plan9 tools.
[1] http://www2.research.att.com/~gsf/download/uwin/uwin.html
[+] [-] RexRollman|14 years ago|reply
(By the way, Inferno's implementation reminds me of Niklaus Wirth's Oberon, which could also run as either an application or as an operating system.)
[+] [-] chrisballinger|14 years ago|reply
[+] [-] DiabloD3|14 years ago|reply
The major difference between MinGW and Cygwin is MinGW tries to use native Microsoft libs by dummy wrapping them (like, MS's libc is often compatible with POSIX standard stuff, the POSIX version merely starts with _ frequently, MinGW uses this fact).
Most stuff that won't compile "natively" on Windows through Visual C's compiler, those projects use MinGW, I never hear of anyone using Cygwin especially because of the requirement of shipping the Cygwin runtime dll (of which MinGW has none).
Even Strawberry Perl, the Perl distro for Windows, uses MinGW to compile XS perl modules from CPAN.
[+] [-] ez77|14 years ago|reply
[1] https://github.com/bmatzelle/gow/wiki/executables_list
[+] [-] joshu|14 years ago|reply
[+] [-] william42|14 years ago|reply
[+] [-] RexRollman|14 years ago|reply
[+] [-] xpaulbettsx|14 years ago|reply
[+] [-] tikhonj|14 years ago|reply
A package manager really sounds like the sort of project where the incompatibilities between *nix and Windows are large enough that writing a new one would make more sense. I think there are even existing projects like that for Windows; I remember seeing one on HN a while back, but can't recall the name.
[+] [-] xer0|14 years ago|reply
"apt-cyg is a command-line installer for Cygwin which cooperates with Cygwin Setup and uses the same repository. The syntax is similar to apt-get. Usage examples:"
[+] [-] Niten|14 years ago|reply
But when I think "Unix-like core plus package management on Windows"... well, Cygwin is already there.
[+] [-] daemin|14 years ago|reply
[+] [-] snotrockets|14 years ago|reply
Cygwin isn't a collection of binaries; that's a distribution. But the idea is to emulate UNIX, including fork(), etc., allowing you to easily recompile for Windows.
[+] [-] zoobert|14 years ago|reply
[+] [-] guan|14 years ago|reply
[+] [-] andrewf|14 years ago|reply
http://www.kpym.com/2/kpym/index.htm
[+] [-] j_s|14 years ago|reply
http://www.powershellinside.com/powershell/ssh/
[+] [-] buu700|14 years ago|reply
[+] [-] unknown|14 years ago|reply
[deleted]
[+] [-] niyazpk|14 years ago|reply
[+] [-] bbulkow|14 years ago|reply
1) if you want to program in "gnu", run unx, and if you want Windows as your host OS, run virtualization; (yes, you need 8G, yes, you should have an SSD, if you don't, buy a new laptop for $700 and run linux native)
2) if you want a better command line, There's lighter weight ways like http://unxutils.sourceforge.net/ http://gnuwin32.sourceforge.net/packages/coreutils.htm ... and a set of binaries I found 5 years ago that seem to have vanished, works OK for me.
[+] [-] mhartl|14 years ago|reply
[+] [-] ams6110|14 years ago|reply
[+] [-] swah|14 years ago|reply
[+] [-] elmindreda|14 years ago|reply
Cygwin in combination with MinGW and the Windows native version of GVim lets me have almost exactly the same environment as I do on Linux and Mac OS X.
[+] [-] barrkel|14 years ago|reply
I use Cygwin to get approximately the same terminal environment in Windows as I do in Solaris, Linux and Mac. I have a suite of scripts to massage platform differences (e.g. Cygwin getclip / putclip vs xclip vs pbcopy / pbpaste, or cygstart vs open vs gnome-open / xdg-open / etc.). It means that in the terminal environment, I'm equally at home no matter what the OS.
I run Cygwin in rxvt. Using a better terminal than a Windows command window is a must; until I started using rxvt, I didn't even live in bash. Rxvt / bash combo uses considerably less memory, less startup time and less disk space - my dual-boot macbook air has Cygwin installed in the Windows 7 partition.
[+] [-] to3m|14 years ago|reply
e.g., you might want to have a mostly unix-style build process that uses VC++ as the C compiler, and run it all inside Visual Studio using a makefile project.
[+] [-] RexRollman|14 years ago|reply
[+] [-] icebraining|14 years ago|reply
[1]: http://www.andlinux.org/
[+] [-] DanHulton|14 years ago|reply
[+] [-] ez77|14 years ago|reply
[+] [-] msluyter|14 years ago|reply
(Yes, I know I should get a new job...)
I like the idea of Gow. Anyone know if you can achieve middle mouse button pasting as when you have X11 under cygwin?
[+] [-] nupark2|14 years ago|reply
I need a terminal from which I can operate on my Windows file system, but running an entire virtual machine is enormous performance-impacting overkill.
[+] [-] nalbyuites|14 years ago|reply
[+] [-] Vivtek|14 years ago|reply
[+] [-] charliesome|14 years ago|reply
[+] [-] zem|14 years ago|reply
[+] [-] keshet|14 years ago|reply
[+] [-] 4ad|14 years ago|reply
[+] [-] nobodyzzz|14 years ago|reply
[+] [-] tommica|14 years ago|reply
[+] [-] earl|14 years ago|reply
I kid, I kid...
[+] [-] jurjenh|14 years ago|reply
[+] [-] swah|14 years ago|reply