Jacob's CHAOS (Computer Hardware And Original Software)

Free Operating Systems

These operating systems are all freely downloadable, and most make the source code available for modification and education. I am only familiar with the various Linux distributions and FreeBSD. Both of which make excellent servers, and are becoming nice desktop environments. I am currently using both for my personal servers.
For the every day user who doesn't want to know how their computer works, I recommend sticking with windows for now. If you don't mind doing a little bit of work to get your system up and running, and if you don't mind learning new applications. By all means try Linux and FreeBSD. If you have an application that only requires MS DOS 3.x you may want to give FreeDOS a try. If you just want to try something new try running GNU HURD or AtheOS.

Free Compilers

These compilers are all freely downloadable, and most make the source code available for modification and education. I am only familiar with GCC (GNU Compiler Collection), djgpp (DJ Delorie's C++ compiler), and cygwin (Cygnus' win32 port of GCC). I use GCC for all of my C/C++ *nix work, and I have to admit I still use MS VC++ for all of my windows work. I've become accustom to it's quirks.