Long ago, in the aftermath of the UNIX wars, three kernels emerged from the rubble: BSD, Linux, and Hurd. BSD, being UNIX, was held back by legal wrangling in the aftermath of the wars, and that allowed Linux to pull ahead to a pole position it still enjoys to this day. BSD has its following, of course, but Hurd? GNU Hurd seemed destined to languish… until April 1st, 2026, when the Gentoo Linux distribution was ported to the Free Software Foundation’s kernel.
It turns out, they weren’t actually joking. The joke part was that they were moving fully to the Hurd kernel, away from Linux– you can absolutely still run Gentoo with the Linux kernel, and make no mistake, that’s still the default and best-supported option. Options are good, though, and the Gentoo team has decided that it’s time to add some options to the kernel space, and give the Hurd some time in the sun.
Unlike the Linux kernel, which follows closely the monolithic UNIX framework– and the BSD-Unix kernel, which is Unix–GNU Hurd is a microkernel architecture, based originally on the Mach kernel. In that, it’s rather like MacOS. Unlike MacOS, given its roots in the Free Software Foundation, GNU Hurd is 100% free and open source. There are advantages to a microkernel architecture– it keeps drivers out of kernel space so a dodgy WiFi adapter can’t crash your system, for example– but the big disadvantage is, of course, drivers. Both Linux and BSD drivers can be ported, but that takes work and many of them have not been.
Still, now that Microsoft has become a major contributor to the Linux kernel, we could see a lot of the old-school Linux users who talk about “win-doze” and still spell Microsoft with a dollar sign being tempted to join the Hurd. If that appeals to you and you’re not into Gentoo, Debian has quietly let you install with the Hurd kernel for years now. It’s either that or embrace BSD and escape the chaos vortex.
The big three aren’t the only POSIX kernels out there, of course– there’s even one written entirely in Rust, for the die hard rustaceans amongst you.

