I still find your question confusing, but from the way the question is asked I can see you are trying to transition from a Linux system to Windows and want to retain Linux/UNIX-like functionality.
Well, here is what 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.
... and what is 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 source if you want to take advantage of Cygwin functionality.
Advantages and disadvantages of using Cygwin are all dependent on what product or usage you are trying to compare to. From the description, as Cygwin is in essence a toolset, you gain the advantages of having the tools inbedded within Cygwin. The main disadvantage, if you could call it like that, is that the disk gets slightly more full, since you've installed a toolset.
Although I never used extensively Cygwin, as it doesn't uninstall anything, cmd
and bash
contained in Cygwin should operate separately. As such, you can use bash
alongside cmd
, although you should stick to a single command line.
It is near impossible (unless considering virtualization) to install an OS over another without rendering the first useless. As such, no GNU systems, in the sense of Operating Systems, have been made that work alongside another OS. This being said, Cygwin comes close, as it proves you in an Windows environment, most tools Unix has to offer.
(On a side note, I still think your question is confusing, particularly the POSIX part. Windows (not NTFS) and some versions of Linux aren't full POSIX compatible, and as you didn't refer what particular functions of POSIX you wanted to use, I'm stumped in this regard)