Anyway I'll go back to the american monolithic kernel conspiracy to destroy OS research and keep the Europeans out and ask the brothers if they can think of anything. (That's a joke, right? Yet I've heard it said in the absence of irony...)
I think that Linux is probably going to be the dominant free software kernel for quite some time especially since it has finally gotten to the point of at least receiving nominal driver support by hardware manufacturers. So Hurd will be a curiosity for now but considering its history it is still very cool that development continues. Whether it will become useful in ways that Linux is not remains to be seen.
That still doesn't look like a microkernel based, multi server os to me and does not claim to exhibit those of touted advantages. This reminds me more of dresdens live demo cd from about 2006. Great stuff, but more of a virtualisation layer than an os.
I'd like to see it stand up.
Show me those benefits on the wild. Intel's use of Minix, Qualcomm's use of l4 aren't showing me those benefits yet. If that's changed and they have I really do want to see it. Pointing out i haven't yet shouldn't be a sin, it should be quick to prove me wrong with some reasonable links with production ready more secure, more robust OSes. I'd pay performance for security and reliability in many instances. But AFAIK I can't.
When advantages exist, they will eventually be exploited. It may take new research (better algorithms), new hardware (faster processors), or a new context (internet security), and those take time, but the original reasons for inventing the technology don't expire. As far as application of technology goes, a couple decades is not very long at all.
Nearly every computing technology I use today was loudly rejected by the mainstream, right up until it wasn't. Being unpopular seems to have no impact on the eventual success of computing technology, if it's a good idea.
When you have to resort to name-calling ("religious zealots") to explain why you won't look at actual advantages in computing, it makes me even more convinced that it's the correct approach, and will eventually win out.
I've been hearing QNX as the one word rebuttal for why is not getting traction for 15 years. Still hasn't got traction, afaict.
What about your Intel CPU being at the mercy of Minix 3 to validate its execution state, better?
These are small os's, they're great and useful. There are others. My former, now banrkupt, employers claim L4 code I contributed to is running on over a billion phones. is uTron, eCos etc still dominant in that space?
This is not showing the touted benefits of microkernel based, multiserver operating systems. This is not a secure operating system, this is not a robust operating system, this is not self-healing drivers. Is very small, monolithic a better description of what these are?
Do something like spin up a web-server on a multi server OS and demonstrate it's very hard to hack compared to apache on linux. Make it convincing enough so people use it. DJB did this with qmail and it really is convincing. How long have mircorkernel proponents been talking up improved security, robustness and resilience? 25 years? More? So we've had time and a mountain of engineering resources, including some of my own. It's reasonable to ask to see it. If we can't, it's reasonable to ask why not yet. It really is reasonable to ask.
In my opinion it's a sign of weakness to simply belittle anyone who does. But hey, this is a weekend microkernel HN story perhaps mostly read by the microkernel faithful so reasonable may not be the way forward, easier to just to act as though it's somehow completely unreasonable. Because anyone who hitches their wagon to the next big thing desperately wants it to succeed, and why not? Promotion is important for mindshare and so on. I have sympathy but I think Feynmann summed it up correctly:
"For a successful technology, reality must take precedence over public relations, for Nature cannot be fooled."
I'll say it again so the point isn't lost:
I would love to see those benefits in the wild. I really, really would.
Meanwhile the industry will keep on slowly adopting micro-kernel inspired best practices, even if you don't see any benefit in doing so.
Now hop to reading a bit more about Driver Kit on Catalina.
What is your precise claim here? I state there isn't one. But you did use the word "hop" so there's that.
Point me at the microkernel based OS, using any microkernel, l4 or any other, that exhibits the standard set of microkernel benefit claims around security, robustness, self-healing drivers and has launched a thousand academic papers and all the rest.
Please. Really. I would like to see it. Even if it doesn't exist yet I'd like to see it soon. Really.
Condescension is a piss-weak technique exhibited by those who know they don't have a viable argument. Reality is that which continues whether you believe it or not. I say nothing about what seems to me about you from what you've said here because that's just plain rude.
I'd love it if we got better operating systems by any technique. I'd be very happy if came via microkernels. But it hasn't and that is just reality. Again, show otherwise if you can. I've stopped following it, maybe it exists?
But good on you for going straight for the personal attack and making broad, unspecific claims while offering no substantiation. "industry will keep on keeping on. Good things are to be favoured."
DriverKit on OSX. I thought the days were gone when people claimed osx is a microkernel based OS because it has mach code in it. https://lwn.net/Articles/703785/ doesn't make linux a microkernel. Nor dpdk, openonload nor lwip. I don't recommend hopping.
At least 25 years and these are the straws we clutch.
Maybe ditch the bad attitude, the belittlement, the condescension and try to understand why we are here? What is the actual reason that we are here? Because in understanding that it might be solved and that might be useful. Pretending we're somewhere else and anyone who says otherwise is a heretic who must be silenced is a sure way of making no progress.
I reject the idea that I started a flame war. I felt I followed the guideline above and did it in the face of pjmlp being personal, dismissive and non-substantiative while pointing out that this was happening. I did my best but if you say I failed because he hit his mark and got a rise out of me then I accept that and apologise unreservedly. If you feel the need to ban me for this infraction then you must of course do so and I will be at peace with that decision. I am completely aware of making points with evidence that are extremely unfashionable in certain tech communities. HN at its best works well doing this as it has for me in the past. Not point scoring but actual discussion, substantiated with evidence where one can learn something. A million "+1" messages aren't worth reading after all. I'd say the same for "you're wrong" messages and "you've obviously got a personal issue" messages as we saw here.
I'm assuming pjmlp got a similar message from you, possibly a stronger one? It would seem odd to me otherwise but I suppose it isn't really of any consequence.
By the way, it's clear that you know a lot and have a lot of experience with this topic. That's great! We want people like you commenting on what they know about. But it's necessary to keep yourself within the site guidelines while doing so—they're written the way they are from long experience with what makes internet conversations and communities workable. That doesn't make it easy. We all know how annoying it becomes when the person we're arguing with doesn't 'get it' and seems to stubbornly resist our attempts to reason with them. A lot of the time they're probably feeling the same way. The only solution is to restrain oneself, whether the other person is doing so or not.
I for one am receptive to what you're saying, but I'd prefer it without the put-downs.
This is a perfect example of an interesting debate that is being destroyed by personal attacks.
P.S. I've upvoted your comments to try and prevent them from being flagged / killed.
Is it curiosity or is there some use case for Hurd that I'm not aware of?
Beyond the philosophical differences, another difference is that Hurd is a microkernel and Linux is monolithic. Hurd can be considered a research project for exploring microkernels. The most well-developed microkernels are not open source or free.
I don't think that's the case. The FSF has long been satisfied that Linux meets its goals for an OS kernel, and the Hurd project has changed somewhat from "this will be the final piece of the GNU operating system" to "this is something we're working on to explore microkernel design." I think its developers have given up on it ever replacing Linux, as it's very behind in hardware support, and the gap is only ever growing rather than shrinking. For example, it doesn't support multicore or 64-bit userland (in a time when projects are pulling 32-bit userland support!).
But I think it's fun and something different.
It's one of the few OS up there that seems to be able to take advantage of multicores.
Other such as barrelfish and dragonflyBSD.
Hurd doesn't even support SMP yet.
Kind of like how I waited for HAMMER2.
I am excited to see how redox evolves, but unless they start writing, virtualizing, or porting drivers it is not much more than an experiment in how well Rust can handle OS programming.
Does Hurd still not support amd64?!
> There are currently no plan for 64-bit userland, but there are plans for 64-bit kernelland with 32-bit userland, which will notably permit to efficiently make use of more than 2 GiB memory and provide 4 GiB userland addressing space. Work on this is currently in the master-x86_64 and port-amd64 branches for GNU Mach.
> That being said, you can always run a 32-bit version on a 64-bit machine, it just works, processes are just limited to a couple GiB available memory.
32-bit userland makes Hurd basically unusable for many server applications, where multi-gigabyte in-memory lookup tables are critical for performance.
I don't think it's nice to spit in the face of a person that hands you half of the cake you wanted. The GNU project has the freedom to get their own HURD kernel into a sufficiently working state and compete, which does not seem to be that trivial a task for all the years I've been following this drama.
For most users, so is the command line. So when a user is on a Gnome desktop, we can call it Gnome/Linux right? Since a normal user doesn't touch the terminal?
It's volunteer engineering; because they can! Also it is not possible to know how the fruits of innovation might materialise. There might be achievments coming from this in a serendipitous way. The Hurd is a process.
"Come and join the fun!" --Alan Cox
Linux wasn't going to big and professional, like Hurd, but better fun. Perhaps those roles have switched?
L4 is a family of operating systems, sharing an API, not code. The ancestor was built to prove that microkernels could be fast. SeL4 is a formally proved variant. They are open source. They are also used in embedded systems, like baseband processors.
Minix 3 is an academic project by Andrew Tanenbaum. A few eyebrows were raised when it turned out that it is present in all new Intel chipsets.
Then you have the hybrid ones from Apple, Android with Treble (classical Linux drivers are referring to as legacy driver on the documentation) and Windows is kind of hybrid as well.
As of Catalina, Apple was very clear that the long term roadmap for their OSes is to move all drivers and kernel extensions into userspace, which will be a gradual process.
As a supporter of microkernels I feel this is more a list of side effects. I'd put it this way: monoliths are ok so long as any critical code stays very small and comprehensible in it's entirety by an individual. It's also respectful of things that are not microkernels.
Good microkernels designs operate on the same principle, to achieve reliability and security they keep their critical code very small. It's not invulnerable to bugs, but it is well understood that minimising this surface area is the first step in minimising bugs, the secondary effect is also focusing attention due to minimising total lines of critical code. Microkernels are an attempt to take this to an absolute minimum by adding a layer of abstraction that makes otherwise critical code non-critical.
As a mere enthusiast I feel like this is the most useful lesson to take away from microkernels in other software, not triple redundancy or fancy reincarnation servers, but the fact that scale breeds complexity breeds bugs. Making sure the critical parts remain lean and inspectable helps a great deal in all software even when the separation is not as strict.
The Apple iOS devices all have L4 in their security enclaves.
Both of these OSes have open source options, though the ones shipped in the processors are closed.
The idea was a mach microkernel + daemons/message passing to do higher-level things.
Note the microkernel was also used in nextstep and now macos.
Design failures highlighted in the Hurd critique paper still not addressed.
I'd look elsewhere, such as Genode with seL4, or Minix3.