I knew some of the QNX guys,
work:~ call qnx
Dan Hildebrandt (QNX) 613-591-0931 x204 (RIP 1998)
That's me using my phone database. Dan was one of the few people who were allowed to touch the QNX core. It was tiny, it knew that the "micro" in microkernel meant small. The entire kernel fit in a 4K instruction cache. The whole thing. Hello people! Micro means small.
For the people out there that understand operating system design, these guys got it. And they managed to make a distributed kernel that worked. I worked on an 80286 (yup) with ~10 users logged in and working.
I'll give more details if anyone cares.
All that said, please allow me to vent about Mach. I know nothing about hurd.
Mach was CMU project and it was what happens when you let a bunch of people who know nothing about the real world write wack on an OS (and a VM system). It was happening at the same time I was getting a decent education from Uwisc. So it took me a while to catch up.
I caught up after having worked on a Unix port. I learned a lot, as would any of you in the same situation. Practice != theory.
I went back to grad school to get a PhD and ran into a class where they were pushing Mach and I listened for 15 minutes and then I just couldn't take it any more and stood up and said "it doesn't work like that". The prof and I went back and forth for a few minutes and then I took over the class and taught it.
Blah, blah, blah, I haven't really made the case against mach. I have wife and kids waiting on me, I can come back and try and do better. My view of mach is that it added nothing to the body of OS work. BSD did - they added networking. Sun did - they added VM. QNX did - they added a microkernel. Mach - they added marketing in my opinion and nothing else.
What would be interesting is not a post about how GNU is going to do what has already been done but instead how they are going to do something that hasn't been done.
In one dimension, free vs paid, GNU has won and won big. That's not quite right. Open source has won and won big. Not fair to let the FSF get all the credit (believe me I can go on and on about that).
But in another dimension, innovation, building something the world has not yet seen? Hmm. I'd be very impressed to see that announcement from the FSF. That would be awesome.
Also agree on Mach, although somehow NeXT/Apple seem to have managed to make a very good modern OS out of it - with a lot of Mach cruft hidden in the basement. The original NeXTStep Kernel suffered seriously from memory leakage and instability. Unbelievable it became the basis of iOS much later.
Back to micro, if you've ever looked at L4, I'd love to read your opinion of it. That project seems to have splintered off as in several direction, and even though it's apparently successfully used for embedded stuff, all the open research stuff seems to have stalled (edit: apparently not stalled, but active into very specific niches).
Please, do continue when you have the time. Cheers!
So Mach's VM was being done around the same time as the SunOS 4.0 release which had Sun's VM system (that implemented mmap() and friends for the first time) as well as Sun's vnode virtualization of the file system. As a side effect almost all of the buffer cache vs page cache mess went away (for those who don't know in the distant past pages were one thing and file system buffers were another. Ponder that for a minute and tell me what's wrong with it. Hint: bcopy()).
I was reading all those papers from Joe Moran and Rusty Sandberg and Steve Kleiman; I really really wanted to work at Sun, to me it was the Bell Labs of the day, so I was slurping in everything I could find to read and think about.
I read the Mach papers and later had a chance to wander through the source code. The best way I can say it quickly is that with some things you don't get it and you wander around for a while and eventually the fog clears and you see the architecture. Sun's stuff was like that, when it snapped into focus it was a thing of beauty. The Mach stuff never snapped into focus, for me. Maybe someone else can see how awesome it is but all I saw was a mess. Yeah, it worked, but so do a lot of messes. The good stuff is architected in a way that leads you to respect and maintain the architecture.
Gotta run, here is betting Bryan C will find this thread and add to it :)
Its equivalent to a haiku poem of OS code and design
I wish it was trully open source.. maybe now that Blackberry .. (we dont know for sure what will happen to it) they maybe
could share to us all.. so this nice enginnering effort coudl have a great future?
Anyway, just one of the things on my wish list :)
My personal opinion is completely uneducated, merely one of quaint amusement that the GNU kernel is still going strong. Perhaps this is a prelude to GNU taking over in 15 years like Linux took over 20 years ago. For now though, it's nothing more than a novelty to me.
So it was great the same way Smalltalk and ITS were great: It was wonderful, but most of us couldn't use it, so it was worthless. Technical acumen doesn't matter if the result isn't out in a usable form.
First hand experiences?
Ok, I get that the GNU has always wanted to make an OS that they can get credit for (GNU/Linux folks, I'm looking at you), but still.
I suppose that they can make the case for making a non-monolithic kernel, but that doesn't seem necessary to me.
I feel like all the years of dev work on HURD could have been better spent on other projects, but it's not my time :(
> I feel like all the years of dev work on HURD could have been better spent on other projects, but it's not my time :(
I don't really think it's nearly as many developer years as you think. HURD isn't that big a project; it's a few people, working on what they want to work on. Most of the actual development effort goes into the Linux kernel.
There's room for more than one free kernel out there. Heck, there's room for a lot. There are still people using and developing FreeBSD, NetBSD, OpenBSD, DragonflyBSD, Darwin, Haiku, ReactOS, and more.
So it starts first on a compiler, then to basic libraries, and then to a kernel. I applaud the team for continuing on the path set forth in that announcement.
For many years, it's been the effort of a handful of volunteers. Lots of GNU development has continued aside from HURD, so it's not as if HURD development has been a significant drain on getting any other useful work done.
I don't consider any of these to be a waste of time in the least; some move quicker than others but ultimately every one of these projects is advancing the state of the art and we may one day see the fruit of this difficult type of work (building kernels from scratch).
I just hope he gets some help and is able to work his issues out.
Stallman said that by using the mach-kernel they hoped to get finished faster, as it turned out this was a big mistake which he acknowledged as his own and as soon as Linux took off they started focusing on improving the GNU toolchain in conjunction with Linux.
The Hurd is still in development today because there are people who like working on it during their spare-time, just like all the other alternative kernel/os projects out there.
So that they can get credit? I don't think the GNU Project had anything to do with achieving reputation, but rather to spread an ideal of free software.
Hurd development has been pretty sporadic in general. Just look at GNU's project catalogue: it's vast. That said, if Stallman hadn't egotistically intervened into Bushnell's original plan to adopt the 4.4BSD kernel, the Hurd could have stood a chance.
But no development is a waste.
A lot of people (myself included) probably don't think Linux is the last kernel to rule them all, ever. It doesn't distribute itself well, it is quite large, and its speed is derived from its massive developer staff. Simplifying your kernel doesn't really matter when it has hundreds of active contributors, but what about in a hundred years when all the current Linux devs are gone, and you have to try to get new generations to adopt the code base and maintain it?
Competition makes everybody better in the long run. Also, sometimes things are just ahead of their time, and don't "come into their own" until later. It's still entirely possible that Hurd will prove to be very important and useful for some class of application(s).
I feel like all the years of dev work on HURD could have been better spent on other projects, but it's not my time
Exactly. The people working on it chose to work on it, and none of us have any standing to tell them that they were wrong for doing so.
I can understand why people are making HURD, but I'll stick to Linux for now :P.