It is with huge pleasure that the Debian GNU/Hurd team announces the release of Debian GNU/Hurd 2023. This is a snapshot of Debian “sid” at the time of the stable Debian “bookworm” release (June 2023), so it is mostly based on the same sources. It is not an official Debian release, but it is an official Debian GNU/Hurd port release.
Debian GNU/Hurd is probably the easiest, most accessible way to try out Hurd.
wrong microkernel
Which one is the “right” one then?
You don’t have to be so sad as your emoji implies, you can use whatever microkernel you want.
No, you can’t! The GNU Hurd project looked into moving to a different kernel over a decade ago and came up with the conclusion that the way it was written would require almost a complete rewrite. My recollection is that they looked to pretty Hurd to one of the L4 series kernels.
Interesting, but in the end it’s still just another Posix compliant system that won’t be effectively different to end users. Another Unix type command line heavy system with a package manager and ports of all the Linux desktop software. To end users these are just Linux with worse driver support and more problems.
I hate the GNU/Linux term and am not a big Richard Stallman ( RMS ) fan so please do not paint me as some kind of Free Software Foundation ( FSF ) shill here but I also think context and history matter.
I hear what you are saying. There are already a lot ( maybe too many ) “POSIX” systems. That said…
RMS and the FSF started the GNU project long before Linux existed with the goal of creating an alternative to proprietary UNIX ( GNU stands for GNU’s Not UNIX ). The goal was to create a “GNU Operating System”–a full self-contained system and a kernel was ALWAYS part of that vision. To that end, Richard Stallman was one of the main players in the POSIX effort. In fact, I believe he claims that he actually came up with the name “POSIX”.
The interest that RMS had in POSIX was creating a formal definition of what a “UNIX” environment was so that he could create an alternative implementation ( the GNU Operating System ). So, GNU is not just “another” POSIX compliant system. For RMS, GNU is THE POSIX operating system. He knew there would be a bunch of proprietary systems compatible with GNU but his goal was to replace them all and for GNU to be the preferred operating system for all “free” users ( which he hoped would eventually be everyone ). Much of his dream has been realized but, unfortunately for him, not in the way he planned.
The way that the FSF started building the GNU system was to first build the compiler ( GCC ), editor ( Emacs ), and system utilities ( CoreUtils ). These would all run on other POSIX and UNIX systems to replace the “non-free” equivalents that the evil proprietary UNIX vendors supplied or sold alongside their platforms. Once the GNU HURD kernel was ready, they would ship a complete GNU Operating System. By-the-way, this mirrors how BSD was formed. BSD started off as a bunch of utilities to augment Bell Labs UNIX. They only added a BSD kernel after AT&T said they could not use theirs anymore. While BSD was somewhat forced to create their own kernel though, the goal for GNU was always to have one. They just over-engineered it and dragged their feet ( opinion ) so long that they lost their niche.
The real problem for HURD was that, before HURD was completed, Linux appeared on the scene. Linux took advantage of the fact that GNU had created all these great POSIX compilers, applications, and utilities to kick-start the creation of an entire OS. Along with XFree86 ( X11 ), GNU was instrumental in Linux becoming a usable and useful system. Especially with the AT&T lawsuit against BSD, Linux was propelled into the spotlight to meet the need that RMS originally envisioned for the GNU OS and Linux exploded in popularity. Essentially, Linux has become the de facto POSIX system and all others have been pushed to the background; GNU HURD is just one example.
To RMS and the FSF though, what we have all been using is really the GNU Operating System that they had been creating all along. Sure, it was using the Linux kernel but that was just a temporary stop-gap until HURD was ready. That is why they insist on the term GNU/Linux as, in their minds, we are all using the GNU Operating System with a Linux kernel. If you switch to HURD, you can simply drop Linux from the GNU OS name.
Ok, so the point is simply that I think it is wrong to paint GNU HURD as “just another Linux alternative” that adds nothing. It is probably more historically correct to say that the Linux kernel is the GNU HURD alternative and that Linux is “just another POSIX compliant system”. If not for the GNU Operating System and its influence / role in POSIX, there may never have been a Linux at all. Credit were credit is due.
Now, I do not really side with the FSF and their point of view here other than thinking that the history is important. The fact is, Linux matters and HURD does not. Linux took over the world. HURD has never even really shipped. The term GNU/Linux is obnoxious and overstates the role of GNU in the CURRENT Open Source world. Very little software in a typical Linux distribution is GNU at this point. Sure, some of the most critical plumbing typically is ( compiler, C library, core utilities ). But all of these things have alternatives and can be replaced. Look at Chimera Linux for example ( Clang, MUSL, BSD userland ). It is very much a Linux but it includes very little GNU software ( I think maybe none by default ). It is certainly not a GNU/Linux.
I completely agree with your statement that “To end users these are just Linux with worse driver support and more problems”. Linux won. Linux is what people use. Linux is what people know. Linux is what introduced Open Source to most of us. In practical terms, alternatives only matter in terms of what they offer Linux users.
What made the GNU Operating System ( and therefore the HURD kernel ) different though was that it was TRULY Free Software in the RMS sense. That is what makes it special and “appealing” if that kind of thing appeals to you at all. Linux uses a modified GPL version 2 license that “breaks” the dreams that RMS had ( or has I suppose ) for the GNU Operating System. So, HURD is still waving that flag and fighting that fight.
I do not think most of us care though. The freedom that Linux brings is more than enough for most of us while also being extremely pragmatic and useful. Even if the ideology of HURD is attractive, there are a lot of practical trade-offs that make it hard to love. And many of us prefer the Linux ideaology to the that of GNU.
In the end, I think it is unfair to call HURD “just another POSIX compliant system”. Of the two, Linux is better described as “another POSIX compliant system”. However, Linux is ( in my view ) also a BETTER POSIX compliant system. RMS and the FSF would like to think that we have all been waiting for HURD and can finally move to it when it is available. In reality, almost all of us stopped waiting a long, long time ago and no longer care if HURD ever ships at all. ( other than historical and academic curiosity ). It is not just HURD. Nobody is trying to get back to “real” System V UNIX either. Only a few are hoping for a migration to BSD UNIX. In practical terms, Linux is POSIX now. Everything else POSIX is just chasing compatibility with it. And the size of the application ecosystem is pretty difficult to compete with at this point.
That said, something other than POSIX ( Linux ), something BETTER than POSIX would be certainly be welcome at some point.
Another good example is the musl variant of Void Linux. There is very little GNU in the base install, yet it’s perfectly usable as a daily driver operating system. Not everything has been ported yet, particularly things that depend on proprietary bits (Steam for example), but gcompat exists to lower that barrier somewhat.
No, the problem with your post is you aren’t dealing with the reality of how people relate to products, but with a mostly accurate history. No one cares that Oreo is actually a Hydrox rip off. For any 21 century citizen Hydrox is just another Oreo alternative. Oreo was more successful, the reasons why are historically interesting, but you can’t expect anyone who just wants an Oreo to care and they likely won’t appreciate the history lecture. Everything is viewed in relationship to the most successful of a category, not the historical innovator in that category.
In all seriousness, some likely call UNIXs like Solaris, HPUX, AIX as linux alternatives and honestly they aren’t wrong.
Bill Shooter of Bul,
You aren’t wrong, but I still found tanishaj’s post insightful even if the public are ignorant/apathetic of the history
Yeah, arguably these days linux compatibility is even more important for unix than posix compatibility. In the real world being popular can be more important than standards. Being popular means you get to decide where the industry goes while alternatives are generally overlooked regardless of merit. Sometimes this power is abused by market leaders, but for better or worse it is the way popularity contests work.
“some likely call UNIXs like Solaris, HPUX, AIX as linux alternatives and honestly they aren’t wrong.”
I completely agree with this actually and would not correct it. Linux is far more successful at this point and, as the de facto standard, it is the default choice. There would have to be a reason to choose an alternative. Calling other UNIXes ( including the BSDs ) “Linux alternatives” is totally valid in my view.
However, if you were to say that Hydrox failed ( or is going to fail ) against Oreo because “Hydrox does not offer anything original” I would jump in to let you know that your assumptions and conclusions are wrong because Hydrox came first. Sure, some of it is a history lesson I guess as I just think that acknowledging the pioneer is the “right” thing to do. The most important reason to be accurate though is to see clearly and to learn the right lessons.
Reaching ( and more dangerously preaching ) a completely wrong conclusion as to why one won against the other is a problem in my view. If the “just another” thesis is the dominant competitive factor, how do we explain that Oreo won? We would have predicted it not to. And if Oreo won, why can’t the next “just another” knock Oreo off the perch too? So, is “just another” truly a reason to dismiss something? The fact that Hydrox and Oreo are so similar paired with the knowledge that Hydrox came first reveals that there is something far more interesting about why I have Oreos in my cupboard and I have never had a Hyrdox. It is not just interesting but it is knowledge I can use to make better product decisions myself in the future ( either choosing them or stewarding them ).
I assume that the OS in OSAlert still stands for Operating System. As such, I would think that at least some of those on this site care about Operating Systems along with how and why they succeed or fail relative to each other.
HURD was arguably the original POSIX system and not “just another” one. Linux implemented the HURD API in order to get access to the GNU applications that were designed and developed against that API before Linux even existed.
In the hopes of not being misunderstood again though, one final thought….
As a Product guy myself, I do agree with your thinking as it relates to introducing a NEW product into an existing market. Even then though, sometimes compatibility matters more than differentiation. This is true even when you created that market such as when IBM failed to popularize the PS/2 in the “PC” market ( “PC” actually referring to the IBM PC compatible market and yet IBM could not compete ).
That is frankly more of a religious rant. It doesn’t address the statement that the end user experience won’t be any different.
As for Posix, well no one will break their compatibility with it because that would mean having to actually build their own desktop, SDK, etc. That’s way too much work for the open source community to undertake, unify on, etc. They’d rather make 2o different flatpack type software managers hoping for some magic bullet than unify and do the hard work of a few hundred programmers. Essentially all the Linux desktop stack is a poison to the open source world. Cheap and easy to implement to get a working desktop on your new kernel quickly, but the moment you start porting that stuff over your OS is doomed to be even more irrelevant than desktop Linux and it’s 1-2% market share.
Great summation but I think you leave a couple important things. First was the difficulty in developing a micro kernel os especially given processing power limitations of commodity hardware at the time Hurd was conceived. Running things like file systems in user space and the extra context switching has a major performance cost. The second issue was Stallman himself, you alluded to this when you mentioned you aren’t a fan.. He was outright nasty to people too often. Hi wasn’t exactly nice to people like Linus Torvalds who saw a path of coexistence between commercial and free software. Perhaps this prevented developers from working on Hurd and the necessary user space programs to make it a viable OS. I’ll leave out his defense of pedophiles as by that time Hurd had pretty much lost.
Tyman,
That’s a good point. These days monolithic kernels have become more hybrid kernels, but back then the context switches would kill performance at a time when users could ill afford cpu overhead.
The thing is Linus Torvalds was a notorious asshole and was responsible for a lot of nastiness in linux circles. At some point he realized he was hurting others and apologized.
https://arstechnica.com/gadgets/2018/09/linus-torvalds-apologizes-for-years-of-being-a-jerk-takes-time-off-to-learn-empathy/
So, I don’t think this was a factor in choosing linux.
Yeah, Stallman was definitely an extremist on this front and his judgements may even come across as grating. On a practical level I’m not sure how much this really mattered to corporate users since linus also chose GPL. The most obvious answer to me is that linux was ready when hurd wasn’t.
I don’t think Linus was an asshole in the formative years of Linux. In the early years he seem like sweetheart. Later on he seemed to develop that confrontation attitude after he returned to Linux after his Transmeta adventure. Linux at that point was already very mature.
Second point/comment on the coexistence thing, while both Linus and RMS were GPL on practical level it was just easier to deal with Linus and not worry he would fight you than RMS. Hence you were more likely to assign developers to Linux than RMS run projects. Which I think was a major reason Hurd was never ready despite being half a dozen years older.
I am genuinely fascinated that this effort still exists and produces something new. Hurd is one of the few alternatives to Linux that provides something useful, at least in theory. Nevertheless, I am longing for non-POSIX stuff.
It would be interesting to see a review of HURD.