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.