Robert Love の「Linux Kernel Development」を読んでいて、次の文章に出くわしました。
浮動小数点を (簡単に) 使用しない
ユーザー空間プロセスが浮動小数点命令を使用する場合、カーネルは整数モードから浮動小数点モードへの移行を管理します。浮動小数点命令を使用するときにカーネルが行う必要があることは、アーキテクチャによって異なりますが、カーネルは通常、トラップをキャッチしてから、整数モードから浮動小数点モードへの移行を開始します。
ユーザー空間とは異なり、カーネルは自身を簡単にトラップできないため、浮動小数点をシームレスにサポートする贅沢はありません。カーネル内で浮動小数点を使用するには、浮動小数点レジスタを手動で保存および復元する必要があります。簡単な答えは:やらないでください! まれなケースを除いて、カーネルには浮動小数点演算はありません。
これらの「整数」モードと「浮動小数点」モードについて聞いたことがありません。それらは正確には何で、なぜ必要なのですか? この区別は、主流のハードウェア アーキテクチャ (x86 など) に存在しますか?それとも、よりエキゾチックな環境に固有のものですか? プロセスとカーネルの両方の観点から、整数モードから浮動小数点モードへの移行には正確に何が必要ですか?