A Debian GNU/Hurd snapshot
lwn.net
lwn.net
They can't even seem to be consistently settled on their basics like what micro kernel they are using
https://en.wikipedia.org/wiki/Hurd#Other_microkernels
In the 2000s they experimented with 3 other micro kernels, all of which went "no where". Over half a decade spending their limited dev resources on work that ultimately went no where since they are still apparently using Mach.
and now (from the article):
- GNU/Hurd 2013 is available for the 32-bit x86 architecture only
- Hurd can currently only make use of one CPU (or CPU core). That is to say, it will still run on multi-core and SMP machines, but only utilizing a single processor.
- Hurd generally uses device drivers ported from Linux 2.0 ... So the latest and greatest shiny hardware might cause trouble.
Once upon a time if you could get it to run on your hardware it was at least vaguely competitive, but now the thought of putting it on my 64bit quad core laptop... well... what a waste.
And instead of trying to even keep up, they are still trying to pick the right micro kernel...
"In years past, Richard Stallman was quoted as saying that Linux was a good option to use while the Hurd was still incomplete"
Linux will remain a good option for a long time.
Direction I'd prefer? Working on modern hardware and taking full advantage of it! Was that not clear? That's the whole point. They spend all their time on on designing and redesigning archetecture and their software is now getting less relevant on real hardware. Mostly only makes sense now to run as a VM. Which is probably not what they want for the OS that is supposed to replace Linux....
But in Hurd's quarter century of life, it's gone nowhere, while Linux, Windows and OS X have zipped by. It feels like nothing short of an apocalypse will bring the micro-kernel back. I think the only major one in the wild in QNX (Blackberry OS), and that's waning. OS X / NT are no longer microkernels.
"Worse is better" still rings true, in more ways than one.
1) 2nd paragraph of introduction http://www.microsoft.com/en-us/download/confirmation.aspx?id...
Also, as far as I know, the only kernel that has been proven correct with a mechanically verifiable proof is an L4 variant.
seL4, which is microkernel of course
QNX is all that is left and as you say, it's waning -- fast. And ironically, QNX in BlackBerry OS has lost many of the so-called advantages it had in the past, because a large portion of the OS is dedicated to running Android in an emulation layer, thus using a monolithic kernel anyway. sigh
Stallman failed and that's OK. Giving the world emacs and GCC was enough, frankly. He used to always make it seem like Linus just got "lucky" and happened to make a kernel before Hurd was done -- but that wasn't the case at all. Linus got a working kernel working faster and Linux proved to be better than anything Hurd could achieve, full-stop.
Well, it uses it now. (But yes, not as a microkernel.)
You never know how something will come handy — learnt Hurd programming => now not afraid of Mac OS X kernel'ish stuff
The funny thing is it's not even the case that there's only room for just 1 production-quality open source kernel. Through all this time the *BSDs have done rather well in comparison. We might just conclude that despite a great body of work that we all respect and owe a lot to, maybe GNU/FSF isn't all that great at managing a project. (See also: Emacs Schism, GCC vs. ECGS, GCC vs. LLVM.)
(Aside: Personally, I booted Debian GNU/HURD on a Pentium II more than ten years ago to try it out. At the time it was slow and had a bunch of drivers ported from Linux 2.0. It sounds like not much has changed, however I never did get X working, so good job there.)
edit: a broader list of where QNX is used: http://www.qnx.com/company/30ways/
I will always wait for the day I can say my computer runs GNU. Nothing else, just GNU.
Yeah, okay, that was just nitpicking. But they're not doing that anymore, so why bother complaining about it anymore? Sure, it's not up to snuff yet, but perhaps it will be decently soon. Development on HURD has really surged in the past year or two, I'd like to say.
Minix wasn't an attempt at a production kernel in 1987. Minix 1 and Minix 2 were purely for teaching. Minix 3 was a completely new project, and wasn't started until 2005.
>but perhaps it will be decently soon
The history of the project and its current state suggest that is unlikely.
>Development on HURD has really surged in the past year or two, I'd like to say.
You might very well like to say that, but that doesn't mean it is true. There are no competent systems programmers working for/with GNU, it is highly unlikely that the random assortment of people chosen for their politics rather than their skillset will be able to turn the longest festering mess of code ever into a production ready kernel.
It took them 7 years to even name the kernel that hadn't been written yet. I feel like that says something.
And then when an actual GNU-licensed kernel came along, they ignored it and kept plugging away on vapour.
Linux is named after a guy, why? Because it started out as a single person project. So did many other major open source projects. The reason why so few people still work on HURD is because it's not seen as very promising or interesting or practical.
HURD, to contrast, had a small base initially and has remained that way.
Well, um... why?
And yes, /dev/null is just translator (think of it as mount point), user-space program discarding stdin. Oh, and / is just a translator giving access to /dev/hdX
What happens if you crash / ?
I'm a happy monolithic kernel user, but there are some great ideas in the microkernel model. Just seems to never quite be the best practical choice except in some niches.
Okay then, I donwloaded Debian Hurd and made a VirtualBox image out of it. This should be fun.
(Note that I may lie to you about /, it's somewhat special and I don't remember details).
Edit: oh, and when it crashes it will get handled by crash server (you guessed it, user-space program) which can kill/suspend/coredump it. You can choose even by env variable!