I have been around the Linux community for more than 10 years now. From the very beginning, I have known that there are basic differences between Linux and Windows that will always set them apart. This is not to say one is better than the other; it's just to say that they are fundamentally different.
Many people, looking from the view of one operating system or the other, don't quite get the differences between these two powerhouses. So I decided it might be useful to list 10 of the primary differences between Linux and Windows.
1. Full access vs no access
Having access to the source code is probably the single most significant difference between Linux and Windows. The fact that Linux belongs to the GNU Public License ensures that users (of all sorts) can access (and alter) the code to the very kernel that serves as the foundation of the Linux operating system. You want to peer at the Windows code? Good luck. Unless you are a member of a very select (and elite, to many) group, you will never lay eyes on code making up the Windows operating system.
You can look at this from both sides of the fence. Some say giving the public access to the code opens the operating system (and the software that runs on top of it) to malicious developers who will take advantage of any weakness they find. Others say having full access to the code helps bring about faster improvements and bug fixes to keep those malicious developers from being able to bring the system down.
I have, on occasion, dipped into the code of one Linux application or another, and when all was said and done, was happy with the results. Could I have done that with a closed-source Windows application? No.
2. Licensing freedom vs licensing restrictions
Along with access comes the difference between the licenses. I'm sure every IT professional could go on and on about licensing of PC software. But let's just look at the key aspect of the licenses (without getting into legalese).
With a Linux GPL-licensed operating system, you are free to modify that software and use and even republish or sell it (so long as you make the code available). Also, with the GPL, you can download a single copy of a Linux distribution (or application) and install it on as many machines as you like. With the Microsoft license, you can do none of the above. You are bound to the number of licenses you purchase, so if you purchase 10 licenses, you can legally install that operating system (or application) on only 10 machines.
3. Online peer support vs paid helpdesk support
This is one issue where most companies turn their backs on Linux. But it's really not necessary. With Linux, you have the support of a huge community via forums, online search, and plenty of dedicated websites. And of course, if you feel the need, you can purchase support contracts from some of the bigger Linux companies (Red Hat and Novell, for instance).
However, when you use the peer support inherent in Linux, you do take a chance with time. You could have an issue with something, send out email to a mailing list or post on a forum, and within 10 minutes be flooded with suggestions. Or these suggestions could take hours or days to come in. It seems all up to chance sometimes.
Yet generally speaking, most problems with Linux have been encountered and documented, so the chances are good you'll find your solution fairly quickly.
On the other side of the coin is support for Windows. You can go the same route with Microsoft and depend upon your peers for solutions: there are just as many help sites/lists/forums for Windows as there are for Linux. And you can purchase support from Microsoft itself.
Most corporate higher-ups easily fall victim to the safety net that having a support contract brings. But most higher-ups haven't had to depend up on said support contract. Of the various people I know who have used...either a Linux paid support contract or a Microsoft paid support contract, I can't say one was more pleased than the other. This raises the question: 'Why do so many say Microsoft support is superior to Linux paid support?'
4. Full vs partial hardware support
One issue that is slowly becoming nonexistent is hardware support. Years ago, if you wanted to install Linux on a machine you had to make sure you hand-picked each piece of hardware or your installation would not work 100 percent. I can remember, back in 1997-ish, trying to figure out why I couldn't get Caldera Linux or Red Hat Linux to see my modem.
After much looking around, I found I was the proud owner of a Winmodem. So I had to go out and purchase a US Robotics external modem because that was the one modem I knew would work.
This is not so much the case now. You can grab a PC (or laptop) and most likely get one or more Linux distributions to install and work nearly 100 percent. But there are still some exceptions; for instance, hibernate/suspend remains a problem with many laptops, although it has come a long way.
With Windows, you know that pretty much every piece of hardware will work with the operating system. Of course, there are times (and I have experienced this over and over) when you will wind up spending much of the day searching for the correct drivers for that piece of hardware you no longer have the install disk for.
But you can go out and buy a cheap Ethernet card and know it will work on your machine (as long as you have, or can find, the drivers).
You also can rest assured that when you purchase that insanely powerful graphics card, you will probably be able to take full advantage of its power.
5. Command line vs no command line
No matter how far the Linux operating system has come and how amazing the desktop environment becomes, the command line will always be an invaluable tool for administration purposes. Nothing will ever replace my favorite text-based editor, ssh, and any given command-line tool. I can't imagine administering a Linux machine without the command line.
But for the end user, this is not necessarily the case. You could use a Linux machine for years and never touch the command line. Same with Windows. You can still use the command line with Windows, but not nearly to the extent as with Linux. And Microsoft tends to obfuscate the command prompt from users. Without going to Run and entering cmd (or command, or whichever it is these days), the user won't even know the command-line tool exists. And if a user does get the Windows command line up and running, how useful is it really?
6. Centralized vs non-centralized application installation
With Linux you have (with nearly every distribution) a centralized location where you can search for, add or remove software. I'm talking about package management systems, such as Synaptic. With Synaptic, you can open up one tool, search for an application (or group of applications), and install that application without having to do any web searching (or purchasing). Windows has nothing like this. With Windows, you must know where to find the software you want to install, download the software (or put the CD into your machine), and run setup.exe or install.exe with a simple double-click. For many years, it was thought that installing applications on Windows was far easier than on Linux. And for many years, that thought was right on target. Not so much now. Installation under Linux is simple, painless and centralized.
7. Flexibility vs rigidity
I always compare Linux (especially the desktop) and Windows to a room where the floor and ceiling are either movable or not. With Linux, you have a room where the floor and ceiling can be raised or lowered, at will, as high or low as you want to make them. With Windows, that floor and ceiling are immovable. You can't go further than Microsoft has deemed it necessary to go. Take, for instance, the desktop. Unless you are willing to pay for and install a third-party application that can alter the desktop appearance, with Windows you are stuck with what Microsoft has declared...is the ideal desktop for you. With Linux, you can pretty much make your desktop look and feel exactly how you want/need. You can have as much or as little on your desktop as you want. From simple flat Fluxbox to a full-blown 3D Compiz experience, the Linux desktop is as flexible an environment as there is on a computer.
8. Fanboys vs corporate types
I wanted to add this because even though Linux has reached well beyond its school-project roots, Linux users can be soapbox-dwelling fanatics who are quick to spout off about why you should be choosing Linux over Windows. I am guilty of this on a daily basis (I try hard to recruit new fanboys/girls), and it's a badge I wear proudly.
Of course, this is seen as less than professional by some. After all, why would something worthy of a corporate environment have or need cheerleaders? Shouldn't the software sell itself?
Because of the open-source nature of Linux, it has to make do without the help of the marketing budgets and deep pockets of Microsoft. With that comes the need for fans to help spread the word. And word of mouth is the best friend of Linux.
Some see the fanaticism as the same college-level hoorah that keeps Linux in the basements for LUG meetings and science projects, but I beg to differ. Another company, thanks to the phenomenon of a simple music player and phone, has fallen into the same fanboy fanaticism, and yet that company's image has not been besmirched because of that fanaticism.
Windows does not have these same fans. Instead, Windows has a league of paper-certified administrators who believe the hype when they hear the misrepresented market-share numbers reassuring them they will be employable until the end of time.
9. Automated vs nonautomated removable media
I remember the days of old when you had to mount your floppy to use it and unmount it to remove it. Well, those times are drawing to a close — though not completely.
One issue that plagues new Linux users is how removable media is used. The idea of having to manually 'mount' a CD drive to access the contents of a CD is completely foreign to new users.
There is a reason this is the way it is. Because Linux has always been a multi-user platform, it was thought that forcing a user to mount a media to use it would keep the user's files from being overwritten by another user. Think about it: on a multi-user system, if everyone had instant access to a disk that had been inserted, what would stop them from deleting or overwriting a file you had just added to the media?
Things have now evolved to the point where Linux subsystems are set up so that you can use a removable device in the same way you use them in Windows, but it's not the norm. And besides, who doesn't want to manually edit the /etc/fstab file?
10. Multilayered run levels vs single-layered run level
I couldn't figure out how best to title this point, so I went with a description. What I'm talking about is Linux's inherent ability to stop at different run levels.
With this, you can work from either the command line (run level 3) or the GUI (run level 5). This can really save your bacon when X Windows is playing up and you need to figure out the problem. You can do this by booting into run level 3, logging in as root, and finding/fixing the problem.
With Windows, you're lucky to get to a command line via safe mode--and then you may or may not have the tools you need to fix the problem. In Linux, even in run level 3, you can still get and install a tool to help you out (hello apt-get install APPLICATION via the command line).
Having different run levels is helpful in another way. Say the machine in question is a web or mail server. You want to give it all the memory you have, so you don't want the machine to boot into run level 5. However, there are times when you do want the GUI for administrative purposes (even though you can fully administer a Linux server from the command line). Because you can run the startx command from the command line at run level 3, you can still start up X Windows and have your GUI as well. With Windows, you are stuck at the Graphical run level unless you hit a serious problem.