[IND] 6 分鐘閱讀OraCore 編輯部

Linux 真的要丟掉 i486 了

Linux kernel 可能在 7.1 移除 i486 支援,M486、M486SX、MELAN 這些設定將不再可用。這次不是砍掉所有舊碼,而是先停止替 486-only 系統提供新核心建置。

分享 LinkedIn
Linux 真的要丟掉 i486 了

Linux kernel 真的要把 i486 支援收掉了。這次動作很明確,會直接拿掉 Ingo Molnar 提出的 M486、M486SX、MELAN 設定。講白了,以後新的 upstream kernel 就不再能替 486-only 系統編譯。

這件事表面上像是在清垃圾。其實它反映的是 x86-32 維護成本一直在墊高。Linux kernel 7.1 如果真的接手這個變更,代表 486 支援的時代,至少在主線分支裡,真的快要結束了。

為什麼現在才動手

訂閱 AI 趨勢週報

每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。

不會寄垃圾信,隨時可取消。

486 支援留在 kernel 裡很久了。久到很多人以為它只是背景噪音。可是真正有在維護核心的人都知道,舊 CPU 支援不是免費的。每一條相容路徑,都會多出 review、測試、除錯成本。

Linux 真的要丟掉 i486 了

這次 patch 的重點,不是立刻把所有 486 相容碼刪光。它先做的是停止讓新 build 走進這條路。這種做法很 Linux。先關入口,再慢慢整理裡面的舊東西。這樣比較不會一次炸掉一堆 build 假設。

而且 486 的實際使用者真的少到可憐。對現在的 kernel 團隊來說,維護這些設定不像是在服務使用者,比較像是在照顧歷史包袱。說真的,這種工作很耗人力,還不太會被一般人看見。

  • Patch 作者:Ingo Molnar
  • 目標版本:Linux 7.1
  • 受影響設定:M486、M486SX、MELAN
  • 提案時間:2025 年 4 月
  • 前一次大清理:80386 支援在 2012 年移除

Linus Torvalds 的態度很直接

這件事不是突然冒出來的。Linus Torvalds 很早就講得很白。他的意思很簡單:i486 級硬體早就不該再放在主線 kernel 的核心考量裡。

“I *really* don't think i486 class hardware is relevant any more,” Torvalds said in 2022, adding that old machines might as well run museum kernels.

這句話很有代表性。Linux kernel 不是古董展示櫃。它要服務的是現在還在跑的機器,不是所有歷史上存在過的 CPU。只要某個功能已經幾乎沒有真實使用者,maintainer 就會開始問:留著到底幹嘛?

Molnar 在 patch notes 裡也講得很直。他認為這些 486 相容 glue 會吃掉開發時間,還可能引進奇怪 bug。這種成本不會一次爆出來,但會慢慢滲進每次 review、每次 refactor、每次測試。

你可能會想問,既然影響這麼小,為什麼還要動?答案很現實。kernel 團隊不是在做懷舊工程。每少一條老路徑,現在的維護就少一點摩擦。

技術上到底改了什麼

這次提案的做法比早期版本更乾脆。原本有人討論過,用 TSC 和 CMPXCHG8B 這類指令當門檻。現在的方向更直接,就是把 486 家族的 Kconfig 選項移掉。

Linux 真的要丟掉 i486 了

這種改法像是在切斷入口,而不是進屋子裡一間一間慢慢收。好處很明顯。設定樹會更乾淨,半殘的相容組合也比較不會繼續躺在那裡。對 kernel 這種超大專案來說,少一點模糊地帶,通常就少一點未來的麻煩。

更重要的是,這不會讓現有使用者突然斷電。Molnar 也提到,最近幾版 kernel package 本來就幾乎不再支援 486。換句話說,真正還在用 486 的人,本來就只能守在舊版 kernel。

  • 早期討論:用 TSC、CMPXCHG8B 當門檻
  • 最新方向:移除 486 專用 Kconfig 項目
  • 直接效果:主線 kernel 不再能替 486-only 系統建置
  • 實際影響:多數使用者幾乎無感
  • 歷史對照:80386 支援已在 2012 年退場

跟其他平台比,Linux 這次算保守

如果你常看軟體圈,就會發現 Linux 對舊硬體的處理一直算溫和。很多專案是直接砍,連過渡期都不給。Linux 比較像先公告、再收斂、最後才動刀。這次也一樣。

拿其他平台來比,差異很明顯。Windows 和 macOS 早就不把 486 這種年代的 CPU 當回事。主流發行版也早就偏向 64-bit。現在還卡在 x86-32 的,多半是工控設備、舊嵌入式板子,或是純粹愛玩老機器的玩家。

所以這次不是「Linux 不支援舊硬體」這麼粗暴。比較像是主線開發已經不想再替這類硬體付帳單。這個帳單不只是一行程式碼。它還包含測試矩陣、CI、文件、維護者的注意力。

  • GRUB 這類開機鏈也早就偏向新平台
  • Debian 仍保留部分舊架構討論空間
  • Arch Linux 早就把焦點放在新硬體
  • 主流桌機與伺服器幾乎都已轉向 64-bit
  • 486 只剩少數懷舊用途與特殊工控場景

這件事背後的產業脈絡

Kernel 砍舊架構,通常不是因為大家突然討厭老機器。真正原因是開發資源有限。當一個專案每天都在處理安全性、效能、硬體相容、記憶體管理,你真的很難再把精力放在幾乎沒人在用的 CPU 上。

這也是開源世界很現實的一面。理想上,程式碼可以永遠往後相容。實務上,維護者會一直問:這段東西還有多少人靠它吃飯?如果答案接近零,那它就很容易被排進清理清單。

對台灣的開發者來說,這件事也有提醒作用。你如果在做 embedded、工控、長週期設備,千萬不要假設 upstream 會永遠照顧你的舊硬體。最好提早規劃 kernel 版本、toolchain、以及安全更新策略,不然哪天 upstream 一收,你就只能自己扛。

我覺得這種變更很正常。不是冷血,是工程現實。專案越大,越不能把時間花在幾乎沒人碰的分支上。把 486 支援收掉,等於替後面的維護工作減壓。

接下來會發生什麼

如果這個 patch 真的進到 Linux kernel 7.1,下一個問題就會很自然地冒出來:x86-32 還能撐多久?486 只是最老的一塊,後面還有更多歷史包袱等著整理。

我的判斷很直接。這波不是終點,而是更大清理的前奏。主線 kernel 會繼續往「少一點舊相容、多一點可維護」的方向走。對一般人來說沒差。對維護者來說,這會少掉很多無聊但耗時的工作。

如果你現在還在維護老機器,最實際的做法就是先盤點版本。把能升的升上去,把不能升的隔離好。不要等 upstream 把入口關了,才開始找替代方案。這種事拖到最後,通常都很痛。

說到底,Linux 這次不是在演戲。它只是在把一個用了 30 多年的包袱慢慢放下。你如果是 kernel 開發者,現在就該開始想:下一個被清掉的,會是哪一段舊相容碼?