did you mean to link to a kernel that is not written in rust?
‘There’s No Rust On This Ironclad Kernel’ is what you link to when you say ‘ there’s even one written entirely in Rust, ‘ which is not written in rust, i’It is written in SPARK and Ada, ‘
“There are advantages to a microkernel architecture– it keeps drivers out of kernel space so a dodgy WiFi adapter can’t crash your system, for example– but the big disadvantage is, of course, drivers.”
This makes it sound like it’s being a microkernel that causes there to be no driver support, and not just the fact that it’s a project that’s been more or less neglected ever since Linux came to become the de facto default GNU kernel.
I do wonder if this will lead to the sorts of enthusiasm which will cause HURD to ever become a usable operating system.
How is a microkernel going to be different from drivers as kernel modules? I mean, from a driver development standpoint?
One of the old complaints that I remember is that there is (or was) no stable API/ABI for drivers because Linux basically refuses to define a real standard and stick to it, so third party providers (OEMs) can’t just make and distribute driver binaries for their stuff and expect them to work.
The complaint was that you would need to involve the developers and the community to continuously adapt your drivers to whatever kernel version-variant-subtype-special-case of the day, and people would be reluctant to do that unless you gave them your source code to work with. The OEMs obviously didn’t want to play that game, so they didn’t bother with Linux drivers.
The OEMs and independent vendors don’t want to get involved in a system where the community politics and a bunch of unpaid volunteers, or “volunteers” paid by their competitors, get to dictate whose products are supported and how. They want to deal directly with the customers, and on my part I would say the customers agree.
Has there been any change in that?
Example:
https://www.kernel.org/doc/html/v4.10/process/stable-api-nonsense.html
They go on to say that this is better because then “other people” will add features and updates and fix bugs etc. in your driver… except the problem is that “other people” don’t and they won’t. If you’re an OEM with hardware to sell that people aren’t already using, who cares about you? Why should anyone work for free to make your product?
To me the whole system is backwards. It’s hostile to innovation. The system only works for stuff that’s already been out there on the market (for Windows) long enough that people know to demand it, so “other people” would write and maintain the drivers for it. Anything that is even slightly non-standard or new gets supported years behind, poorly, if at all.
BSD isn’t nearly as chaotic for driver development, and yet the number one reason not to use BSD is because Linux has more/better drivers!
Yet when other projects need drivers– Like Haiku, like Hurd– it’s easier to grab them from BSD than it is to fish them out of the Linux chaos vortex.
OEMs don’t care, though, because they look at BSD’s user base and say “why bother?”
Having more people increases the probability that “other people” will do the job.
I would just rather not depend on that. I would rather pay a company money and receive a working product directly.
The funny thing about it is that the developers seem to have this attitude of give and take, so they give you the kernel and you give them the drivers in trade (“you leech”).
They don’t seem to understand that the whole thing is supposed to be a platform that enables vendors to make and sell their hardware to you. The reward you get from offering this work for free without strings attached is that you could actually use all the stuff out there on the market – that there would be a reason for someone to make new stuff and offer it to you, with proper customer support and service.
If you’re coming up to the OEMs and saying, “I’m only going to buy this stuff if I get to see all your tricks and trade secrets and make them my own”, they’re going to say, “Ok, I guess you didn’t really want it then.”.
so far as i can tell, the big change is that vendors are now happy with this status quo, even though they were unhappy with it before. Linux’s “year of desktop” may never arrive but “Linux everywhere” has been with us long enough that anyone who makes an ethernet chip or SoC or whatever knows that Linux is going to be a significant use case, and they contribute generally open-source drivers to it, with only a few glaring exceptions. Though a lot of the “open-source” drivers are just thin wrappers for closed firmware. So the firmware API becomes the stable API controlled by the vendor, if they desire that.
But there definitely is some awkwardness in the world because of the way the internal kernel APIs continue to evolve. For example, i used the official google kernel for my old Chromebook, and it put me at an old (even for the time) kernel version combined with a wifi stack from a different kernel version (which seemed like a path-well-travelled, FWIW).
That’s one way of doing it.
Note also that these kind of devices are more “function blocks”. They’re generic hardware used to make other products, such as putting the SoC in a cellphone. Releasing the driver as open source is usually not an issue because there’s no secret sauce. It’s just nuts and bolts, jellybean parts doing something perfectly standard.
It’s like vendors giving you the reference circuit design for a chip they sell, right in the datasheet. After all, if you don’t know how to use it, you won’t buy it. But, as you would notice, the “user” here is not the person who ends up using the final product. The user in this case is the developer who is trying to turn the chip into a final product and then sell that. The target is the technical person who is able to re-work the circuit or compile a kernel module to make it work in different cases.
For the final products themselves, the drivers then turn again to closed source because you don’t want to reveal the tricks that make the product, or at least you want to distribute the driver directly to your customer instead of relying on the “community” to handle that part of the transaction, because you would have little to no control. You don’t want to hand the customer the hardware only to find that it doesn’t work because the community didn’t bother to maintain the drivers or add the features and accompanying software packages and tools that the customer wanted.
Like the common case I run into: I have a printer that has working drivers under Linux, but no way to change any of the settings. Paper type, margins, color settings, cartridge cleaning, alignment… nothing. It only prints – which some Linux evangelist would count as “it just works right out of the box!”. Yeah – sure – technically.
It’s these consumer facing products and producers that are suffering badly under Linux – that’s why people avoid it.
The joke is we have a properly tossed word salad that wont work with most wifi
Hahaha enjoy!
Options aren’t just good, they are the heart of the Gentoo Ethos. What lilo not grub? Want openrc, not systemd? That’s YOUR choice. It’s one of the things that makes it great… that and we do most of the testing. Read ANY distros changelog, Gentoo will be in there more than anyone.
I did not want lilo on my petium 90 why would i want it now?
A Pentium 90 is what I was using when I started using Linux. There was a lot to learn, explore and troubleshoot at that time, which was fun. Networking and graphics could be hard, but I don’t remember lilo ever causing me grief. I understood it better than I understand grub now.
Then again, at that time I was a student with all the time in the world to tinker. Now I just use Linux to get work done and I want stuff to just work.
Yep. Gentoo is the way. It’s the only road where you actually have real choices. Gentoo is the only real place you can get esoteric too. Want sway, but with X compiled out and some custom meson flags? Do it. Want functional secure boot with your own keystore and automatically signed kernels? Go for it. Want to skip the bootloader entirely? By all means. Have your own kernel patchset? Need to run a bleeding edge live ebuild, but need to pin it to a particular commit hash because other releases are broken? Gentoo has you covered. Best documentation in the game, too.
Although not a Gentoo user, I fully agree. This is one of the benefits that is not often talked about, or even mentioned, about open source – having options. Having options are always good. It is the “there can be only one” mentality that gave us Windows, and some Linux distros are heading down that path as well.
Good for Gentoo. This will be a hard path to travel, but well worth the effort I think…
I technically have the option to eat mashed potatoes with tomato ketchup for lunch. Whether I or anyone would want to is another deal entirely.
Even if you have the option to put your system together any way you want, most options for most users are just going to be irrelevant. Meanwhile, having everyone do things slightly differently because there are no sane defaults enforced by anyone turns into balkanization – lack of interoperability and a waste of time and effort, because there are no common solutions to common problems.
The “mashed potatoes with ketchup” analogy sounds clever, but it falls apart pretty quickly. Your analogy assumes options are arbitrary, that users are left without guidance, and that bad choices are equally as likely as good ones. That’s not how Gentoo works.
It’s not a random combination of nonsense… it’s a constrained system of valid configurations, governed by Portage, EAPI, profiles and dependency graph resolution, backed by a very opinionated handbook.
A better analogy would be “Gentoo is like a professional kitchen. You can deviate from the recipe, but you’re still working within a structured system of ingredients, techniques and tools.” You’re not eating ketchup mashed potatoes… you’re choosing which cut of meat, cooking method and seasoning profile you want.
Whether or not “most options are irrelevant” is itself irrelevant. Yes, most USE flags don’t apply to most users. Yes, most users won’t care about LLVM vs GCC, musl vs glibc, OpenRC vs systemd… but that’s not a flaw. It’s precisely the point.
Gentoo’s model is “expose capability without forcing it”. Compare that to binary distros that hide options entirely. Most users follow a profile, accept defaults and change only what matters to them. So the “overwhelming options” argument only applies if someone chooses to ignore the core workflow.
“No sane defaults” is flatly wrong, and is the weakest part of your argument. Gentoo absolutely enforces sane defaults through profiles, EAPI, Portage and the Handbook. It’s not “everyone doing random things”… it’s everyone starting from structured defaults and diverging intentionally.
“Interoperability”… Issues arise when systems interact across boundaries (network protocols, file formats, APIs). Gentoo doesn’t break those… ABI and dependency correctness are enforced. Standards (POSIX, glibc ABI, etc) still apply. Packages are built against standard and consistent interfaces. Two Gentoo systems can differ internally… but still interoperate perfectly externally.
“Waste of time because no common solutions” is exactly wrong, too. Gentoo absolutely has common solutions; openrc or systemd, elogind vs seatd, networkmanager vs dhcpcd, etc. The difference is Gentoo gives you multiple solutions instead of enforcing one. Other distros “solve the problem for you” without asking.
Tell me you’ve never used Gentoo without telling me.
Yes, all of that!
You’re answering past the argument. Note the actual claim in discussion:
While Gentoo may indeed restrict and guide its users, “open source” does not. Under such general terms, having options is not always good.
Besides, talking about options is probably the first argument that people run to when trying to rationalize why the mess of a system they’re trying to operate is still the best despite having so much trouble. It’s just more typically phrased as “choice” instead of “option”.
That’s because choice implies active agency – it’s a selling word.
Have you ever had fried mashed potato cakes? They’re great with a bit of ketchup.
No, but I’ve had gingerbread cakes with mustard.
It was not very great.
So my toddler is going to insist on Gentoo. Got it.
Only if it’s Heinz. If it’s Felix, you might get different results.
How did you equate “having options”, to “lack of interoperability” or “no sane defaults”? Don’t read what you think I said…just read what I said. The words are pretty self-explanatory (if not, consult a dictionary).
I think you’ve proven my point. As far as you are concerned, there is only one way…your way. The spread of what most humans want, or like, is pretty broad, so keep in mind that there are billions of people on earth…not just you, and the fact that there are many opinions (and wants, or needs), doesn’t mean that people all have to think, act, and do things the exact same way. Doing something in one manner in industry X, doesn’t mean it is going to be as efficient in industry Y. Working and living together requires tolerance, not coercion.
Sadly only systemd or drop-in openrc.
Though OpenRC follows the ethos of “do one thing and do it well” very well, while learning from previous init systems pros and cons.
I’d also not be surprised if the rapid initial adoption of SystemD has snuffed out development on other alternatives.
Though given that SystemD et al’s increasingly souring reputation, things might change in that regard.
For a while there was a Debian island on top of the FreeBSD kernel. It worked really well, and allowed native ZFS in the days before this was supported on Linux. I was sad when it was abandoned.
I guess this might be the flip side of lots of choice in the open source world – abandonment of something you might be relying on, ie. limited number of developers spreading themselves thinly.
Well at least you can maintain it yourself then. Plenty of commercial software gets abandoned too.
Why “still”? That’s more the case than ever, with Micro$lop being more and more enshitified,
Well, most linux distributions are also on the same situation.. Bloat, systemd, snaps, telemetry, etc.
It has always seemed the behavior of angsty people that had no means or desire to pay $ for software, and believed that others should do the work so that they could have whichever software title for free.
I mean, i do use Artix dinit with seatd. Sadly never got efistub working, and refind only with grub installed.
Btw, why not activitypub for Hackaday comments?
I always preferred MickeySoft over dollar signs.
FWIW i don’t hate microsoft anymore…i realized it about a decade ago. By the late 1990s, i hated microsoft passionately because everywhere i went, i was forced to debug windows 95 (or 98). In the early aughts, the hate continued because every web page i designed, i had to fight with MSIE. But by 2010 or so, it all pretty much disappeared from my life. Things like Android/iOS/macos/chromeos made the least denominator user experience fundamentally not microsoft-centric, and ever since then i can almost pretend microsoft doesn’t exist. If they contribute to the kernel, it doesn’t hurt me the way that debugging windows 95 did! I don’t even know what windows i’ve used…i’ve probably spent less than 3 hours out of the last 15 years fighting with microsoft, and even though it has been worse than ever when it has happened (even slower, and even more ambiguous), it just isn’t a big enough experience to upset me.
Because most children eventually grow up?
It’s a juvenile behavior that demonstrates an inability to take something serious seriously. People who use the $ are immediately dismissing something entirely. It’s just some base herd mentality that demonstrates a closed mind.
I still have a gentto live disc in shapie on my spindle on the shelf :) It was the first live distro I had iirc and I used it a lot for testing those ramshackle beigeboxes back then rather than commit to a full install and years of CLI fixing lol. Glad to see them back. I hope they dont fall prey to the same bloat and scattered focus that the linux pool seems to be filled with these days. Not sure what the faux outrage is at the stetson neckbeard crowd using 1998 edgelord nomenclature since HaD openly dumps on Microsoft and windows at every possible chance lol. Anyway, I am gonna definitely give the new gentoo a try and see how things are doing since it has been literal decades since I have seen it :)
For what it’s worth, Gentoo never really left. My current workstation install has been going for 15 years. Sure it has survived multiple hardware failures, architecture changes, UX choices and countless upgrade cycles, but it’s essentially the same beast. A tool you may or may not be aware of: mkstage4… routine stagefour backups are a godsend, and really the only reason I’ve been able to survive NVMe/disk failures, motherboard implosions and significant architectural changes.
Good luck and have fun!
Yeah my experience predates ssd so that will be awesome :) Thank you for the tip on mkstage4 I will definitely take a look at it since it sounds like a lifesaver.
Gentoo today can be just about as thin or as bloated as you want it to be. It’s all in what you chose to install and with what options, probably just like you remember.
One really cool change though… now there are binary packages for everything. If you leave your compiler and cpu flags to the default for your platform and set up the binary sources then when you emerge something it will check the use flags. If a binary package exists that matches your requested use flags then emerge grabs that instead of building from scratch. Way faster!
But you still can customize whatever you want. If you have use flags set different from the defaults it will build that package from source just like it always has. Some packages even have binaries for popular use flag variations. You can chose to wait for building those custom packages you care about while letting everything else just download quickly as binaries.
Of course you can still optimize everything if you want. You can still set the compiler and cpu flags to squeeze every little last bit of performance out of your exact cpu. But if you do that there probably won’t be many binaries for your setup so you will still be waiting for every package to build.
Glad to hear about the sensible updates to save even the bravest of us from obscure cli flags lol. It was surprisingly simple and good. So far so good at 4 hours of uptime and me of course giving it the business loading up some of my favorite packages to try out tonight. It is cool both me and Gentoo are still here :) Thank you for the information about the updates and I hear ya about the cpu optimization ;) I will probably leave that where it is for now. So far so good though.
Gentoo! 😃
https://www.youtube.com/watch?v=nm9Vn0jPbWI
I guess i don’t really understand the supposed microkernel advantage anymore.
On the one hand, the Linux kernel these days starts about 100 processes just for its internal usage. I’m not sure these are actually memory-protected from eachother at all?? But in practice, Linux has adopted the mentality that separate processes for every little thing is cheap now.
And on the other hand, the supposed advantages of deeper isolation seem to have always been illusive. Like, first off, if my wifi driver crashes, it can still easily crash my whole system…simply guaranteeing that it doesn’t write to other drivers’ memory isn’t enough to guarantee stability, when the driver is talking to things like PCI and power management hardware. But even if it doesn’t crash my whole system…if my wifi driver crashes, my laptop is useless. If i have to reboot to get wifi back, i have to reboot period.
And it’s not a hypothetical problem…I remember when i did install Hurd on a whim sometime in the 1990s, i managed to crash the ext2fs driver. And even though that was isolated in its own process and didn’t “bring the system down”, the system was in fact down because it couldn’t access any filesystems. I experience the same with NFS today. The Hurd ext2 driver was a much greater problem than the Linux ext2 driver…in practice, a thoroughly-tested module with weak guarantees is much more stable than an untested module with strong guarantees.
Not trying to drag microkernels but at this point the distinction seems pretty academic. Six of a half dozen kind of debate.
But maybe there’s a big problem with Linux kernel components corrupting eachother’s memory, which i have just been blessedly unaware of.
fastfetch
-/oyddmdhs+:.
-odNMMMMMMMMNNmhy+-
-----------------omMMMMMMMMMMMMNmdmmmmddhhy/-yNMMMMMMMMMMMNNNmmdhy+- OS: Gentoo Linux x86_64
Host: X870E AORUS PRO ICE (Default string-CF-WCP-ADO)Kernel: Linux 6.19.11-gentooomMMMMMMMMMMMNhhyyyohmdddhhhdo
.ydMMMMMMMMMMdhs++so/smdddhhhhdm+
Uptime: 4 days, 7 hours, 26 minsoNMMMMMMMNNNmmmddddhhdmMNhs+oyhdmNMMMMMMMNdyooydmddddhhhhyhNd. Packages: 1383 (emerge), 12 (flatpak)
:oyhhdNNMMMMMMMNNNmmdddhhhhhyymMh Shell: bash 5.3.9
.:+sydNMMMMMNNNmmmdddhhhhhhmMmy Display (LG ULTRAGEAR): 1920x1080 in 24", 144 Hz [External]
/mMMMMMMNNNmmmdddhhhhhmMNhs: DE: KDE Plasma 6.5.5
WM: KWin (Wayland)sNMMMMMMMMNNNmmmdddddmNMmhs/. WM Theme: Breeze/NMMMMMMMMNNNNmmmdddmNMNdso:
Theme: Breeze (Light) [Qt], Adwaita [GTK3]Font: Noto Sans (10pt) [Qt]+MMMMMMMNNNNNmmmmdmNMNdso/- Icons: breeze [Qt], gnome [GTK3]
yMMNNNNNNNmmmmmNNMmhs+/-
/hMMNNNNNNNNMNdhs++/-
Cursor: breeze (24px)/ohdmmddhys+++/:.Terminal: konsole 25.12.3-//////:–. CPU: AMD Ryzen 7 9700X (16) @ 5.73 GHzGPU: AMD Radeon RX 7800 XT [Discrete]
Memory: 11.33 GiB / 30.95 GiB (37%)
Swap: Disabled
Disk (/): 60.83 GiB / 97.87 GiB (62%) – ext4
Disk (/home): 11.71 GiB / 109.47 GiB (11%) – ext4
Disk (/home/Mambata/Giochi): 100.24 GiB / 915.82 GiB (11%) – ext4
Disk (/home/Mambata/vecchioc): 845.25 GiB / 931.51 GiB (91%) – ntfs3
Local IP (enp15s0): 192.168.2.229/24
Locale: it_IT.UTF-8
Gentoo was the only one that made me understand Linux, with all the other distros, they worked but I didn’t understand what was under the hood