A few days ago, Marcus Brinkmann mentioned that the Hurd is likely to
move toward the NPTL thread model. From the context of our conversation,
I *assume* that he meant "... for native-mode Mach execution". When
running a POSIX environment one must of course implement pthreads.

NPTL is conceptually feasible for Mach because the Mach kernel has a
"threads within processes" process model. This is not true in Coyotos,
and we urgently need to understand if this requires an architectural
re-examination of assumptions. The Coyotos model is closer in spirit to
the LinuxThreads model, wherein threads are co-equal processes with some
shared state.


** Question for Neal and Marcus: what is the motivation for taking
Mach/Hurd to NPTL, and does the motivation carry over to Coyotos?


To start getting my head around this, I went poking around to learn what
the real issues were that drove the Linux kernel maintainers to adopt
the pthreads model into the kernel. Pthreads wasn't well designed, but I
understand that compatibility must sometimes trump architectural purity.
The question I was really interested in was: how much of the problem
would also be a problem for Coyotos.

As I understand matters, three issues motivated the move to NPTL in
Linux. In each case, the LinuxThreads behavior could not easily be
reconciled with the requirements of pthreads:

  1. Signal delivery and blocking
  2. Behavior of exec()
  3. pthreads broadcast operations

Does anybody know of any others?

_______________________________________________
coyotos-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/coyotos-dev

Reply via email to