

Linux has an extremely flexible architecture. Before Linux, most servers ran on UNIX, and before that, well, networking was in a very early and rudimentary stage.
When UNIX licensing shenanigans kept happening, Linux was a more and more attractive option as it matured.
Today, Linux is an incredibly flexible, reliable and performant OS. It’s free, in most cases. Why would anyone use anything else? HPC software all runs on Linux and UNIX. You can run it on a tiny little SBC like a raspberry pi, you can run it in an embedded system like car infotainment or a smart meter, and you can run it on ultra high-performance supercomputer clusters. It doesn’t give a damn; it just works.
Why would we use anything else? Apple’s ecosystem, while great, makes no sense in the server world. They have their own unique directory service that nobody wants to support (unless they’re trying to sell something to Apple themselves), they have total control over the OS and its capabilities, and it’s technically illegal to modify. Windows has a heavy GUI, and its command-line interface is middling at best and difficult to learn. Windows excels in backwards compatibility and ease of deployment, which makes it ideal for small and medium businesses, but it quickly becomes irrelevant once you scale to a certain point. This is why they’ve got their Azure AD product, for example. It’s attempting to fix the scalability issues with Windows Server. Having spoken to some of the developers of Windows Server, it’s also plain as day that Microsoft is only really maintaining Windows Server to collect on their existing contracts. They have no desire to grow that part of their business.
With all of this in mind, Linux the most obvious choice. It takes no time at all to slap a copy of Ubuntu Server on a pizza box and have a functioning server up in an hour. Everything else is more complex, slower, and costs money.













Yeah, and I’m not here to say Windows Server is always the wrong choice. Windows Server is the champion of directory services, because Active Directory is king. Windows Server can also do neat things like run WSUS and stuff. It has its place. In larger deployments, it’s likely typical to run a variety of servers in GUI-less mode, and then have one GUI-equipped install for management.
That being said, my experience is that almost all Windows Server deployments I’ve found in the field have had the GUI, and have therefore been rather sluggish. It’s just part of how it works.