RFC: Memory protection in modules (stability)

Fabio Olive Leite (leitinho@akira.ucpel.tche.br)
Tue, 1 Apr 1997 19:59:21 -0300 (GRNLNDST)


Hi there,

I've been thinking about Linux's stability (I know, mine is rock solid
too:), and what arguments do we have to support this fact.

Micro-kernels have a great stability because most of the operating system
runs on userspace, with memory protection. That can be achieved with
Linux, just compile a kernel with IPC, minimal device/filesystem support
and run all other stuff as privileged daemons communicating with message
queues.

The biggest bottleneck in this approach is exactly the message passing and
context switching stuff. You have lot's of switches and buffer copying
before you can read a disk block, for example.

Linux already has a micro-kernel-like design, considering the module
support. People say "Hey, Mach is so cool 'cause I can debug a filesystem
driver without rebooting". We already have an answer for that with all
that wonderful module stuff.

And we even don't have the context switching/message passing overhead, as
modules are dinamically linked to the running kernel. The problem is that,
AFAIK, modules can access kmem directly, and thus a buggy net card module
can suddenly overwrite VFS code, or something else. That doesn't happen on
micro-kernels, 'cause things run on userspace.

The question is, is it feasible to have memory protection on modules? How
would that be? That would be kind of a context switch inside the kernel, I
think. But it would get Linux _much_ more stable, and we would be able to
say exactly why it is so good.

Just food for thought. Maybe this is on 2.1 (or is it already 2.2?:) and
I'm clueless... :)

Please Cc: me, as I can't cope with linux-kernel traffic.

[]!
Fabio
( Fabio Olive Leite leitinho@akira.ucpel.tche.br )
( Computer Science Student http://akira.ucpel.tche.br/~leitinho/ )
( )
( Learn the hell outta everything. Mix it all up. Exercise madness. )