Linuxカーネルが486と初期の586のサポートを廃止へ

Table of Contents

Linuxカーネルが486と初期の586のサポートを廃止へ

カーネル 6.15 が形になりつつあり、Intel の 486 チップとその同世代チップのサポートが廃止されるようです。

Linuxカーネルの次期バージョンはリリースに向けて順調に進んでいます。リリース候補版5は週末に公開され、カーネル本体は5月末か6月初旬に正式にリリースされる見込みです。最も興味深い変更点の一つは、32ビット80486時代のいくつかのチップのサポートが削除されたことです。

幽霊の衣装を着た男性

アリババのT-Head C910 RISC-V CPUの欠陥命令がすべてのセキュリティを吹き飛ばす

続きを読む

この変更はカーネルのベテランであるIngo Molnar氏によるパッチで、約15,000行のコードが削除されます。これにより、x86-32 CPUがカーネル6.15以降を実行するためにサポートする必要がある機能が増加し、タイマースタンプカウンタ(TSC)とCMPXCHG8Bソフトウェア命令が含まれるようになります。この命令は偶然にもかなり有名になり、Intelからもエラッタが発行されています。Intelのシリコンのバグのあるリビジョンでは、特定の状況下でプロセッサが完全にロックされ、リセットされるまで何も実行できなくなります。これは、命令がアプリケーションで実行されたかオペレーティングシステムで実行されたかに関係なく発生し、サービス拒否を引き起こします。

このハードウェア バグ (命令の 0xF00FC7C8 バイト シーケンスにちなんで F00F バグと呼ばれる) は、1993 年に初めてリリースされたオリジナルの Intel P5 マイクロアーキテクチャを搭載した Pentium プロセッサにのみ影響を及ぼしました。このバグは改訂されたシリコンで修正され、また、欠陥のあるチップを持つユーザー向けの回避策として、オペレーティング システム レベルの緩和策が採用されました。

つまり、言い換えると、このカーネルの変更 (CMPXCHG8B の要件) により、オリジナルの Intel Pentium よりも古いプロセッサ (Intel i486 ファミリ、および IDT WinChip や AMD Elan ファミリなど、いくつかの関連のある初期の 586 プロセッサ) のサポートが削除されます。

これには、「485slc」プロセッサとして販売されたチップも含まれます。これは、本質的には 386SX に 80486 ラインの CPU 命令が追加されたものです。

  • Linuxはまもなく切り替え可能なx86-32バイナリサポートを提供する予定
  • Linus Torvalds氏は、Linuxカーネルではなく、80486アーキテクチャが博物館に収蔵されるべきだと示唆している。
  • インテルは「もうPentiumやCeleronとは言わないで、今は単にプロセッサだ」と語る
  • Arca Noae は 21 世紀の PC 向けに OS/2 Warp を近代化しています

これは、オンボードハードウェア浮動小数点ユニットを搭載していなかった最新のx86チップのサポートを実質的に削除することを意味します。つまり、カーネルはIntelベースのFPUをソフトウェアでエミュレートするサポートも放棄できるということです。このコードの削除は削除された部分の大部分を占めますが、残りのコードも依然として1,000行以上あります。

皮肉なことに、これは、勇敢なプログラマーの Mikhail Zakharov が自身のブログで説明しているように、x86 風味の FPU エミュレーションを NetBSD 10 コードベースに再度追加してからわずか数か月後に起こったことです。

Linux カーネルの新バージョンが CPU ファミリー全体のサポートを廃止したのは久しぶりです。前回は 2012 年に開発者が 386 のサポートを廃止したときでした。また、この廃止が実現するまでには時間がかかりました。Linus Torvalds は 2022 年に i486 のサポートを廃止することを提案しましたが、投票で否決されました。®

編集者注:この記事は、F00F バグの範囲を明確にするために修正されました。このバグは、バグのある Intel Pentium ファミリ チップを搭載した PC をロックする命令シーケンスによって発生したものです。

Discover More