Both Windows and Linux come in many flavors. All the flavors of Windows come from Microsoft; the various distributions of Linux come from different companies.
Windows has two main lines. The older flavors are referred to as "Win9x" and consist of Windows 95, 98, 98SE and Me. The newer flavors are referred to as "NT class" and consist of Windows NT3, NT4, 2000, XP and Vista. Going back in time, Windows 3.x preceded Windows 95 by a few years. And before that, there were earlier versions of Windows, but they were not popular. Microsoft no longer supports Windows NT3, NT4, all the 9x versions and of course anything older. Support for Windows 2000 is partial.
The flavors of Linux are referred to as distributions (often shortened to "distros"). All the Linux distributions released around the same time frame will use the same kernel (the guts of the Operating System). They differ in the add-on software provided, GUI, install process, price, documentation and technical support. Both Linux and Windows come in desktop and server editions.
Graphical User Interface
Both Linux and Windows provide a GUI and a command line interface. The Windows GUI has changed from Windows 3.1 to Windows 95 (drastically) to Windows 2000 (slightly) to Windows XP (fairly large) and is slated to change again with the next version of Windows, the one that will replace XP. Windows XP has a themes feature that offers some customization of the look and feel of the GUI. Linux typically provides two GUIs, KDE and Gnome.
Text Mode Interface
This is also known as a command interpreter. Windows users sometimes call it a DOS prompt. Linux users refer to it as a shell. Each version of Windows has a single command interpreter, but the different flavors of Windows have different interpreters. In general, the command interpreters in the Windows 9x series are very similar to each other and the NT class versions of Windows (NT, 2000, XP) also have similar command interpreters. There are however differences between a Windows 9x command interpreter and one in an NT class flavor of Windows. Linux, like all versions of Unix, supports multiple command interpreters, but it usually uses one called BASH (Bourne Again Shell). Others are the Korn shell, the Bourne shell, ash and the C shell (pun, no doubt, intended).
Cost
For desktop or home use, Linux is very cheap or free, Windows is expensive. For server use, Linux is very cheap compared to Windows. Microsoft allows a single copy of Windows to be used on only one computer. Starting with Windows XP, they use software to enforce this rule (Windows Product Activation at first, later Genuine Windows). In contrast, once you have purchased Linux, you can run it on any number of computers for no additional charge.
Running OS without Installing It
One thing that Linux can do that Windows can not, is run from a CD. To run Windows, it has to first be installed to your hard disk. Normally Linux also runs from a hard disk, but there are quite a few versions of Linux that run completely from a CD without having to be installed to a hard disk. The term for this is a "Live" CD.
If Windows is broken to the point that it can't start up, there is a free program called Bart's Preinstalled Environment (BartPE) that can run a few Windows programs from a bootable CD. However, this is not from Microsoft and is only intended to fix a broken copy of Windows; it is not for everyday use. BartPE can only run a handful of programs that have been set up ahead of time for use with it. BartPE fills an important need, but creating the CD is not trivial, it requires a Windows CD (not recovery CDs or DVDs) and it only works with Windows XP and 2003 (not sure about Vista). The main point stands, in and of itself, Windows can not run from a CD.
Security
The vast majority of malicious software (of all types) runs on Windows. I don't know the actual percentages, but it wouldn't surprise me if it was 98% or so. Windows users are burdened with the need for anti-virus and anti-spyware software. Linux users are not.
Linux [has] ... the notion of an administrative (root) user that maintains and operates the system, and desktop users who only run the software on the system, is completely ingrained in most Linux distributions. Now it's true that many Linux users ignore these features and run all their software from a root-level account anyway, but that's a choice that they've made. The system defaults to protecting the operating system components from its user's actions (intentional or otherwise). That feature alone must account in large degree for the dearth of viruses and other malicious vermin on Linux and UNIX platforms. Windows, on the other hand, started life as a single user system, with that single user being all-powerful. Although that's no longer the case, the general attitude can still be found in many Windows-based software products - many of which just can't be installed and/or run properly without desktop administrator privileges. This is all changing for the better, but it took Microsoft far too long to adopt this default-secure configuration practice.
Bugs
All software has and will have bugs (programming mistakes). Linux has a reputation for fewer bugs than Windows, but it certainly has its fair share. This is a difficult thing to judge and finding an impartial source on this subject is also difficult.
Supported Hardware Devices
While Linux itself runs on many more computers than Windows, when it comes to hardware peripherals, many work with Windows but not with Linux. The hardware vendors write drivers for Windows more often than they do for Linux. Market share and all that. Some hardware vendors will release technical specs so that someone in the Linux community can write a driver for the device, but other vendors aren't so open minded.
Hardware the OS runs on
Linux runs on many different hardware platforms, not so with Windows. For example, Windows NT used to run on MIPS CPUs until Microsoft changed their mind. It also used to run on Alpha CPUs, again, until Microsoft changed their mind. No one gets to change their mind with Linux. It runs on a very wide range of computers, from the lowest of the low to the highest of the high. The supported range of computers is all but stunning.
File Systems
Windows uses FAT12, FAT16, FAT32 and/or NTFS with NTFS almost always being the best choice. The FATx file systems are older and have assorted limitations on file and partition size that make them problematical in the current environment. Linux also has a number of its own native file systems. The default file system for Linux used to be ext2, now it is typically ext3. Other supported file systems includes XFS, JFS, JFFS and Reiser3. Reiser4 is in development.
User Data
Windows allows programs to store user information (files and settings) anywhere. This makes it impossibly hard to backup user data files and settings and to switch to a new computer. In contrast, Linux stores all user data in the home directory making it much easier to migrate from an old computer to a new one. If home directories are segregated in their own partition, you can even upgrade from one version of Linux to another without having to migrate user data and settings.