0

As I know, shortly after Linus Torvalds liberated the Linux kernel it was implemented in GNU operating system which is since then known as GNU/Linux or GNU+Linux.

From the GNU article in Wikipedia I understand the GNU OS kernel is Hurd.

Was Hurd created as a modification of Torvalds's Linux kernel?

  • 7
    For a very, very long time, there was the question whether Hurd was created at all. And it still somewhat is. – tofro Jun 2 at 8:50
  • 11
    Come on. You're already reading the wikipedia article, but couldn't click through to the GNU Hurd article to read about it? – pipe Jun 2 at 10:42
  • 9
    You're using weird terminology IMO. What do you mean by "Linus Torvals liberated the Linux kernel"? And by "it was implemented in GNU operating system"? – Roel Schroeven Jun 2 at 11:25
  • 1
    @RoelSchroeven It does almost feel as if there is an intention to prove a very specific poitical point. Doesn't it? – Raffzahn Jun 2 at 22:55
  • 1
    @Raffzahn Not impossible, but in such cases I prefer to assume good intentions until proven otherwise. – Roel Schroeven Jun 3 at 7:21
15

No. The Hurd was a separate effort, using a microkernel design. Some computer scientists believe this to have more appealing properties than the pragmatic monolithic design of the Linux kernel, but it is also more difficult to implement, which is partly why the Hurd was not delivered in a timely fashion and the world ended up going with Linux.

  • 1
    " it is also more difficult to implement" - in theory the opposite is true because it breaks up the kernel so it can be compiled separately and loaded on the fly. In practice, one can do that with a monokernel as well, with some work. More importantly, the micro adds overhead that has never been successfully avoided at a large scale. – Maury Markowitz Jun 3 at 18:39
  • 1
    Now read blog.darknedgy.net/technology/2016/01/01/0 . – JdeBP Jun 5 at 18:13
8

No, Hurd kernel had been in developement for a few years before Linux kernel was released.

  • 2
    Do you have anything to back that up? – Chenmunka Jun 2 at 11:11
  • 7
    From the mouth of RMS: gnu.org/software/hurd/hurd-and-linux.html – Tommy Jun 2 at 12:05
  • 4
    Per Wikipedia, GNU Hurd development started in 1986 (based on MIT/TRIX), was abandoned, then restarted in 1990 (based on CMU Mach). The initial release of Linux was in September of 1991. – Kelvin Sherlock Jun 2 at 13:50
  • 7
    I was at university during the early noughties; at the time one professor used Hurd and Linux to demonstrate the difference between what can happen if you sit down and tirelessly plan versus if you just start coding and don't worry about an all-encompassing plan in advance. – Tommy Jun 2 at 15:04
  • 3
    @Tommy: Indeed. It is quite funny to look at all the statements Linus made when he originally released Linux. "It will not be as big and professional as GNU", "It is intimately tied to 386 and cannot be ported", also he deemed making it support multiple CPUs close to impossible. – Jörg W Mittag Jun 3 at 15:01
2

No, they were independent developments.

However, the situation is a little bit more complex. Hurd is not just a Linux with a different kernel, also the structure of the OS is highly different.

GNU Hurd is a microkernel. That means that the actual kernel does as little as possible. The ordinary kernel functionality is being done by user space processes, communicating with the microkernel and with each other.

For example, the ext4 filesystem driver is a kernel module in Linux. That means it is a collection of functions in a library, what converts the ext4 filesystem operations to block device operations.

In Hurd, the ext21 filesystem driver is essentially a daemon, service. Just like, for example, the Apache web server. The ext4 filesystem operations are talking with this daemon.

A Microkernel-based OS has also the feature, that the actual microkernel is actually an easily replaceable part of the system. The important part of the system is the collection of its daemons.

GNU Hurd is the abbreviation of "Hird of Unix Replacement Daemons". During its development, the actually used microkernel was changed multiple times.

Thus, what we understand on the "Linux kernel", is a "microkernel + the collection of the Unix replacement daemons" in the sense of the GNU Hurd.

Thus:

  • Some of the code of the daemons is probably derived from Linux kernel code. Particularly the filesystem drivers.
  • Its microkernel is an entirely independent development from the Linux kernel.

The sum is that probably it has much Linux kernel code, it is mainly a different product (note, both systems being GPL, it is not a major question from the intellectual property view).

1As far I know, ext3/4 support is not developed yet.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.