Hacker News new | ask | show | jobs
by jacquesm 4160 days ago
The problem with this whole debate is that Linus was 'more wrong' than Tanenbaum and Tanenbaum made plenty of mistakes with Minix which also make it more of a macrokernel than a true microkernel.

A true microkernel does one thing and one thing only: pass messages.

Now that's an ideal and in the real world you don't get to have your ideals realized so rather than to be able to realize this spherical cow you're going to have add in a few more system calls to make it work but you'll end up with something a lot closer to plan9 or QnX and compared to those Linux is very very old hat indeed, it's basically a re-run of the 70's state of the art with a a whole pile of modern day hardware drivers and other goodies thrown in.

Tanenbaums biggest mistake was to try to monetize Minix through Prentice-Hall, if he'd just tossed it out there it would have picked up steam a lot quicker, but likely he too had bills to pay and his expenses at the time were probably a lot larger than Linuses, and so history was made.

So, Linus was obsolete, but so was Minix and the future as we could have had it is still waiting to happen. And when it does you'll finally appreciate just how obsolete Linux was back in 92, and how much more obsolete it is today.

Until then it's like democracy: not perfect but the best we've got (without shelling out lots of license fees for something better).

2 comments

> Tanenbaums biggest mistake was to try to monetize Minix through Prentice-Hall,

You make it sound like his capitalist motives worked against him.

Writing and publishing educational material was part of his job. Prentice hall had been publishing his books since the 1970's. I'm sure it seemed like the obvious way to publish his educational material - especially since minix wasn't a standalone thing, but it came with a book. Perhaps he even had an exclusive contract with PH. It probably didn't even occur to him that there was another way to publish the software.

Also, in 1991, making software available for download wasn't as straight forward as it is today. There was no www, and very few Europeans had access to the internet. I know for me a book with a disk would have been the only reasonable way to get it.

In 1997 in the suburbs of Chicago, a book with a CD was the only reasonable way for me to get linux... By that time I "had the internet" but it was 33.6Kbps dial up, beginner resource pages were lacking (so a book to teach me was nice), and downloading a full linux distro was going take to way too long (so CD was the way to go). Particularly as a 17 year old without a credit card to order CDs online from one of the early, untrusted, online merchants.
If cost was the only problem, why didn't Hurd take off? Did Minix not suffer from the same problems?
Cost was not the only problem with Minix, although it was pretty hefty (it would have been about $180 in todays dollars for me in the UK). For students (as both I and Linus were) that was a lot of money.

AST was firmly of the belief in Minix as being educational code, and hence only accepted patches along those lines. I don't remember if there was copyright assignment too, but there must have been something similar. This was at odds with the people who wanted to use Minix as their operating system.

For example the Minix of the time only supported 16 bit mode on x86 which meant no memory protection and only using about half a megabyte of memory on multi-megabyte machines. Someone produced fairly large patches that let it work in 32 bit mode, but they were never distributed as part of Minix because they didn't further the education goal (more code, harder to read and understand etc).

Another example was that the filesystem code was single threaded and only handled one request at a time. This meant easy to read and understand code, but dismal performance. Again this hindered those trying to use Minix versus those learning from it. This was such an issue that the original Linux announcement has this line:

    PS. Yes – it’s free of any minix code, and it has a multi-threaded fs.
Essentially Minix wasn't seriously usable, cost a lot, was not open source/community oriented, and was not progressing towards being usable. That is why so many of us jumped on Linux because it immediately worked, didn't cost anything, was 32 bit, had a rapid pace of development, and was trying to be usable.

On the Hurd side, there never was anything you could actually download and use. It was also developed very strongly in the cathedral style as many GNU projects were. Of course the promises were that "soon" there would be something. But Linux was there now and accepted patches without copyright assignment, and had rapid releases.

Hurd simply never was ready and/or welcoming outsiders that might have pulled it in a direction where the anointed did not want it to go (such as, actually releasing something).

Hurd and Minix both missed critical windows of opportunity and ended up so far behind Linux that they might as well not have bothered. For the longest time the only thing that kept new people flooding into Minix was Tanenbaums courses at VU.

Hurd not welcoming outsiders? My experience was opposite; for a short while I was a tourist on the dev list, and was never made to feel out of place.
Hurd was a research project as much as a working kernel.

I Think the project restarted 3 times in 10 years...

Linux may have been crude etc, but it was here, it was working, and it was free (in both senses of the word).

Frankly i see the lack of Linux on the desktop less about the quality of Linux, and more about MS abusing its market position and a massive failure to regulate.

"and more about MS abusing its market position and a massive failure to regulate." thats a pretty vague statement.

IMO its simply the fact that Windows/OSX have set a high bar of out-of-the-box usability and shine that GNU/Linux simply hasn't reached. Not that this is a bad thing, it just might be worth accepting that we can't compete on desktop.

Back during the netbook froth, they put XP on life support using a highly focused license that ended up defining what a netbook was (in essence a small, underpowered, laptop).

This while the early netbooks from Asus and Acer ran Linux installs that can be likened to ChromeOS, with a UI somewhat like Windows 8 Metro.

What they did may very well be considered market position abuse.

Linux has been my desktop OS of choice for over a decade now and it works just fine in that role.
Hurd failed mostly due to managerial incompetence. RMS was insistent on sticking with a Mach base, which at the time was both unfamiliar to his team and encumbered in licensing limbo. Thomas Bushnell, the former Hurd project leader, has said that if his plan to adopt a 4.4BSD-Lite kernel had been greenlit, then Hurd might have succeeded and Linux could have been a footnote.

Of course, if the BSD kernel plan went through, then Hurd would be quite different architecturally today. I'm not sure how versatile it actually was, though - perhaps a multiserver design still might have been possible.

See: http://www.h-online.com/open/features/GNU-HURD-Altered-visio...