Re: silent semantic changes with reiser4

From: Jeff Garzik
Date: Mon Aug 30 2004 - 23:39:25 EST


Linus Torvalds wrote:

On Mon, 30 Aug 2004, Tom Vier wrote:


On Thu, Aug 26, 2004 at 09:48:04AM -0700, Linus Torvalds wrote:

- safely synchronize globally visible data structures
That's quite fundamental. 99% of what a kernel does is exactly that. TCP
would be in user space too, if it wasn't for _exactly_ this issue. A lot

What about microkernels? They do tcp in userspace.


No they don't. They do TCP in a separate address space from user space, that just also happens to be separate from the "microkernel address space".

So a microkernel will have _more_ address spaces, and they won't be "user
space". They'll be "server deamon space" or something. Now, that's also
why they tend to have performance problems - because you need to copy the
data between different address spaces, and switch the CPU context etc
around.


Man, this thread came a long way. I peek in and see a pet topic...


_My_ own definition of microkernel, which differs from traditional CS, is where I would love to see Linux go: move as much as humanly possible to userspace, such that, the kernel only contains pagecache operations, driver fast paths, and security checks. Move slow paths, including ACPI probing, PCI bus walking, driver init/reset paths, some of the ioctl handling, to userspace. Be willing to accept extra context switches as a cost in all but the fast paths.

What you have left after you move all the slow paths to userspace is my version of a microkernel. The kernel is still monolithic and a single address space, but a lot smaller.

Now this (a) is likely just a pipe dream and (b) will increase complexity because each driver will _require_ a userspace component, but hey... you gotta have goals in life.

Jeff


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/