RE: SCO: "thread creation is about a thousand times faster than o nnati

From: Marty Fouts (
Date: Sun Aug 27 2000 - 21:20:39 EST

The paper that best describes Pike's point of view on threads isn't on line,
but would be

Rob Pike and Dave Presotto and Sean Dorward and Bob Flandrena and Ken
Thompson and Howard Trickey and Phil Winterbottom, Plan 9 from Bell Labs,
Computing Systems, Vol. 8, 3, pp. 221--254, Summer 1995.


There was a thread around that time in comp.arch or comp.os.research in
which Pike debated threads with others, if you can find an archive going
back that far, it might make his point of view clearer.

clone() is, of course, a subset of 'variable weight processes', an idea that
has been reinvented a half dozen times over the past 25 years.

For a 7 year old take on how to dissect the components of an OS into its
minimual possible set of features, you can read the Brevix design paper at
although I now consider Brevix to have been a waste of time. However, it is
clear in the distinction between persistent objects, name spaces, and
threads-of-control, as well as practically banishing the 'kernel/user'
boundary above the minimal virtual-machine implementation.

-----Original Message-----
From: []
Sent: Sunday, August 27, 2000 5:32 AM
Subject: Re: SCO: "thread creation is about a thousand times faster than
onnati (Matthew Wilcox) wrote on 24.08.00 in

> On Thu, Aug 24, 2000 at 08:18:00PM +0200, Kai Henningsen wrote:
> > wrote on 23.08.00 in
> > > <>: Linux processes are more
> > > lightweight than "threads" on many operating systems. As Rob Pike
> > > pointed out many years ago: a perceived need for "threads" means that
> > > processes are poorly designed.
> >
> > *Only* if the perceived need comes from performance issues.
> >
> > Threads are a rather nice programming abstraction *if used right*, and
> > processes (i.e. threads without shared memory) certainly aren't a
> > reasonable replacement, just as you wouldn't want to replace subroutines
> > with processes.
> i think you're misunderstanding pike's point. it is that you don't want
> to have threads because processes are too heavyweight, rather you should
> make processes less heavyweight. sharing VMs between processes is a more
> generally useful feature and shouldn't be restrained to the notion of a
> thread. needless to say, linux's clone() model is based heavily on pike's
> insight and plan9's rfork() model.

This is nothing but word games.

As clone() demonstrates, there are lots of things that you can share
between tasks; when you actually differentiate between "processes" and
"threads", the usual definition is that the former don't share VM, whereas
the latter do.

Can you point me to the text that makes Pike's original point? Google
certainly wasn't able to help me; I mainly found a recent article about OS
research that, IMHO, made enough mistakes to be a bad introdouction to
Pike. (Unless of course the original text is similar.)

MfG Kai
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

This archive was generated by hypermail 2b29 : Thu Aug 31 2000 - 21:00:20 EST