Linked by Thom Holwerda on Tue 9th May 2006 21:25 UTC, submitted by luzr
OSNews, Generic OSes Torvalds has indeed chimed in on the micro vs. monolithic kernel debate. Going all 1992, he says: "The whole 'microkernels are simpler' argument is just bull, and it is clearly shown to be bull by the fact that whenever you compare the speed of development of a microkernel and a traditional kernel, the traditional kernel wins. The whole argument that microkernels are somehow 'more secure' or 'more stable' is also total crap. The fact that each individual piece is simple and secure does not make the aggregate either simple or secure. And the argument that you can 'just reload' a failed service and not take the whole system down is equally flawed." My take: While I am not qualified to reply to Linus, there is one thing I want to say: just because it is difficult to program, does not make it the worse design.
Thread beginning with comment 123433
To read all comments associated with this story, please click here.
axilmar
Member since:
2006-03-20

The discussion between monolithic vs microkernel goes on because no one has realized the problem lies in the CPU: modern CPUs are very fast, but they do not offer anything in the modularization department.

There is a very easy way to provide modularization. The Motorola 68020 had a CALLM instruction that saved the current module in the stack and loaded a new module from the destination address. This mechanism could very easily be adapted to 80x86, since Intel CPUs already have a segmentation model: each procedure entry point could contain the new value for the CS register, and a special CALLM instruction could push CS on the stack then load the new CS from the destination.

And software wouldn't have to be modified at all: the O/S linker would patch exported module procedures and invocations of those procedures.

Reply Score: 1

nii_ Member since:
2005-07-11

Thats very interesting...

Maybe a complete overhall of the CPU design is required. Instead of working down to thinking of a better Kernel at the bottom of the OS stack, maybe CPUs could be designed differently to support modularisation and message passing and certain kind of simple pseudo-kernel interface calls, wrapped in an exokernel or microkernel on top.

Reply Parent Score: 1

Cloudy Member since:
2006-02-15

Maybe a complete overhall of the CPU design is required. Instead of working down to thinking of a better Kernel at the bottom of the OS stack, maybe CPUs could be designed differently to support modularisation and message passing and certain kind of simple pseudo-kernel interface calls, wrapped in an exokernel or microkernel on top.

It has been done. For a uniprocessor or shared-memory multiprocessor, even a NUMA system, you don't want true message passing, because it stresses what is already a weak spot in system performance, memory bandwidth.

What you do want is separation of addressability from accessability in the VM design and very fast "VM context" switching, ala the PID approach in processors like the PA-RISC.

Anyway, the majority of problems in OS design come from periphreal interfacing and not CPU architecture. If you really wanted to simplify OS design by simplifying system design, you'd concentrate on the i/o architecture of the system. (IBM 360 channel controllers, anyone?)

Reply Parent Score: 1

Cloudy Member since:
2006-02-15

The discussion between monolithic vs microkernel goes on because no one has realized the problem lies in the CPU: modern CPUs are very fast, but they do not offer anything in the modularization department.

Sure they do. see, for instance, the PID register in the PA-RISC architecture.

Reply Parent Score: 1