Ich lese Robert Loves "Linux Kernel Development" und bin auf folgende Passage gestoßen:
Keine (einfache) Verwendung von Gleitkommazahlen
Wenn ein User-Space-Prozess Gleitkomma-Anweisungen verwendet, verwaltet der Kernel den Übergang vom Ganzzahl- zum Gleitkomma-Modus. Was der Kernel bei der Verwendung von Gleitkommaanweisungen tun muss, hängt von der Architektur ab. Der Kernel fängt jedoch normalerweise eine Falle und leitet dann den Übergang vom Ganzzahl- zum Gleitkommamodus ein.
Im Gegensatz zum User-Space bietet der Kernel nicht den Luxus einer nahtlosen Unterstützung für Gleitkommazahlen, da er sich nicht leicht selbst einfangen kann. Die Verwendung eines Gleitkommas im Kernel erfordert unter anderem das manuelle Speichern und Wiederherstellen der Gleitkommaregister. Die kurze Antwort lautet: Tu es nicht! Außer in den seltenen Fällen befinden sich keine Gleitkommaoperationen im Kernel.
Ich habe noch nie von diesen Modi "Ganzzahl" und "Gleitkomma" gehört. Was genau sind sie und warum werden sie gebraucht? Gibt es diese Unterscheidung bei gängigen Hardwarearchitekturen (wie x86) oder ist sie spezifisch für einige exotischere Umgebungen? Was genau bedeutet ein Übergang vom Integer- zum Gleitkomma-Modus, sowohl aus Sicht des Prozesses als auch des Kernels?