The intention of this article is not to start a flame war. My intention, instead, is to help the lesser experienced webmaster choose the best hosting environment for his or her needs. A side benefit may be that a webmaster who is well versed in one but not the other can get a better idea of what’s cooking in the other’s camp.I would like to get my bias out in the open right from the get go. When given a choice, I tend toward using a Linux based hosting environment. I hope that this tendency is actually based on the needs of the types of projects I am usually involved with and not an emotional one. Either way, there it is. Out in the open for everyone to see. But enough about me. Let’s get to the good stuff.
- What were they thinking? (when they designed this OS)
Linux and Windows hosting environments get basically the same job done. But that’s not how it started. Being from opposite sides of the tracks they have always been fundamentally different.
- Linus’ Unix
Linus Torvalds wrote the Linux kernel, based on Unix, for the PC architecture and gave it away. Other developers started contributing until the OS was complete. These authors all had two things in common. They basically copied the way Unix functioned and they donated their time and code to the on line community. The end result was a free version of Unix that was available to anyone with an affordable (compared to machines that typically ran Unix) PC.
And it is this Unix based development process that made Linux such a great hosting platform. Linux wasn’t designed for aesthetics. It was created to run. Run apps or run servers. Mail Servers or Web Servers. And it did. For weeks, months, or even years of uptime. Apache, an open source web server, was often matched with Linux to provide a quick and effective Webserver.
- MS catches up
Microsoft didn’t get to where they are by being stupid. They created and marketed a series of GUI based operating systems that made computing easy. When the Internet started to become popular they wanted a piece of the webserver pie. Although they charged money for their software they were able to grab market share by creating server software that could be configured and administered via ‘point and click’. IIS (Internet Information Server) and Windows evolved to deliver basically all the same features available on the Linux based machines but with the familiar GUI face. It was this familiar mouse based configuration that allowed so many windows users to run their own web servers.
- Which Webserver?
Like so many things in life, there is no ‘Right’ answer. I’ll try to explain where each environment excels. The needs of the project will then help dictate which is the best choice.
- ‘Point and Click’ vs ‘mount -t iso9660 -r /dev/cdrom /mnt’
Windows and IIS require only the ability to use your mouse. Many of the steps necessary in setting up or configuring an IIS installation have MS Wizards to guide the first timer. Linux and Apache, however, aren’t always so easy to get to. Many Linux installations now include an open source GUI. Installation may be automated, but more complex configuration is going to require you to get your hands dirty with text based configuration files or cryptic Linux commands similar to the one in the bullet above. Many users without Linux or Unix experience will be intimidated by these command line based configuration techniques.
- I’m Free vs Pay to Play
Linux is free. Upgrades are free. Software patches are free. And with so many developers still looking for ways to improve Linux and Apache these upgrades and patches are developed quickly. Installation of these upgrades or patches, however, will require more than just a click on a web page.
Microsoft, like many of us, wants to get paid. Thats why they sell software. And they get paid to upgrade their software too. They don’t give away the source code which makes modifying an existing package near impossible. They do, however, provide help. By taking some money when the software is purchased they can pay some folks to answer phones and answer questions. And Microsoft can pay a bunch of other folks to make sure the software they sell doesn’t contain many bugs.
Using ‘Point and Click’ makes the initial IIS configuration simple. Configuring a small number of sites is relatively painless. Not so when the number of sites starts to escalate. Apache’s configuration files start to look like a better option when configuring hundreds of sites. With text based configuration the administrator can configure many sites by editing a single file.
Whether we are talking about a dedicated server or a single hosted website, there seems to be a common theme regarding access to the server. While I believe that the system administrator has total control over this, Linux systems seem to let us see more of what’s going on behind the scenes. Sometimes this doesn’t matter but sometime it does. A common example might be the ability to run a daily database backup. A Linux based system is more likely to allow the webmaster to schedule his or her own backup than a Windows based system.
The final step is to weigh the various points presented above and see which system seems a better fit. My experiences with both systems leads me to believe each has a place in this web world. I also believe that, based on the needs of the project and/or webmaster, one system is likely to be a better solution than the other.