On Mon, Apr 03, 2000 at 06:09:10AM -0700, Nick Hill wrote:
> 
> how do u explain pcmcia modules, that work in "user
> space"? and what about v4l drivers that ALSO work in
> user space? how do u explain the concept of LKM at
> all? u just cant say that LKM doesn't figure in the
> analysis. 

It's true that Linux has some of the attributes of the
micro-kernel design. But the main idea of the micro kernel
architecture was to have functionality distributed into
multiple address spaces and offer protection from one
another.

The multiple address space and protection boundaries ideas
are key to the concept. A LKM runs in the same address space
as the rest of the kernel and bugs in the module can crash
the whole kernel.

Microkernels were fashionable in academia for the last couple
of decades. But Linus argued that it was intellectual dishonesty.
His argument was that OSes are low level entities and 
that efficiency is more important than ease of debugging
and a "clean" architecture.

I tend to agree with Linus on this one. In fact, after getting
used to Windows boxes with a responsive UI at work, I now believe that
even windowing systems need to be monolithic, rather than being
split into a X server, window manager and the application, all
running on top of a kernel (you have 4 protected address spaces here
instead of just one on 'doze)

However, the trade-offs can be different in other cases. I was asking
this question on a FreeBSD mailing list: FreeBSD implements NAT in
a user level daemon, instead of a kernel module (ip_masq) as Linux does.
Why so ?

The answer I got was that the ease of debugging and maintenance and
acceptable performance dictated that design. So the answer really is
"it depends" (as always :-)

        -Arun 

-----------------------------------------------------------------------
For information on this and other Linux India mailing lists check out
http://lists.linux-india.org/

Reply via email to