I've used Cygwin in the past, mostly for the Unix like executables (i.e. grep, gcc, etc) and then for CodeBlocks IDE and compiling of postgreSQL on windows. It's really not a replacement for Linux, you will need to re-compile any linux program that you wish to run on it....
For linux, if you don't need a graphical user interface, any old computer will do (i.e. 386/486 w 64MB, 20GB drive, etc).