Linux 7.1、37年間続いたi486サポートに幕を下ろす

1989年に登場し、Linuxの歴史と共に歩んできたIntel i486プロセッサが、ついにカーネルから姿を消そうとしている。37年間の互換性維持に、終止符が打たれる。

Linux 7.1、37年間続いたi486サポートに幕を下ろす

1989年に登場し、Linuxの歴史と共に歩んできたIntel i486プロセッサが、ついにカーネルから姿を消そうとしている。37年間の互換性維持に、終止符が打たれる。


i486サポート削除のパッチがtip/tip.gitに投入

Linuxカーネルの開発ブランチに、Intel i486 CPUのサポートを段階的に廃止するパッチが投入された。ベテランカーネル開発者のインゴ・モルナーが作成したこのパッチは、tip/tip.gitリポジトリの「x86/platform」ブランチに今週マージされ、今月後半に予定されるLinux 7.1のマージウィンドウで提出される見込みだ。

削除対象は3つのKconfigビルドオプションだ。FPU(浮動小数点演算ユニット)を持たない486クラスCPU向けのCONFIG_M486SX、FPU内蔵の486クラスCPU向けのCONFIG_M486、そしてAMD Elanプロセッサ向けのCONFIG_MELANが消える。

これはまだ第一段階にすぎない。今回のパッチでi486カーネルイメージのビルドができなくなり、その後のカーネルリリースで実際のi486 CPUサポートコードが除去される計画だ。

リーナス・トーバルズは最近、i486サポートの維持について「この手の問題に開発の手間を1秒でもかける理由はどこにもない」と述べている。技術的に正しい判断だと思う。


4年越しの決断──2022年の提案から2026年の実行へ

この決断には前史がある。トーバルズが最初にi486サポートの廃止を提案したのは2022年のことだ。「2012年にi386サポートを廃止した。2022年にi486も廃止する時期ではないか」と問いかけたが、当時は反対意見もあり見送られた。

2025年4月、モルナーがトーバルズの発言を引用する形で15パッチのRFCシリーズを投稿。32ビットx86システムのハードウェアベースラインをTSC(タイムスタンプカウンター)とCMPXCHG8B命令のサポートを持つCPU――つまり初代Pentium以降――に引き上げることを提案した。

このRFCでは80ファイルにわたる約1万4,100行のコード削除が見積もられていた。だが、一気に全廃する方針はすんなりとは通らなかった。

そして2026年4月、ついに実行に移された。今回のアプローチは段階的だ。まずKconfigオプションを削除し、苦情がなければ後続のカーネルシリーズで互換コードを本格的に除去する。

モルナーはパッチノートで「x86アーキテクチャには、ごくわずかな人しか使っていない古代の32ビットCPUをサポートするための、複雑なハードウェアエミュレーション機構がある。この互換グルーコードが問題を引き起こすことさえあり、その解決に費やされる時間は他のことに使えるはずだ」と記している。

なぜ「互換グルーコード」が問題だったのか

i486サポートの維持が厄介だった理由は、単なるレガシーコードの存在ではない。i486世代のCPUにはハードウェアFPUを持たないモデルが多数存在した。486SXやCyrix/IBM系の互換チップがそれだ。カーネルはこれらのためにソフトウェアFPUエミュレーションライブラリ(math-emu/)を保持し続けてきた。

さらに厄介なのがCMPXCHG8B命令の問題だ。これは8バイトのアトミックな比較・交換を行う命令で、SMPロックなどカーネルの中核機構に深く関わる。i486にはこの命令がなく、カーネルはcli/sti(割り込み禁止/許可)によるエミュレーションを使って回避していた。

トーバルズ自身が2022年に指摘した通り、この互換コードは「今まさにバグだらけで壊れている」状態だった。テストする人がいないから、壊れていても誰も気づかない。気づかないから直す人もいない。典型的な技術的負債のスパイラルだ。


影響を受けるのは誰か

現実的に言えば、ほぼ誰も影響を受けない。

i486は1989年に登場し、Intelが最後の出荷を行ったのは2007年9月だ。生産終了から19年、発売からは37年が経過している。既知のLinuxディストリビューションでi486サポートを出荷しているベンダーは存在しない。

しかし「誰もいない」は正確ではない。レトロコンピューティング愛好家、組み込みシステムの一部、そしてFPGAベースのao486コアを動かすMiSTerユーザーがわずかに存在する。ただし、彼らにはLTSカーネルという選択肢が残っている。

Phoronixのフォーラムでは、あるユーザーがBoeing 777の初期型サービスノードに486SXが使われていたことを指摘している。ただしこれは産業用UNIXであり、Linuxではない。レトロハードウェアの愛好家たちからも「寂しいが理解できる」という反応が大勢を占め、37年前のCPUに執着する声はほとんど上がっていない。

前例としてのi386廃止

2012年のLinux 3.8でi386サポートが廃止された際も同じモルナーが「Nuke 386-DX/SX support」というプルリクエストを提出し、トーバルズは「ノスタルジーはない。せいせいする」と応じた。あのときは24ファイル、425行の削除だった。今回はその規模を大きく上回る。

i386廃止からi486廃止まで14年。次のターゲットは何か。コミュニティではi686より前のCPUサポート、さらにはBIOSブートパスのUEFI一本化なども議論されている。カーネルの「最低ライン」は少しずつ、しかし確実に上がり続けている。


37年分のノスタルジーと、その先

i486は単なる古いCPUではない。オンチップFPUの統合、8KBのL1キャッシュ、パイプライン化された実行ユニット。現代のCPU設計に連なる技術の多くが、このチップで初めて実現された。Linuxカーネル自体が最初に動いたのはi386だが、i486は多くの初期Linux開発者にとって「実用的なLinuxマシン」の原点だった。

Phoronixフォーラムのあるユーザーは「Linux開発がi486で始まったなら、トーバルズにとってほろ苦い決断ではないか」と書いた。別のユーザーが即座に訂正した。「それは386だ。数年前に廃止済み」。

カーネルのソースコードからi486の文字が消えても、37年前にこのチップが確立したオンチップFPUとL1キャッシュの設計は、今日出荷されるすべてのx86プロセッサに残っている。


参照元

関連記事

Read more

Copilotが80種類、Microsoftの命名が迷走中

Copilotが80種類、Microsoftの命名が迷走中

「Copilotとは何か」を誰かに聞かれたとき、もう一言では答えられない。アプリであり、機能であり、プラットフォームであり、キーボードの物理キーであり、ノートPCのカテゴリでもある。 78から始まった「全数調査」 元マッキンゼー・パートナーでAIコンサルタントのテイ・バナーマンが、Microsoftの製品ドキュメント、マーケティングページ、プレスリリースをすべて洗い出し、「Copilot」と名の付く製品・機能・サービスを一つ残らずマッピングした。 最初の集計で78種類。公開後にコミュニティからの指摘で Gaming Copilot と Microsoft Dragon Copilot(医療向けAI臨床アシスタント)が追加され、現在の総数は80に達している。 https://www.linkedin.com/feed/update/urn:li:activity:7445380757356871680 バナーマンはブログでこう記している。「アプリ、機能、プラットフォーム、キーボードの物理キー、ノートPCのカテゴリ丸ごと——そしてさらにCopilotを作るためのツール。すべてが