Linked by Thom Holwerda on Mon 21st Nov 2011 11:25 UTC, submitted by moondevil
OSNews, Generic OSes You all know MINIX - a microkernel operating system project led by Andrew Tanenbaum. The French Linux magazine LinuxFr.org has an interview with Andrew Tanenbaum about MINIX' current state and future. There's some interesting stuff in there.
Thread beginning with comment 497896
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Linux is practical
by Alfman on Tue 22nd Nov 2011 06:46 UTC in reply to "Linux is practical"
Alfman
Member since:
2011-01-28

zimbatm,

"Microkernel design took much longer to crystallize so that it wouldn't have race conditions and be efficient."

I think you are right that early on in a kernel's development, a macrokernel takes less work. As it gets more and more complex though, a microkernel should theoretically pull out ahead by being easier to manage.

Microkernels are a natural fit for contract based programming where independent developers can work on different components without stepping on each other. This is absolutely a shortcoming of linux today, where each kernel causes new things to break for out of tree developers and modules have to be routinely recompiled in unison or they'll break.

"By the way, Linux supports replacing the kernel on the fly since many years, and it's called kexec."

I don't believe this is what was meant by not rebooting. What was meant was updating the kernel in place without loosing state such that applications won't notice the upgrade. So for instance, all the running applications and all their in-kernel handles and sockets need to be saved and restored right back where they left off after being patched. Supposedly ksplice does it.

Reply Parent Score: 1

RE[2]: Linux is practical
by zimbatm on Tue 22nd Nov 2011 17:55 in reply to "RE: Linux is practical"
zimbatm Member since:
2005-08-22

Well said.

It's exactly what I meant. It's feasible to build an efficient and robust micro-kernel but contracts are hard and should put in the right place to not impact performance too much.

Another aspect was that personal computers didn't have hot-swappable components (even today except for SATA and USB). Once the bugs are ironed out of the drivers, there is little use of compartmentalization if you need to reboot your computer anyways. Moreover, if the CPU, RAM, bus or disk fail there is little you can do.

In the end I believe that micro or macro, all practical kernels (as in not for reasearch) tend to go in the same direction even if they didn't start at the same point. Darwin for example has a micro-kernel (Mach 3) base but got augmented with some BSD code. Linux adds compartmentalization where needed.

That said, I'm not an expert so what I'm saying might be bullshit ;)

Reply Parent Score: 1