トーバルズ氏、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関連
2022-03-02 12:49
富士通提案のAI技術、Linux FoundationがOSSプロジェクトに承認
IT関連
2023-09-16 09:43
マイクロソフト、「.NET 8」正式リリース、2年ぶりのLTS版。Dynamic PGOによる最適化コンパイル、事前コンパイルのバイナリサイズが半分など、さらなる高速化が前進
.NET
2023-11-15 11:57
リモートワーク環境のセキュリティ強化–経営者と従業員がとるべき4つの対策
IT関連
2023-06-14 12:03
IBM、カナダで量子コンピューティングシステム導入へ–ケベック州と提携
IT関連
2022-02-08 05:49
26秒でロボットを設計するAIに見る、未来の可能性
IT関連
2024-03-07 20:17
Dellがまた大きなアセットを売却、BoomiをFrancisco PartnersとTPGに約4360億円で譲渡
その他
2021-05-05 15:07
日米の中堅中小企業でデジタル投資額に大きな差–ひとり情シス協会が「デジタルエンゲル係数」を算出
IT関連
2023-03-18 07:55
ServiceNowと富士通、戦略的協業を発表–製造向けに業務高度化策を展開
IT関連
2024-05-09 13:27
ISID、静岡市の脱炭素先行地域づくり事業に参画–デジタルツイン技術を活用
IT関連
2022-12-28 12:17
EVサブスクのOntoが充電ステーションへのアクセス拡大でShellと提携
モビリティ
2021-03-12 19:37
大和証券、経費精算・管理SaaSを採用–業務の抜本的改革を狙う
IT関連
2022-02-19 19:10
「Google認証システム」、コードをGoogleアカウントに保存可能に
IT関連
2023-04-26 16:39
オンラインでも議論を活発化させられるホワイトボード「Miro」の使い所
IT関連
2022-08-30 00:05