將近一年前,英特爾發佈X86S規范(以前稱為"X86-S"),通過取消對16位和32位操作系統的支持來簡化英特爾架構。X86S是向前邁出的一大步,它放棄傳統模式,改進5級分頁,並對x86_64進行其他現代化改進。隨著Linux6.9內核的推出,更多的X86S位將在這一持續努力中到位。
一夜之間,Linux 6.9 合並窗口中的 x86 啟動改進就已發佈。這次合並將繼續改進 x86 早期啟動代碼,使其與位置無關。最終的目標是讓整個核心內核都能使用位置獨立代碼(-fPIC)構建。此外,還有早期控制臺改進、一些微優化和清理,以及更多 X86S 位。
在 Linux 6.9 中的 X86S 工作中,有一部分是為適應在Ring 0 中移除兼容模式,因此需要重新編寫"trampoline_start64"代碼。英特爾 Linux 工程師基裡爾-舒特莫夫(Kirill Shutemov)解釋說:
"重新修改 trampoline_start64()函數,隻有在需要更改分頁模式時才進入兼容模式。如果 CPU 已經處於所需的分頁模式,它將在長模式下繼續運行。隻要 CPU 已經處於正確的分頁模式,這一修改將允許輔助 CPU 在 X86S 機器上啟動。
未來,將有一種機制可以在分頁模式之間進行切換,而無需禁用分頁模式。"
是的,原來公佈的 X86-S 現在被稱為 X86S。英特爾 Linux 開發人員最近一直稱其為 X86S,而事實上,英特爾原始規范已於 11 月悄然更新為 v1.1,並在修訂歷史中註明名稱確實已從 X86-S 變為 X86S。
除正在進行的 X86S 工作外,Linux 6.9 還因合並英特爾 FRED而備受關註,這也是未來處理器的另一次大修......有可能與 X86S 同時進行。
Linux 6.9 的所有 X86/boot 改動都在此 pull request 中列出。