Linux 6.8將輸出提示讓使用者知道何時停用x86 32位元支持
Linux 6.7 引入了”ia32_emulation=”啟動選項,用於啟用/停用對x86 32 位元程式的支援以及執行32 位元系統呼叫的能力。這是一些Linux 發行版努力限制x86 32 位元用戶空間支援的一部分,目的是在不需要的地方減少軟體攻擊面,同時為那些希望啟用32 位元支援的用戶提供一個啟動時選項,或在核心建置保持啟用32 位元支援的情況下停用32 位元支援。
雖然可以透過/proc/cmdline 檢查”ia32_emulation”選項是否被設置,但Linux 6.7 中的一個疏忽是,當該選項被覆蓋時,內核日誌(dmesg)沒有明確告知。在Linux 6.8 中,當x86 32 位元支援被停用時,dmesg 輸出中將顯示下列資訊:
![image.webp](https://i0.wp.com/static.cnbetacdn.com/article/2024/0117/f495b0fb07d7f5f.webp?w=640&ssl=1)
“32 位元模擬已停用。您可以使用ia32_emulation=on 重新啟用”。(”32-bit emulation disabled. You can reenable with ia32_emulation=on”)
同樣,這只是針對運行Linux x86_64 的x86 32 位元用戶空間的支援。舊的Linux 32 位元軟體仍然可以在現代Linux 內核上運行,但對於即將推出的廠商內核,尤其是在企業環境中,它們可能會預設限制32 位元軟體的運行…… 在這種情況下,你只需了解”ia32_emulation=on”核心選項。
隨著Linux 6.8 合併視窗的進行,這項變更作為x86/misc 的一部分出現了。除了明確說明32 位元支援何時啟用ids 之外,還修正了在num_digits() 中計算數字時可能出現的溢位問題,並更好地記錄了/proc/cpuinfo 在x86/x86_64 系統上的使用方式。