Mon 20 May 2013 07:45:13 PM PDT
Why did Linux succeed on servers?
Unlike the RISC Unix boxes from back in the day, a typical PC-architecture server is a Purchasing Manager's grab bag of cheap parts available on attractive terms. As an OS developer, you don't know what weird mix of hardware you're going to have to support, even if you're part of the OS team at the hardware vendor. ("Hey, it turns out that the new server is going to have RatBag 2000 Ethernet cards after all. That's not a problem, it it?") This situation was even worse when more parts were on PCI cards, not the motherboard.
So in order to make an OS that will run on all the bastard spawn x86 servers out there, you need to have either (1) the market power to make the hardware vendors code and test the drivers for you to support a stable driver ABI, as Microsoft did for Windows NT, or (2) the hacker chutzpah to break incompatible drivers frequently, so that in order to work at all, a driver has to "live in the tree" and be maintained as part of the OS. This is the route that Linux chose.
So the secret to Linux's success on servers is here: Stable API Nonsense