トーバルズ氏、Linuxカーネルを「C89」から「C11」コードに移行する準備

今回は「トーバルズ氏、Linuxカーネルを「C89」から「C11」コードに移行する準備」についてご紹介します。

関連ワード (ソフトウェア等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


 LinuxカーネルがCで記述されているというのは誰もが知るところだ。ただ、そのCがかなり昔のC、すなわち1989年の規格である「C89」だという事実については知らない人もいるかもしれない。C89は「ANSI X3.159-1989」、あるいは「ANSI C」としても知られている。Linus Torvalds氏は、そろそろC89に別れを告げる時だと判断し、Linuxカーネルの公式な開発言語を2011年規格の「C11」に移行しようとしている。

 これは見かけほど大きな変更ではない。C89は現在でもほぼ普遍的にサポートされている。どのようなCコンパイラーでも以前の規格との後方互換性を備えているため、C89で記述されたプログラムのコンパイルや実行は問題にならない。つまり、C11準拠のコンパイラーでも、C89で記述されたレガシーなコードによって問題が引き起こされることはないはずだ。

 では、なぜわざわざ移行するのだろうか。今回の変更は、新しい規格で利用可能になった便利な機能を使おうというものではない。

 Torvalds氏がこうした考えに至ったきっかけは、カーネルのリンクリストプリミティブに関連する投機的実行の脆弱性を解決するパッチを適用しようとした際に、該当パッチが持つ別の問題が明らかになったことだった。同氏はこの問題を修正するには、「C99」でリストのトラバースマクロに引き渡すイテレーターを、ループ本体の外のスコープで宣言しておかなければならないという点に気付いた。

 同氏はLinuxカーネルメーリングリスト(LKML)に「この種の非投機的なバグが発生する理由は、C99スタイルの『ループ内での変数宣言』という選択肢をわれわれが今まで持ち合わせてこなかったためにほかならない。つまり、list_for_each_entry()といったものすべては基本的に常に、最後のHEADエントリーをループ外にリークさせる。というのも、ループ本体内でイテレーター変数を宣言できないためだ」と記している。

 その答えは、いよいよC89に別れを告げ、この種の問題が起こり得ないCの新規格に移行するというものだ。つまり「C99規格への移行を検討する時期が来たということだ。これは20年以上も前に策定された規格だが、少なくともブロックレベルでの変数宣言が可能な程度には新しいもの」となっている。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
コロナ禍で急増する電子契約–電子帳簿保存法など法制度も
IT関連
2021-05-28 05:02
マイクロソフト、「Edge」のセキュリティを高める「SDSM」機能をテスト
IT関連
2021-08-06 13:02
「Firefox」の最新版、「macOS Sierra」から「Mojave」対応はこれが最後に
IT関連
2023-07-07 21:15
Celonis、BMWグループとの戦略的パートナーシップを強化–プロセスマイニング技術を活用
IT関連
2024-05-19 15:46
AIの未来における安全性と責任–「SXSW 2025」で示された3つの論点
IT関連
2025-03-25 23:51
ウクライナの国営通信事業者に「大規模サイバー攻撃」–「無力化」したと当局発表
IT関連
2022-03-30 00:42
富士通、産総研から超伝導ゲート型量子コンピューターを初受注
IT関連
2024-06-20 23:32
マイクロソフト、航空宇宙業界など狙うマルウェアを注意喚起
IT関連
2021-05-14 20:33
アップル製デバイスを狙う新たなパスワードリセット攻撃が登場
IT関連
2024-03-29 16:13
マイクロソフト、AIのリスクを探るレッドチームによる5つの洞察を公開
IT関連
2023-08-10 20:13
米国の開発者の92%はAIコーディングツールを利用–GitHub調査
IT関連
2023-06-16 17:00
バイデン大統領、米経済の競争促進に関する大統領令 IT大手規制も
企業・業界動向
2021-07-13 05:43
Facebook、国外在住ウイグル人標的の中国ハッカーに対処したと報告
アプリ・Web
2021-03-26 11:52
山形県長井市とNTT東日本、電子地域通貨を実証へ–行政のデジタル化など目指す
IT関連
2021-02-06 12:44