Re: silent semantic changes with reiser4

Jeff Garzik
2004-08-31T04:38:32Z

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