Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The real reasons in this case is (1) it is inappropriate, and (2) it is incompatible with the PROTECTED and KERNEL builds where pthreads cannot be supported.

Why inappropriate?  Because..

pthread Interfaces Are User Interfaces

...

The KERNEL build, on the other hand, uses a Memory Management Unit (MMU) to create a virtual address space in which which there is still a separate protected kernel address space, but many user address spaces for user programs. These are usually called processes. This is the familiar build model that you find with high-end Unix-like systems such as Linux.

...

As alluded to before about the appropriateness of pthread in the OS. There is a roadmap for these kinds of features. That roadmap is to continue to conform strictly to the standard OS definitions of Opengroup.org and to continue to evolve as a fully compliant, very standard, tiny Unix-like operating system.

  • Part of this is getting all user interfaces out of the OS.
  • Another part is migrating all pthread support out of operating system and into the user-facing C library.
  • An additional objective on the roadmap is to streamline the kernel threads and to disconnect them from task groups.  Kernel threads should not be part of any task group.

In regard to this last point, the following is taken from From Apache NuttX Issu Issue 1108: "Remove streams from Kernel Threads":

No Streams in Kernel Threads

...