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

Lots of interest in Microkernels since everyone got tired of kernel vulnerabilities. So who won the Tanenbaum–Torvalds debate? It is too soon to say (Zhou Enlai said that of the French revolution - almost 200 years after the fact)

https://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_deb...

The article says that the focus is on 'PCs, tablets, and high-end phones'. Wouldn't a more secure OS be relevant to server environment? Is the performance cost of a microkernel considered to be too high for a server OS? Is it too difficult to do?



It was the only thing that worked without lots of physical redundancy in high reliability. It's only thing that worked against good pentesters in high security. It's widely deployed in embedded. The monolithic OS's started copying some of its traits for their benefits but kept things in kernel mode for performance. Why? They're running on CPU's optimized for monolithic instead of microkernel designs.

So, I'd say evidence leans in favor of microkernels being better. The cutting-edge isn't that, though. It's hardware/software combinations that give more reliability and security with better usability & performance than microkernels. Lots of work in languages, compilers, and CPU extensions. CHERI and CHERIBSD is probably top example with Spin OS, JX OS or Redox OS on something like Watchdog-Lite CPU being representative of language-oriented work.


Given the amount of shipped embedded systems and the hybrid designs from OS X and Windows, I would say Tanenbaum won.

The majority of embedded OSes have a microkernel design.

Also Windows and OS X have a kind of hybrid design, even if not a proper mikrokernel.

On Windows case,there are now a sandboxed kernel and drivers.

https://channel9.msdn.com/events/Ignite/2016/BRK4010

https://channel9.msdn.com/Blogs/windowsserver/Device-Guard-i...


Even with new features like Device Guard, Windows is all but a microkernel; parts of the GUI high-level primitives (like fonts) are in WIN32K.SYS. Even OS X moved a lot of drivers to kernel space, it's not a pure microkernel design like the Hurd.

If anything, the closest thing to a microkernel that is in wide use is Xen, or Hyper-V.


If you mean wide use on a desktop, sure. QNX is definitely microkernel-based, though, and it's used widely in automotive head units and now Blackberry devices. Way nicer to write device drivers for than Linux!


Which is why I said hybrid, I didn't say it is a mikrokernel.

In any case it is better than Linux will ever be.

Regarding Xen and Hyper-V, there is a systems paper that states hypervisors are the revenge of mikrokernels.


I am not sure what's left of the original microkernel design in the NT kernel. You could say Linux is hybrid too because of FUSE and VFIO.

But yes, I was thinking exactly of that paper when I mentioned hypervisors. It only applies to type 1 hypervisors though: not KVM, Beehyve, or OpenBSD vmm. Even VMware ESX is more of a hybrid kernel.


Windows 10 thanks to UWP, Pico procresses taken from the Drawbrigde project and the MinWin rearchitecture is probably more closer to that model than the NT 4.0 descendants were.

Regarding hyperviors, actually I think only type 1 hypervisors make sense.

The type 2 were just a workound due to lack of hardware support.


With Xen you have Linux running as dom0, not exactly a microkernel; what am I missing?


Having Linux as dom0 is just a matter of convenience for the Xen project not to write everything themselves, they could eventually get rid of it.

The point of the paper is that an hypervisor behaves just like a mikrokernel, with guest systems running exactly the same way as applications would do on a mikrokernel OS.




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

Search: