我正在阅读Robert Love的"Linux内核开发",我看到了以下段落:
没有(简单)使用浮点
当用户空间进程使用浮点指令时,内核管理从整数到浮点模式的转换.使用浮点指令时内核必须做的事情因架构而异,但内核通常会捕获陷阱,然后启动从整数到浮点模式的转换.
与用户空间不同,内核不具备对浮点的无缝支持,因为它无法轻易捕获自身.在内核中使用浮点需要手动保存和恢复浮点寄存器以及其他可能的杂务.简短的回答是:不要这样做!除极少数情况外,内核中没有浮点运算.
我从来没有听说过这些"整数"和"浮点"模式.究竟是什么,为什么需要它们?这种区别是否存在于主流硬件架构(例如x86)上,还是特定于某些更奇特的环境?从进程和内核的角度来看,从整数模式到浮点模式的转换到底需要什么?