回答:
「カーネルスレッド」という用語は、完全にカーネルスペースで実行される実際のスレッドを指す場合や、カーネルによってスケジュールされたユーザースペーススレッドを指す場合もあります。「カーネルがサポートする」スレッドという用語は、ユーザー空間で実行されるがカーネルによって促進される後者のスレッドを意味します。これは通常、カーネルがそれらをスケジュールすることを意味します。
「ユーザーレベルのスレッド」とは、通常、ユーザー空間から見えるスレッドを意味します。つまり、スレッド化標準の「スレッドの作成」関数を呼び出すときに作成するものです。一般に、「ユーザーレベルのスレッド」という用語は、システムによる実装方法に関係なく、アプリケーションコードによって作成されるスレッドを意味するために使用されます。カーネルがほとんどサポートされていない、またはまったくサポートされていない純粋なユーザー空間のスレッドであるか、カーネルによってスケジュールされたスレッドである可能性があります。
pthreads標準は、純粋なユーザー空間スレッド(カーネルがプロセスをスケジュールし、プロセスがスレッドをスケジュールする)、カーネルがサポートするスレッド(カーネルがスレッドを直接スケジュールする)、またはハイブリッドアプローチ(カーネルがスケジュールする場所)として実装できます。カーネルレベルのスレッドは、ユーザー空間でユーザーレベルのスレッドをスケジュールします)。この規格は、特定の実装手段を要求していません。最も一般的な実装は1対1のマッピングであり、各ユーザーレベルのスレッドには、カーネルによってスケジュールされた対応するスレッドがあります。