Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Tanenbaum mentions commentators on slashdot who never tried a microkernel. That's me and I never tried to write an OS either. Thanks for your thorough reply. Especially the last paragraph sounds interesting.

Suppose I'm just interested in desktop applications. Linux is already treated as a lost cause. That's what gets me because at the moment, the microkernels don't seem like an alternative in my case. If I'm not yet convinced by the opponents, I'm looking for facts, not anecdotes or authority. I can kind of understand the downsides of a free for all memory model, but Shapiro's rebuttal is lacking a bit of substance and doesn't quantify anything with a meaningful measure, probably because a model that shows the downsides might seem like a waste of time. That's him as a researcher putting the burden on Linus. That's not quite what I meant with shifting the goal post, though. Smaller steps are easier to take obviously, so shifting in that direction is helpful, but it also means adding more goals. I think, security and development speed are at odds here, too. I'd rather see them all cooperate (to my benefit, basically for free).



"Tanenbaum mentions commentators on slashdot who never tried a microkernel. That's me and I never tried to write an OS either. "

"Suppose I'm just interested in desktop applications. Linux is already treated as a lost cause. That's what gets me because at the moment, the microkernels don't seem like an alternative in my case. If I'm not yet convinced by the opponents, I'm looking for facts, not anecdotes or authority. "

Ahh, OK. Well, I'm guessing you probably used Windows/DOS desktops back in the 1990's, right? They were OK for apps but architecturally terrible. That meant they crashed a lot, slogged down under heavy load, and so on. UNIX and Linux didn't do much better outside of SGI's machines. Hell, were barely usable. You'll appreciate what this microkernel-based, concurrency-oriented desktop is doing if you remember those days:

https://youtu.be/BsVydyC8ZGQ?t=16m8s

Note: I couldn't even drag videos without them skipping back then. They do that in the demo while other stuff is playing. Too bad Microsoft had a monopoly and Jobs turned them down for Darwin in Next (later became Mac OS X).

An early great one that's in all kinds of stuff is QNX microkernel. It did a POSIX-compatible implementation w/ microkernel, fast message-passing, and hard real-time. Later showed off its capabilities with a desktop on a floppy with GUI, web browser, etc. Users, including Animats (Nagle) here, said you could be doing day-to-day stuff with big compiles in background with no hit to responsiveness due to its great scheduler. Once Blackberry bought it, they deployed it in the Playbook. If you used an iPad of the time (circa iPad2), then you'll be very impressed with the alternative's performance and responsiveness.

https://www.youtube.com/watch?v=vI1VgedbMUY

Note: I couldn't find the original demo showing it outperform iPad on most stuff. Several fan-made ones did but were boring. I'll spare you. Important part was alternating between web browser, (either a game or video here), and Need for Speed game with no apparent slowdown. Much like BeOS demo. These are despite Apple having a severe lead on them across the board. The results appear to be directly from QNX as its desktop prototype & embedded solutions had same properties.

Far as old school, the world still runs on IBM's mainframes for transaction processing and batches especially. Now days, they also run thousands of Linux VM's. Shapiro's EROS on x86 was modeled after KeyKOS: a capability-based microkernel system aimed at mainframes. It performed well enough to do the job plus virtualized IBM OS's, VMS, and UNIX. Allowed fine-grained separation, high-security enforcement, and persistence of all apps' state via checkpointing built into the VM. Core functionality supporting all that took 20Kloc.

https://www.cis.upenn.edu/~KeyKOS/

Latest entrants are MINIX 3 and GenodeOS, focused on reliability & security respectively. Each have something like 2-3 people working on them for only a few years doing a significant amount clean-slate. Thanks to architecture, MINIX 3 already achieved reliability that it took UNIX's decades to pull off. GenodeOS is alpha-grade usable on desktop right now while already deployed in embedded. Similar architecture in OKL4 microkernel is in 1+ billion phones mostly isolating basebands but sometimes virtualizing Symbian, Windows Mobile, or Android. Might be in your phone invisibly doing its job. Green Hills INTEGRITY or a variant of it is doing same in Samsung Galaxies via KNOX. Feel free to try any of those products to see how your performance, etc doesn't magically go away despite constant microkernel activity. ;)

So, hopefully these convey the experience of using a microkernel vs monolithic UNIX or mainframe stuff even if you're not personally using one. I hope seeing BeOS and Blackberry's QNX system scream on limited hardware will show you advantages or disadvantages aren't theoretical: the stuff works well enough sometimes faster than competition. I can only imagine how much easier to use, reliable, upgradeable, and performance my desktop would be had a billion dollars worth of labor been put into such architectures instead of UNIX/Linux. Especially given what small teams did with them.

"but Shapiro's rebuttal is lacking a bit of substance and doesn't quantify anything with a meaningful measure"

I gave you a link with tons of substance supported by research prototypes including Shapiro's like EROS. They theorized, built stuff to test, modified when differed from expectations, rinse, repeat. Whether the specific memory predictions come out true or not is barely relevant. What matters is "Will it perform well enough with the reliability, security, and maintenance advantages it claimed?" There was enough data in that link to prove that out several times over. I added examples for desktops and tablets in this comment. Now it's up to Linus to prove BeOS and Playbook users were experiencing a mass hallucination when those boxes were faster, more stable, and more usable than Linux-based systems. :)

Combo of cheap hardware, legacy effects, and lock-in to software killed off all desktop competition except projects that virtualize stuff compatible with major players. That's why you are stuck with Linux, QubesOS, maybe GenodeOS eventually, etc. Economics and social factors, not technical. "Worse is Better."

List of UNIX alternatives for you to investigate to see what superior attributes it could include or explicitly rejects:

https://news.ycombinator.com/item?id=10957020

Have fun with those. Especially Genera. Just imagine, with or without LISP, what developing and deploying on machines like that would be like. Still nothing that can do all of that.


So the Mach kernel is just not up-to-date with best security research? That's what MacOS runs on, I just noticed and wondered, why it still gets viruses. Which is just to the point I was trying to make. Well, besides moking Linus' abrasive type.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: