< The X Window System >
Microsoft Windows is based on a graphical user interface (GUI for short) where you can control the apps by pointing and clicking. But Linux, just like Unix or MS-DOS, is completely text based. This means that everything in Linux can be done without any GUI, and it's a plus when using Linux, for example, as a server because the computer's resources aren't wasted in running a GUI. However, most of us normal home users want a pretty GUI where we can use graphical apps and point and click to our heart's content. So how do we get to the GUI?
Because Linux is text based, you run the GUI on top of it. In Unix the GUI is called X Window System or X for short. The term X Windows is also widely used, but it's technically incorrect. I personally use the incorrect term anyway, because it's short and handy, but keep in mind some Linux users avoid using the term X Windows.
The X Window System makes it possible to run graphical apps on Linux. X is responsible for the hardware related settings: it controls, for example, the mouse, keyboard, and the monitor settings like refresh rate and resolution. The graphical apps themselves don't need to care for the hardware they're running on. The apps just talk to X and tell it what they want to display. X listens to the apps and converts the apps' display commands into something that the graphics hardware can display. So, X makes it possible for the graphical apps to display their interface on the screen, but X doesn't control the windows where the apps are displayed.
The Linux version of X used to be XFree86, but these days, most newer distros use X.org. X.org is a fork of XFree86 that was created because of some licensing issues. So, if you want a GUI in Linux, you must run X.org on top of it. Most Linux users, including me, mean XFree86 or X.org when they say X Windows or X Window System, or just X.