I’ve been randomly googling my name and usernames, ostensibly to check what private information I might have accidentally put out on the web over the years. I have yet to turn up much to worry me, which is good, but I have turned up something interesting that I’d completely forgotten about.
Back in 2010 Linus Torvalds did a Q&A on Slashdot, in which he answered my question:
Monolithic vs. Micro-kernel architecture by NoNeeeed
_Has there ever been a time in the development of the Linux Kernel where you’ve wished you’d gone the Hurd-style micro-kernel route espoused by the like of Tannenbaum, or do you feel that from an architectural standpoint Linux has benefited from having a monolithic design?
Linux has been massively more successful than Hurd, but I wonder how much of that is down to intrinsic technical superiority of its approach, and how much to the lack of a central driving force supported by a community of committed developers? It always seemed like the Hurd model should have allowed more people to be involved, but that has never seemed to be the case._
Linus: I think microkernels are stupid. They push the problem space into communication, which is actually a much bigger and fundamental problem than the small problem they are purporting to fix. They also lead to horrible extra complexity as you then have to fight the microkernel model, and make up new ways to avoid the extra communication latencies etc. Hurd is a great example of this kind of suckiness, where people made up whole new memory mapping models just because the normal “just make a quick system call within the same context” model had been broken by the microkernel model.
Btw, it’s not just microkernels. Any time you have “one overriding idea”, and push your idea as a superior ideology, you’re going to be wrong. Microkernels had one such ideology, there have been others. It’s all BS. The fact is, reality is complicated, and not amenable to the “one large idea” model of problem solving. The only way that problems get solved in real life is with a lot of hard work on getting the details right. Not by some over-arching ideology that somehow magically makes things work.
Reading his response again, I realised just how spot on he was with his last paragraph. It’s written from experience, and it applies to pretty much every area of life. It’s easy to get trapped by ideologies, whether they are technical or political, and forget that the real world doesn’t conform to nice simple patterns, it’s full of complicated twiddly bits that require pragmatism.