The GNU/Hurd is the Sagrada Família of the Software World: having started to develop in 1990, the GNU/Hurd has yet to reach version 1.0. The Linux kernel, on the other hand, began development in 1993 and was initially considered a “kludge” until the Hurd was completed. It is now matured and widely used.
Like the Loch Ness Monster, many believe that GNU/Hurd is vaporware and does not exist. It does exist and continues to evolve, albeit at a slow pace. Just recently, the Debian GNU/Hurd 2023 has been released. You can use the GNU/Hurd right now.
This article takes a look at what it’s like to use Debian GNU/Hurd in a virtual environment in the cloud, to sidestep the lack of driver support, and highlights some of the unique features of this platform.
“What is the purpose of GNU/Hurd?”
I really want to give these alternative operating systems a chance. But every time the low level drivers or the high level application support that stops me. But that of course does not mean every operating system need to be “for me, personally”.
They might serve a specific purpose. Could be for researching microkernels (many to list), trying to replace Linux driver dependency on smart devices (Google Fuchsia), provide a low latency multimedia system (Haiku), support legacy systems (FreeDOS, ReactOS), and so on. (OS on!)
But, circling back, what is the specific purpose of GNU/Hurd?
The only thing that comes to mind is having a Linux kernel alternative with a different license.
And if that is true, is that worth spending all that effort?
sukru,
I think it could solve a lot of the problems that arise from linux’s monolithic kernel. For example, with ARM SBCs, kernel upgrades and mainline linux are notoriously problematic with no solution in sight, probably ever. Many SBCs have to resort to running linux kernels built for android phones, but these are often older and incomplete in terms of the kernel features one might want to enable for an SBC.
Enter Hurd. With a microkernel and stable ABI, users might find that Hurd could reuse drivers that work with the hardware while upgrading the rest of the system around it. Of course this is great in theory, but the real obstacle is that Hurd is a niche kernel with absolutely no support. If, by some miracle, Hurd were supported by manufacturers, it might actually be able to deliver a stable ABI and driver interface, which linux leadership has thus far steadfastly refused to bring to the table.
Alfman,
I think that micro kernel could be Fuchsia: https://fuchsia.dev/fuchsia-src/development/hardware. Unlike HURD the system was ready, it had been released on actively sold hardware, and had full Android application support.
Still could not keep support against Linux.
sukru,
Sure, we’ve talked about that. I’d be willing to use Fuchsia assuming it solves our problems and doesn’t put owners in a jail. However it’s not really clear (to me) that google are fully committed long term to making fuchsia a good platform for general purpose computing and not turning around and pulling the plug. I think you’d agree their track record has been shaky even with proven technology.
Is Fuchsia more ready than hurd? They both seem to have achieved functional userspaces. I don’t have hands on experience with either, so I can’t say much about how ready they are for real applications.
https://www.youtube.com/watch?v=w3NfOeecMkI
I’m am curious which is the bigger barrier to adaption: the OS itself being incomplete or the software environment around it?
Debian’s Hurd page says this…
https://www.debian.org/ports/hurd/
Anyway, back to the topic. I personally don’t mind having both be developed as linux alternatives. I expect that neither of them will make a big dent in the market, but google probably has the advantage in that they control android and have a lot more connections than anyone working on GNU hurd.
“Linux kernel alternative with a different license.” basically *BSD’s niche these days.
But I think any microkernel OS makes sense to continue to persue. I know its not the only one, but it seems like they kind of care about having a typical userland, which is neat. I’d ideally like something like a microkernel to be a base for a VM host. A very different, very stripped down, locked down hypervisor host to prevent any kind of Asure like screw ups. Maybe a fantasy. And now that I think about it, this is all written in basically C, ugh. Needs more rust.
Bill Shooter of Bul,
Ah, thanks for the reminder. We always tend to forget, but there is an active and popular BSD based operating system that uses a microkernel (XNU):
Though it does not seem to contain any container support: https://news.ycombinator.com/item?id=21333408
And, if we were to stretch the definition, NT kernel, and by extension ReactOS can fit that role: https://reactos.org/wiki/Kernel . Again probably not the best host for virtualization.
There is also Xen: https://wiki.xenproject.org/wiki/Xen_Project_Software_Overview
Which might be the closest thing to what you are looking for. And as far as I know it is (or was) used extensively in cloud providers for virtualization.
(As for a Rust based microkernel: https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main)
If you need a niche for it, it’s the only active microkernel UNIX-like free OS. But it doesn’t have to have a purpose, apart from scratching the developer’s itch.
Out of the 15 million lines of code in the kernel, about 10 million of that is drivers, and that’s not including modules.
In short, the graph is trash (the one in the article).
Not only that. The whole GNU Mach + Hurd + MiG system isn’t production ready. It doesn’t support multicore systems in 2023, after processors have been multicore/SMP for decades. It only has a bare minimum of supported filesystems and outdated at that. Only a translator for Ext2 in this day and age is laughable. Most drivers are lifted from Linux 2.0, so lets party like these are the early noughties (Shall I buy a Pentium III system?).
This glowing article is comparing a failed (essentially toy) system to a production ready workhorse that powers the world. Yet the Hurd system is “better” because it is so simple that one person can understand it.
I wouldn’t mind a viable, well supported FOSS microkernel alternative to Linux, but this thing isn’t it and it probably never will be.
Genode is much more advanced and useful.
And Hurd is probably farther behind the linux kernel than it was 10 years ago. At this rate it will never be viable on anything approaching a modern computer for anything useful. I wish that wasn’t the case, but here we are.