Linux vs. Windows Server? — A question that has been debated endlessly by system administrators and server hosting clients since the dawn of the web. We’re clear where we stand: for most purposes, Linux is the right choice. Windows Server is a secure, flexible, and powerful server operating system, but our heart is with Linux.
The ServerMania team has worked with Linux since the company was founded in 2002. We have proudly watched as thousands of our clients have built successful businesses on our Linux-based server hosting. Our dedicated server, cloud server, and hybrid server plans run on a variety of Linux distributions, including CentOS, Debian, Fedora, and Ubuntu (as well as Windows Server 2008).
So we’re biased, but we also think that there are many excellent reasons that Linux distributions are the preeminent server operating systems.
(If you’re wondering why we’re using the term Linux and not GNU/ Linux, take a look at our explanation at the end of the article.)
Linux’s Security Advantages
Security is a contentious issue where the Linux vs. Windows debate is concerned. There are partisans on both sides who claim their favorite operating system is more secure. Both can present a long list of reasons that support their claim.
In reality there is no simple answer to the question of which is more secure. It’s a complex multi-dimensional issue, but for security, we choose Linux for the following reasons.
As a Unix-derived operating system, Linux’s multi-user model is secure by default. It’s difficult in the extreme for an attacker to sneak malware onto a Linux server and have it execute with root permissions. Not impossible, but difficult. When a Linux server is infected with malware, it’s usually due to either an egregious security error or a software vulnerability that hasn’t been patched.
The Linux kernel and the utilities and applications that comprise distributions are developed by open source communities. Now, being open source doesn’t make a project immune to bugs and security vulnerabilities. But it does mean they’re likely to be discovered, disclosed, and patched more quickly. Proprietary software may be secure or it may not: it’s almost impossible for anyone outside of the company to tell — and for obvious reasons it may be in their interest to keep quiet.
Both Linux and Windows Server can be made secure by competent server administrators, but Linux has the edge.
Linux Advantages for System Administrators
Traditionally, system and server administrators spent many hours configuring, tweaking, and optimizing their servers. Some still do, but since the advent of containers and disposable cloud servers, most of the configuration happens up-front, before the server is deployed. In both cases, we prefer Linux because of its sublimely powerful command line and the vast array of tools that are available to Linux system administrators.
Almost all Linux system administration takes place on the command line. Much of the command line’s power derives from what’s been called the Unix philosophy, which states that tools should do one thing and do it well.
The GNU tools and others are designed so that output from one tool can be piped into other tools, which means system administrators can tie them together to perform novel tasks that couldn’t have been foreseen by the original developers.
The command line encourages memorization and a deep understanding of the system and its behavior — qualities we believe are essential to efficient and productive system administration.
Windows Server does offer a command line interface, but it’s neither as rich nor as deep as the Linux command line. Windows Server does, however, offer a comprehensive GUI for system administration tasks, making it easier for the inexperienced and those who prefer to point and click.
Linux Advantages for Developers
The vast majority of websites and web applications are hosted on Linux servers — largely because of the many advantages we’re discussing in this article. The more conservative Linux operating systems like CentOS are stable and long-lived, providing the ideal platform for developers who want to focus on building their applications and sites, and not on managing their servers.
But does that mean Linux is the right choice for a development environment? Of course, you don’t have to develop on Linux to deploy on Linux, but it makes life easier to work in the same environment that you’ll eventually deploy to.
Linux puts a powerful set of tools at your fingertips. Whether you’re developing in PHP, Node.js, Python, Perl, Ruby, Elixir, Haskell, and most other languages outside of the Microsoft ecosystem, Linux has the tools you need — all of which can be integrated with the native command line tools.
Linux is also the ideal production environment for developers who prefer to use Macs. MacOS is a Unix-based operating system, and package managers like Homebrew allow developers to quickly install the same tools on their Mac as on their Linux production environment.
Since I’m already writing about a topic that provokes strong feelings, I’m going to steer well clear of the editor wars, except to point out that developers will find Vi installed on every Linux server, and Vim, Emacs, Nano, and a plethora of other programmer’s text editors are only a command away.
Windows Server is available in several versions, but the only real difference between them is their license, feature and usage restrictions. Linux is really only the kernel of the operating system. To be useful, the kernel must be integrated into an operating system that comprises system programs, utilities, tools, and applications. There are many different ways to put all the components together, and so there are many different distributions.
For the most part, server hosting clients opt for generalist distributions targeted for the server. The most popular of these are Red Hat Enterprise Linux and its free derivative CentOS, Ubuntu Server, Arch (my particular favorite), and Debian. But there are literally hundreds of distributions to choose,from, all with a slightly different spin on the installed packages, the package manager, and release schedules.
There are also many specialist distributions that include tools and applications curated for particular use cases. CloudLinux is a specialist distribution targeting shared hosting providers. SUSE Linux Enterprise Server For Big Data is optimized for big data applications. CoreOS is a tiny distribution perfect for containers.
The point is this: there is a Linux distribution optimized for any server hosting scenario. And even if there weren’t, it’s not difficult to take a general distribution and tailor it for your particular needs. Linux-based operating systems are just as flexible as you need them to be.
Linux is Free as in Beer
Most of today’s Linux users won’t remember how refreshing it was to be able to use a Unix operating system without paying licensing fees to the Unix old-guard. It’s sometimes frowned on to talk about Linux’s being gratis as a major benefit of the platform, but there’s no denying that the lack of licensing fees and restrictions has made a huge difference to the lives of millions of people.
Anyone can download a distribution and learn how to manage a server. Most of the web and system developers working today learned their craft using free Linux operating systems and developer tools. They didn’t have to pay a license fee or enroll in expensive professional training courses. Most of the web runs on Linux, and the educational opportunities Linux provides shouldn’t be forgotten.
And of course, there are other practical consequences to Linux being free. Cloud platform users can spin up as many Linux-based servers as they need without worrying about whether they have a license for the operating system. Startups can deploy an enterprise-grade OS without paying through the nose. Web hosting providers use CentOS because they don’t need the support that comes with RHEL. Free open source software powers is an economic multiplier that powers innovation.
Advantages of Open Source
Linux is open source, as is the majority of tools and applications that are used with Linux. That means Linux distributions, with some notable exceptions, are free as in beer and free as in speech. It’ll cost you nothing to use a Linux distribution and you’re free to use it in any way you like.
The term open source is typically applied to two different but related things: open source licenses and the open source development methodology. There are many open source licenses with subtly different terms, but the most important is the GNU Public License (GPL), the license under which the Linux kernel and the majority of related software is released.
Created by Richard Stallman, the genius behind the GNU project, the GPL ensures that software is free and that it stays free, that the code is open to inspection, and that no one can take that code and benefit from it without returning their changes to the community.
The open source development methodology is, in a nutshell, development in the open. If you head on over to the Linux code repository, you can read the code that is Linux. If you have the developer chops, you can contribute to the kernel. Most of us never will, but there are security, code quality, and freedom implications to qualified individuals being able to do so.
Open source software is typically developed by a community that forms around a project. There is often a community leader who sets policy and has the final say — Linus Torvalds in this case. But the community and others can scrutinize the code and the choices the project makes. We can all see how the sausage is made and make decisions based on what we see.
To be clear, there is nothing wrong with proprietary software like Windows Server. Microsoft is one of the most prolific contributors to Linux and is a big player in the open source world — something we can all be grateful for. I love my iPhone and I don’t think making it open source would improve it much. I use closed-source proprietary applications every day. But when it comes to my server operating system and the tools I install on it, I want to stand on the shoulders of a community of developers whose priority is the best interests of the community and the software it uses.
Linux as a Game Server
Linux and gaming have not always been the best of friends, but many of the most popular games house their server component on a Linux-based server. With a powerful dedicated server, it’s possible to run a large number of sessions for the most popular games on the market, including Team Fortress 2, and Half Life 2: Deathmatch.
When Is Linux the Wrong Choice
As we’ve been at pains to make clear, Windows Server is a fine server operating system. We prefer Linux but there are scenarios in which Windows Server is the right choice.
Most obviously, if you have to use software like ASP, ASP.NET, MSSQL, MS ACCESS, or Visual Basic development tools, Windows Server is required.
It might also be the case that you or your server administrator are familiar with Windows Server and the Microsoft ecosystem and don’t want to invest any time in learning to use Linux. Making the pragmatic choice may well be what’s best for your business.
Linux: What’s in a Name?
Linux is an operating system kernel created by Linus Torvalds. It’s not very useful on its own, and much of the software that makes it useful comes from the GNU project. In the spirit of fairness, many would argue that GNU/Linux is the proper term. It’s a noble battle but one that has largely been lost. Most people know GNU/Linux as Linux, and while we acknowledge our great debt to the GNU project, we respectfully use the the synecdoche “Linux”.
We believe that for most server hosting scenarios, Linux is the best choice for server administrators, developers, and startups. If you’d like to talk to one of our Linux experts about cloud server, dedicated server, or hybrid server hosting, don’t hesitate to get in touch.