I have a Windows 7 laptop and I need UNIX/LINUX for an application. I have run across Cygwin which creates a UNIX 'shell' so that you can run software that requires this on your PC. One of the applications recommend FreeBSD which requires Virtual PC and to be installed as a guest OS. I am trying to figure out the pros and cons and which I should go with. I don't think I would need both since they seem to do the same thing.
I recommend VirtualBox + Ubuntu or Linux Mint over FreeBSD. VBox has better Linux/Unix support than VirtualPC, and Linux has better integration with VBox than FreeBSD. Ubuntu & Linux Mint are nice, easy to work with distros.
Cygwin is a collection of recompiled tools typically found in a linux system plus a DLL (cygwin1.dll) that provides a compatibility layer between those tools and the underlying Windows OS.
Cygwin cannot just run any POSIX program you want. You have recompile that software from scratch and it's a non-trivial thing to do. Chances of success running
./configure; make; make install for any random bit of POSIX software, under Cygwin, are pretty low. That being said: they have a pretty extensive list of precompiled software in their repository you can pull from and a very active developer list you can ask questions on if you really want to go this route. But if you aren't comfortable working with source (and really, you'll be in deep working out dependency issues and header problems to make it compile...been there, have the scars) then building an app from source for Cygwin is not for you.
FreeBSD is, as you pointed out, a complete operating system. It's not a compatibility layer on top an OS. You'll have a much higher rate of success building things from source against it because it's a primary platform for most applications. Whereas building for Cygwin is rarely part of the plans for an app developer and therefore rarely every supported by build systems that applications ship with (Gnu configure and make for example).
Agreeing with what Ian C wrote, let me say that if the mysterious "application" you require is not something already available with Cygwin, you're better off using a virtual OS like FreeBSD. However, one point he didn't make: Cygwin apps will tend to be much faster than running that application in a virtual OS, particularly if you don't use a "bare metal" hypervisor like Xen or HyperV.
NOTE: I used the word "mysterious" because it would be easier to help you if you just named the application.