幾天前 Linus Torvalds 表達了他對終止支持的看法 用於處理器架構 Linux 內核中的 i486。 幾天前在一個線程中討論了舊架構,該線程著眼於內核如何更好地處理最近最少使用 (LRU) 列表,這是一種跟踪內存頁面的方法。
而 Torvalds 調查了代碼 合作者中, 似乎對包含解決方案的需要感到沮喪 足夠的 對於較舊的 CPU。 因此,他建議終止對舊套件的支持,這可能是解決內存問題的更簡單方法。
“我們在 386 年擺脫了對 i2012 的支持。也許是時候在 486 年放棄對 i2022 的支持了? 萊納斯·托瓦茲 說
我們已經做到了(誠然錯誤:不是 SMP 安全的,即即使面對來自多個執行線程的同時訪問,它也能正常工作,但 SMP 類 486 機器從未得到支持,即使它們在技術上存在)
應該記住的是 i486 CPU系列於1989年發布 目前很少有 Linux 發行版,如 Gentoo、Slackware 和 KNOPPIX 繼續支持這種架構。
根據托瓦茲的說法, 支持很少人使用的過時架構導致的問題 通過取消他們的支持,他們可能更容易解決。 舊處理器的 LRU 內存管理也屬於這種情況。
老實說,我不介意將最低要求升級到至少 M586TSC,同時留下一些早期的“假奔騰”克隆。 因為 'rdtsc' 可能是比 CMPXCHG8B 更嚴重的問題。
它 這一切都歸結為 cmpxchg8b,一條比較然後交換八個字節的指令 (或 64 位)計算機內存中的信息。 郵件列表成員 Peter Zijlstra 建議 Linux 應該只支持能夠執行此操作的處理器,將 486 位 i32 拋在後面,這意味著更新的 Linux 內核將在 P5 類硬件或更新的硬件上運行。
cmpxchg8b 指令 是“F00F”錯誤的罪魁禍首 從最初的 Pentium 開始,沒有操作系統緩解措施的受影響 CPU 停止工作,直到在提示執行指令時重新啟動它。
實際上,我完全不明白為什麼當前的內核在 i486 上運行,因為它看起來像 exit_to_user_mode_prepare -> arch_exit_to_user_mode_prepare,並且最終有一個無條件的“rdtsc”語句。
我假設你沒有啟用它。RANDOMIZE_KSTACK_OFFSET*? 換句話說,我們的非奔騰媒體目前處於活躍缺陷和損壞狀態。
據他介紹, 高度懷疑 i486 硬件是否仍然相關。 毫無疑問,世界上還有這樣堅定的人,誰相信由此產生的問題可以很容易地克服,但從內核開發的角度來看,這個位置並不真正相關。
“所以我真的認為 i486 級硬件不再重要。 是的,我確定有(Maciej 就是一個例子),但從內核開發的角度來看,我認為它們並不真正相關。 在某些時候,人們將它們作為博物館藏品。 他們還可以管理博物館的核心。
不得不說,架構 i486 於 1989 年首次亮相,並於 1993 年被英特爾的奔騰取代。 英特爾在 486 年淘汰了 i2007,如今其著名的 Ark 產品詳細信息數據庫未提及處理器系列。
那些很久以前仍在使用這些設備的人放棄了在沒有支持的情況下這樣做,沒有獲得新套件的可能性,也沒有軟件開發人員考慮過該平台。
有關詳細信息,Intel 80486 (i486, 486) 是 x86 系列的微處理器,由 Intel 製造。 它於 1989 年發布。在處理器架構方面,80486 與它的前身 Intel 80386 非常相似,只是增加了一些額外的指令。 因此,它是一種 CISC 架構。
從微架構的角度來看,當時有很大的改進:集成的統一指令和數據緩存、可選的集成浮點處理單元(FPU)和改進的總線接口。
最後他提到 擁有 i486 處理器系統的用戶將能夠使用內核的 LTS 版本這將持續很多年。
出於各種原因,例如簡化和優化代碼、減少內核複雜性和維護,或專注於更現代和流行的設備,Linux 內核可能會刪除對舊型號處理器和設備的支持。 可以從 Linux 內核支持中刪除的舊模型的一些示例包括:
較舊的處理器:例如 Intel i386、i486 或某些較舊的 AMD 處理器。 這些處理器非常老舊,不支持 Linux 內核的最新功能。
舊的外圍設備:例如磁帶驅動器、軟盤驅動器或一些舊的聲卡或視頻卡。 這些設備現在不太常見,因此可能會取消對它們的支持以降低內核複雜性。
過時的技術:例如支持 IPX 網絡協議,這是幾十年前計算機網絡中普遍使用的。 隨著技術的進步和變化,對已棄用技術的支持可能會從內核中撤消。