Weird. When I read xkcd this morning it didn't mention anything at all about GNU/Hurd. Apparently my RSS reader decided to cut off the far right side of that image, so it just ended "In Fire." Checked the site and the whole image is there. The alt-text makes a bit more sense now.
The idea that some elderly neckbeard would, decades after the fall, still be painfully hacking away at Hurd amid the decaying remnants of a dead civilization is a vision easy to see.
It's more like a cultural curiosity. It's an attempt to get a full GNU system on top of a microkernel. Except they've never gotten a particularly complete system working with any acceptable level of performance on any of many microkernels attempted.
It was already a punchline when I started trying to play with it in college circa 2004 or so.
RMS has said it's no longer a priority for the GNU Project to complete Hurd, as Linux works as a free kernel. But some people continue to work on Hurd out of technical interest.
Multiple attempts at replacing the Mach microkernel have fizzled out, meaning it's not even academically interesting. If Coyotos or Viengoos or L4.Sec had ever worked out, there would be something genuinely useful that people might want to work on.
I wasn't aware there were attempts to replace Mach with something else inside Hurd. I am really interested if you can share a bit of history about this; Especially if it's related to L4 and capability-computing.
Same as Symmetry below, I would be interested in any L4 and seL4 based general purpose operating system project.
The GNU project tried to build an entire operating system. They published the parts they had built under the GPL. After Linus built his kernel, he and others started to use it, the GPL'd utilities from GNU and source from other places to build an entire operating system. That operating system is NOT the one that the GNU project was trying to build, and nowhere in the terms of the GPL does it say that by using this code you are required to give us credit or put us in the name.
And I don't think RMS's concern is that he wants credit. I think he wants a GNU operating system to further certain goals he has, and since a GNU operating system doesn't exist, he wants to make Linux that operating system and have Linux further his goals. But adopting GNU's utilities and even the GPLv2 has not made the people building the Linux kernel or most of the prominent Linux distributions adopt GNU's politics, and that's what all the sturm and drang about the name is really about.
> In any case, RMS is absolutely right about people not giving GNU enough credit in naming or in general.
If RMS wanted acknowledgement as a precondition for using components developed/maintained by GNU (or derivatives of those components), he should have included such a provision in the licensing of the components.
Its hardly as if RMS is a stranger to using licensing restrictions to achieving the world he wants to achieve.
Time was, gpl advocates would get all het up over the version of bsd that required derivative projects add in an acknowledgement statement, because making them do that was unfree.
So it's verbosity alone that makes "GNU/Linux" not just acceptable but morally required but "This product includes software developed by the University of California, Berkeley and its contributors." just beyond the pale. That explains a lot about RMS.
Historically, the people who put together a complete operating system have been free to name it whatever they want, and they generally did not use the name as a place to give credit for the components they included in their operating system.
The historically accurate way to view "GNU system" and "GNU/Linux" is as specifications, much like POSIX or the Single Unix Specification. An operating system can be said to be a "GNU system" or a "GNU/Linux" system if the meets the specifications for those, but that doesn't mean the maker of the operating system has to incorporate that into the name.
GNU is becoming progressively less and less important.
The "killer apps" for Linux have never been GNU. Apache httpd and XFree86/Xorg are by far and above the most popular applications on Linux, and they aren't GNU projects.
Graphically, GNU is at its nadir of influence. Freedesktop.org controls most cross-desktop standards, libraries, and services. GNU's own desktop environment GNOME is no longer nearly as popular as it used to be thanks to GNOME 3 being actively hostile to desktop users (and GNOME has always been part of GNU on paper only -- it's effectively a Red Hat project).
On the platform side, the init system has never been GNU. While the init system has always been a minor part of the OS, this is changing thanks to systemd (also a product of freedesktop.org) getting its hooks into everything on several levels.
Actually, I'd go as far as to say that freedesktop.org has far more influence on the userland than GNU does right now.
A canonical example of a killer app is something like Lotus 1-2-3 for the PC, or Halo for the original XBox -- something so compelling as to drive adoption of the host platform. Those are all pretty standard *IX command line utilities, not killer apps.
(They're also the sort of thing that I bet someone has coded in Rust or Go over a few weekends as an exercise, and as such they're probably the EASIEST bit of GNU code to rip out of Linux at this point if you wanted a Linux without GNU.)
> A canonical example of a killer app is something like Lotus 1-2-3 for the PC, or Halo for the original XBox -- something so compelling as to drive adoption of the host platform.
True, and I don't think the listed command-line utilities do that. OTOH, I do think that that presentation hints at the truth -- the "killer apps" that are driving Linux adoption aren't a big flashy end-user-facing 1-2-3 style apps, or even apps in the traditional sense, but lower-level more-technical features/tools that make developing on and for Linux attractive, or make Linux attractive for use in cloud deployments, etc.
In my opinion, the "killer apps" for Linux (aside from the Apache httpd that amyjess mentioned) are:
* A mostly Unix-like OS that runs on available commodity hardware, rather than requiring you to buy a SPARC, Alpha or POWER machine, you can buy a commodity x86 machine and use that instead. Because of economies of scale, commodity hardware is always going to be cheaper.
* Low (really no) licensing cost. The traditional model of scaling was that when your computer wasn't fast enough, you bought a faster computer. Linux's licensing model makes it affordable to scale horizontally -- to have lots of "slow" computers provide the same computing capacity as one big computer. In a "buy a computer and you have to buy my UNIX" world, any savings you can achieve by scaling out instead of up are offset by software licensing costs. Not in a Linux world, though.
Android using the Linux kernel doesn't make it a Linux distro any more than Linux using GNU code in its userland makes Linux the GNU operating system. (Or put another way, nobody thinks that iOS is "the most widely used BSD.")
Well, iOS uses the XNU kernel which has Mach as its basis, not BSD. It uses a lot of parts of the FreeBSD kernel, though, but it's definitely not tracking upstream FreeBSD the same way that Android is.
This relationship, however, exists purely on paper. Actual governance is performed by the GNOME Foundation, whose membership consists of all contributors to the project, and most (but not all) funding comes from Red Hat.
Edit: Beaten to the punch. That's what I get when I try to post and code at the same time.
GNOME project, and its products, are the work of the GNOME Foundation [0], not GNU/FSF.
GNU links to GNOME from the name "gnome" within its list of "GNU packages" [1], but GNOME is, and has been for some time, its own separate organization. GNU claims that things it lists as "GNU software" consist of software "released under the auspices of the GNU Project" [2], but that doesn't seem to apply to GNOME in any meaningful sense now, though historically GNOME was a product of the GNU project.
EDITED: to reflect historical relationship noted in cwyers reply.
> The Free Software Foundation (FSF) announced the release of GNOME (GNU Network Object Model Environment) 1.0 today at the Linux World Conference. GNOME is an integrated desktop environment designed to run on GNU/Linux systems.
> The Free Software Foundation, a tax-exempt charity formed in 1985, is dedicated to eliminating restrictions of people's right to use, copy, modify, and redistribute computer programs. It does so by protecting these rights through the GNU General Public License. The aim is to give people the freedom to cooperate with other computer users.
> "GNOME is a flexible GUI (Graphical User's Interface) that combines ease of use and the flexibility and reliability of GNU/Linux. We're very excited about GNOME and what it will mean for the future of GNU/Linux computing" Miguel de Icaza, chief designer of GNOME said earlier.
At one point, the G in GNOME stood for GNU (now GNOME is just a name, not an acronym), and the FSF was active in its maintenance.
My assumption is that the FSF used to be responsible for GNOME's governance before the GNOME Foundation existed, and nobody ever bothered to update the website afterwards.
That it's still listed is either stale, inaccurate data on a webpage or a relationship that only exists on paper, depending on how you look at it.
Oh, and all this just underscores my point that GNU has effectively no presence in the graphical sphere except for a few scattered applications (e.g. GIMP, Emacs).
As it stands, the Hurd consists of file servers on top of Mach called translators, which provide OS services. It's a rustier version of what Plan 9 achieves via the 9P protocol.
By academic standards the design is uninteresting and perhaps outdated, though if it had actually flourished in the 90s as it was intended, the use of a multiserver microkernel in a mainstream OS would have been quite the achievement back then.
If you are interested in trying a microkernel OS, Genode (genode.org) is pretty interesting, with a secure display architecture, ability to run Linux in a VM etc.
I wonder if someone is working on building an OS around seL4 now that it's open sourced? Obviously it would have to be designed differently than HURD is, but it sounds like it would be a nifty project.
A randomish additional thought. It seems like Arrakis[1]-like
system is much more natural since then your database and your filesystem are both user level processes who have been given access to different hard drives. And your webserver and normal networking process can be different processes that have been given access to different channels on your ethernet connection.
Of course I'm just a robotics engineer, this is all woolly speculation.
P.S.: Just checked xkcd, I guess it's because it have been mentioned in today's comic...