【ITニュース解説】Linux plans to remove 247k lines of old ARM code
2026年09月16日に「Dev.to」が公開したITニュース「Linux plans to remove 247k lines of old ARM code」について初心者にもわかりやすく解説しています。
ITニュース概要
Linuxカーネルは、使われなくなった古い32ビットARMプラットフォーム関連コード約24.7万行を削除する計画だ。これにより、カーネルが軽量化され、メンテナンスの負担が減る。該当プラットフォームを使っている開発者は、長期安定版への移行など対応が必要となる。
ITニュース解説
Linuxカーネルから約24万7千行ものコードが削除されるという大きな動きがある。これは、コンピュータの心臓部であり、システム全体を管理するLinuxの基盤「カーネル」にとって、非常に重要な「大掃除」だ。
まず、Linuxカーネルとは何かを説明する。カーネルはOS(オペレーティングシステム)の最も基本的な部分で、ハードウェアとソフトウェアの間を取り持ち、コンピュータのあらゆる操作を管理する。例えば、メモリの管理、CPUへのタスク割り当て、ファイルシステムの操作、ネットワーク通信、そしてキーボードやマウスといった周辺機器とのやり取りなど、コンピュータが行う基本的な動作はすべてカーネルが制御している。つまり、コンピュータが正常に動くためにはカーネルが不可欠であり、そのコードは膨大で複雑なのだ。
今回削除されるのは、主に古い「ARM」という種類のCPUに対応するためのコードだ。ARMはスマートフォンやタブレット、組み込み機器など、消費電力が少なく小型のデバイスで広く使われているプロセッサの設計方式を指す。特に、今回対象となるのは「32ビット」版の古いARMプラットフォームだ。ビット数はCPUが一度に処理できる情報の量を表し、現代の主流は「64ビット」だが、かつては32ビットが一般的だった。長い年月が経ち、これらの古い32ビットARMプラットフォームはほとんど使われなくなり、Linuxカーネルからそのサポートを削除する運びとなったのだ。
削除されるコードの内訳は二つに分けられる。一つは「プラットフォーム」と呼ばれる部分のコードで、約5万5千行に上る。プラットフォームコードとは、特定のチップセットや基板(ボード)でカーネルが動作するために必要な基盤部分のサポートコードを指す。具体的には、カーネルがそのハードウェア上で起動する方法、タイマーや割り込みといった基本的な機能にアクセスする方法、そしてデータのやり取りを行うバス(データ伝送路)の使い方などを定義している。
もう一つは「デバイスドライバ」と呼ばれる部分のコードで、これが全体の大部分を占める約19万2千行になる。デバイスドライバとは、特定のハードウェア部品(例えば、ネットワークカード、ストレージ、特定のコントローラーチップなど)をカーネルが認識し、操作するためのソフトウェアだ。これらのドライバは、先に挙げた古いARMプラットフォームでしか使われていなかったため、プラットフォームコードが削除されれば、それらのドライバも不要になるというわけだ。つまり、古くなった基板のサポートを止めることで、その基板専用に作られた多くの部品を動かすためのソフトウェアもまとめて削除できるのだ。
Linuxカーネル全体のソースコードは約4100万行あることを考えると、24万7千行の削除は一見するとわずかな割合に見えるかもしれない。しかし、今回の変更では約5千行の新しいコードが追加される一方で、差し引きで約24万2千行ものコードが減ることになる。これは約300もの「パッチ」(コードの変更や修正をまとめたもの)を通じて行われる作業で、カーネルの「軽量化」に大きく貢献する。
具体的に影響を受けるプラットフォームとしては、A1100、Footbridge、RISCPC、Orion、Dove、MV78xx0ファミリー、OMAP24xx、i.MX31、LPC18xx、STM32マイクロコントローラーなどが挙げられる。これらはARMがスマートフォンや組み込み機器で標準となる前の時代の、比較的に古い32ビットARM設計だ。
このような大規模なコード削除は、突然行われるわけではない。Linuxカーネルのコミュニティでは、まず「廃止予定(deprecated)」という形で、将来的にサポートを打ち切ることを事前に告知する。今回のケースでも、削除対象となるプラットフォームはLinux 7.3の時点で廃止予定とマークされていた。これにより、そのコードを使っている開発者には準備期間が与えられる。現在のところ、Linux 7.5での削除が最も有力視されているが、最終決定はまだだ。
この変更は、特定の開発者にとっては重要な意味を持つ。もしあなたがこれらの古いARMチップを使った製品を開発・保守しているのであれば、自分の製品が影響を受けるかどうかを早急に確認する必要がある。確認の方法は、カーネルの設定ファイルや、カーネル外で動かす独自のドライバコードの中から、今回の削除対象となるプラットフォームの名前や関連するディレクトリ名を検索することだ。
もし影響を受ける製品を扱っている場合でも、直ちに緊急事態になるわけではない。いくつかの選択肢が用意されている。一つは、「長期安定版カーネル(Long-Term Stable kernel)」を使い続ける方法だ。長期安定版カーネルは、一度リリースされると数年間にわたってセキュリティ修正や重要なバグ修正が提供されるため、古いコードが削除されても、そのサポートを継続して受けられる。これは最も手軽な方法だが、最新のカーネルの恩恵は受けられない。二つ目は、削除されるプラットフォームのコードを自分で管理し、「アウトオブツリーパッチセット」として自分の製品に適用する方法だ。この方法では、新しいカーネルがリリースされるたびに、自分でコードの調整(リベース)を行う手間が発生する。三つ目は、製品で使用しているチップを、最新のLinuxカーネルでサポートされている新しいチップに移行する方法だ。これは根本的な解決策だが、ハードウェアとソフトウェアの設計変更が必要になるため、最もコストと手間がかかる。
一方で、多くの開発者にとっては、このコード削除は間接的だが良い影響をもたらす。誰も使わない古いドライバは、カーネル全体の変更や、API(ソフトウェア同士の連携ルール)の名称変更、静的解析(コードのエラーを検出する分析)といった、すべてのメンテナンス作業の対象になっていた。つまり、そのハードウェアに全く興味のない開発者でさえ、それらの古いコードのために時間を割く必要があったのだ。不要なコードが削除されることで、そうした無駄なメンテナンス作業が減り、開発コミュニティ全体の負担が軽減される。これは、Linuxカーネルが健全な状態を保ち、将来に向けて進化し続ける上で非常に重要なことだ。
Linuxカーネルは、このように自らの歴史をどのように管理していくかという方針を明確に示している。サポートの終了は突然ではなく、事前に告知され、長期安定版カーネルという代替手段も提供される。もしあなたが古いハードウェアに依存しているのであれば、この「廃止予定」の告知は、それに対して行動を起こすべき明確な警告なのだ。