Embed Notice
HTML Code
Corresponding Notice
- Embed this notice
pistolero :thispersondoesnotexist: (p@freespeechextremist.com)'s status on Friday, 29-Dec-2023 01:15:15 JSTpistolero :thispersondoesnotexist: @Moon @BrodieOnLinux @Maholmire @SrEstegosaurio @dcc @dushman @mima @nerdeiro @pwm
> Have you read the book "The Structure of Scientific Revolutions"?
No, but I imagine I should take this as a recommendation. I wouldn't necessarily treat software as the same, though: you can replace all of your software much more quickly than you can anything that requires physical hardware or retraining, and software doesn't depend on academia to move.
> Incredibly smart people are still trapped in thinking paradigms.
I'm not convinced that this is what's going on. There was no shortage of people interested in microkernels. There's been industry interest: Apple took Mach, but they hacked half the micro out of it. The hypothetical trap that has kept people stuck on monolithic kernels isn't real: anyone knows how message-passing works, they don't suddenly stop understanding this concept when you try to make the ethernet driver run in userspace.
What's actually changed is the nature of the machines themselves. For any real computing when microkernels were designed, computers:users were still N:1. Real computing moved and it was 1:1 when real microkernels arrived. We've now got 1:N. Heterogenous computing was a challenge back then and the network wasn't the computer: heterogenous computing is now the norm and the network is the computer to the extent that most people cannot work using a machine that has no browser because access to remote resources matters more than what is going on in the kernel in your system.
The trap is thinking of computers as monoliths. The network isn't just the computer, there is no more computer without a network. Joe Armstrong was brilliant, so Erlang had the right model. Plan 9 had the right model. Tony Hoare was right but Andy Tanenbaum was inconsequential. Why has HTTP eaten the world? Simple, universally accessible protocol for message-passing and resource-sharing across a network. A microkernel, by contrast, is separated but still tightly coupled.
So, like with everything that reeks of wonkery, I'll believe it when I see it. NetBSD's rump kernel looks like a more promising architecture. Microkernels look to me a lot like VLIW, with its "well, nobody's caught up yet, it'll be faster than everything as soon as the compiler writers stop fucking it up it will really be way faster, in principle it should emulate x86 code faster than x86 CPUs run x86 code". Microkernels look like the "Automated proofs will make software reliable" fad that thankfully died. I will believe it when I see it.
> Torvalds is smart and very capable but self-interested and kind of arrogant.
I won't argue with this, but his "Why do you glorify doing something new and stupid, when doing good things well is what people *really* should be admiring" rant. I don't think he's trapped, I think he's taking a realistic approach.
> People can belt out working, high performing monolithic kernels in a lot less time.
It seems like it's much easier to produce a demo-quality microkernel and then publish your thesis and proceed to spend your career on Linux.
If we have learned exactly one thing since the 1980s, it should be "worse is better".
If it's easier to get a high-performance kernel with one architecture than it is with another, on what grounds is the other preferable? You can pick a kernel up and put it down and any given network will have a half-dozen different kernels on it. So if it's easy to churn out a kernel to do this and a kernel to do that and machines are 1:N and half the time these systems are single-taskers slotted into a broader system, what the hell does a microkernel buy you? The structure of the system you use has moved up one level: your system no longer lives on one computer, and a cleaner kernel--even if we pretend a microkernel is cleaner--doesn't buy you much.
Like the capability-based security systems. These mattered when you had a mixed-use system: you don't have that. You have desktop machines that have to do everything, then tiny VMs (whatever was cheapest on Low-End Talk when the deployer was buying) that have to do everything, and then everything past that is task-per-machine.
> The relative ease of other architectures sucks the air out of the room for innovation
The network is the computer. Which matters more to you in practical terms: how the kernel works on a given machine, or how the EVM works?
Good code is I/O-bound. For a deployment environment
> Linux is working really good these days so people still don't see the need.
Because the network is the computer and it's all hypervisors managing VMs anyway, the cost of changing OS has never been lower. It's near-zero friction. I port some dumb webshit I run locally to Plan 9, right, and it turns out extremely boring. I hate Debian and I am still using Debian all over the place because it doesn't matter.
> But I think microkernels are the next paradigm.
20 years from now, if we still have electricity and are not all running CollapseOS, I feel fairly confident that it'll be monoliths, unikernels, unikernels under hypervisors, and maybe we get hybrid/exo/etc.
> I think more people brainlessly shit on microkernels because of stuff Torvalds said than people brainlessly repeat that microkernels are superior
Sure, accurate, but I think people brainlessly shitting are not worth addressing.
I do think that "It's just that the hackers that created things that defined the current paradigm were just not very good and thus didn't favor my pet technology" is a bad approach: there are some thought-stopping cliches for code, and they are almost all completely wrong, perniciously wrong.
Here is one of my favorite examples: the "Well, Lisp would be faster than C but all of these CPUs are built around C programming" idea. And here's how that plays out: http://yosefk.com/blog/the-high-level-cpu-challenge.html , http://yosefk.com/blog/high-level-cpu-follow-up.html .
There is also a special place in hell for people that manage to convince coders to chase their tails down a rabbit hole full of twisty passages, all of which look like yaks, because they like an idea that has never worked and they paper over their defensiveness by affecting condescending smugness. "Real microkernels haven't been tried yet! You're just not smart enough." Tony Hoare is presumed absolutely correct until conclusively proven otherwise; as noted above, he's right about CSP, and here he's right about "so simple there are obviously no deficiencies" being superior to "so complex that there are no obvious deficiencies".
Pistol Mcfly - Google Me - 05 Otis.mp3