Microsoft's Monopoly
At this time, Microsoft owns an operating system monopoly with its line of Windows operating systems. UNIX, however, is an alternate OS mainly used by ... er, computer geeks. It's been out for many years and features a small kernel with all programs built around the kernel. This is different from Windows, where programs are virtually added to the kernel resulting in "bloatware". Linux is a recent off-spring of the UNIX design, and features many of the same commands as its predecessor.
While one currently requires a special UNIX-based computer, such as a Sun machine, to run UNIX, Linux can run on virtually any x86-based PC. (Such as your home computer.) This is definitely a plus for this operating system.
Open Source
While the biggest difference between UNIX and Windows is that the default UNIX mode is in a terminal or shell text-based window, where the user enters text commands rather than interacting with a GUI (graphical user interface), there is, actually, an even larger difference. The biggest difference between UNIX and Windows is that UNIX is completely open-source. In other words, all programs written for it, as well as the operating system, itself, were created by people from all over the world adding their own bits and pieces to it. All of the source code (in a multitude of computer languages) are all freely distributed so that other programmers could enhance the code and redistribute it.
The main reason for this hype about the UNIX operating system is its dominant role in computer science. Virtually all major web servers on the internet, for example, are running Apache, a UNIX-based http server. UNIX is also the origin for the web's interactive CGI scripts, often written in the Perl language (although C++ cgis do exist.)
Linux At Home
As previously said, Linux is the popular home-based version of UNIX. What adds to its splendor is that because source code is available for virtually every part of it, it is truly 100% customizable. To add to this ability, various distributions, or flavors, of Linux are available. Some popular distributions are Red Hat Linux, SuSe Linux, and Debian Linux.
Linux runs nicely dual booted with Windows on a PC. However, if this is not an option, a viable alternative is to install WinLinux, or another version of Linux which runs almost like a DOS program. However, such versions are often relatively unstable and do not allow you to unleash the true power of Linux.
XWindows
While UNIX and Linux are, theoretically, entirely text based, XWindows does exist. This is almost like a GUI face for behind-the-scenes applications which can be run. As Linux becomes more and more popular, and not only computer gurus begin to use it, this relatively new graphical user interface for Linux has been developed. XWindows allows Linux to be a more viable alternative to Windows, as a whole.
Brief C++ History
Perhaps one of the main reasons why C++ goes so nicely with UNIX is its history. The C language, the predecessor to C++, was developed at Bell Labs at the exact same time (early 1970s) as the UNIX operating system was being developed there. In 1983, Bjarne Strustoup at Bell Labs created the C++ language specifically for the UNIX environment.
UNIX File Structure
UNIX has specific commands which must be entered by the user to tell the computer what to do. In other words, how to handle files and how the computer, itself, should act.
The UNIX file system is similar to that of Windows in that they both consisit of a hierarchal structure of files and folders. Folders, or directories, consist of files. Both folders as well as files can exist at the same level. In UNIX, the root directory is simply the / directory. All fiels and folders must be encompassed within this main directory. Of course, sub-directories may contain other sub-directories, as well, within them.
The following outlines some of the main UNIX commands which are needed to make your way through the operating system's file structure.
UNIX Commands
../ represents one directory higher
pwd tells your current directory location
ls list the contents of a directory
mkdir dirName make a new directory dirName
cd dirName go into the directory dirName
more fileName view the text-based file fileName
cp file1 file2 copy the contents of file1 to file2
mv file1 file2 move file1 to file2
rm fileName delete the file fileName
It should be noted that the preceeding commands can be used from any location within the directory structure, so long as the file and directory names you specify are relative to where you currently are.