「リアルタイムLinux」がメインラインカーネルに完全統合–20年に及ぶ開発を振り返る

今回は「「リアルタイムLinux」がメインラインカーネルに完全統合–20年に及ぶ開発を振り返る」についてご紹介します。

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

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


 ウィーン発–20年の開発期間を経て、「リアルタイムLinux」(「PREEMPT_RT」)がついに、ようやくメインラインカーネルに統合された。Linus Torvalds氏は「Open Source Summit Europe」に参加した際に、PREEMPT_RTを賞賛した。なぜこれが重要なのだろうか。まずは、「リアルタイムOS」(RTOS)とは何か、どのような利点があるのかを説明しよう。

 RTOSは、処理速度が重視されるタスクを正確かつ確実に処理できるように設計された特殊なOSだ。「Windows」や「macOS」などの汎用OSと異なり、多くの場合、ミリ秒単位やマイクロ秒単位で測定される厳しい時間制約の中でイベントに応答し、データを処理するように構築されている。著名なリアルタイムLinux開発者であり、GoogleのエンジニアでもあるSteven Rostedt氏は、「リアルタイムとは最速の最悪のシナリオだ」と表現する。

 これは、RTOSの本質的な特徴が決定論的な動作であるということだ。RTOSは、重要なタスクを指定された期限内に確実に完了させる。高速処理がRTOSの特徴だと思っている人が多いが、そうではない。RTOSで重要なのはスピードではなく、信頼性だ。この予測可能性は、タイミングが肝要な用途、例えば産業用制御システム、医療機器、航空宇宙機器などで重要になる。

 現在使用されているリアルタイムOSの一例が、「VxWorks」だ。同OSは米航空宇宙局(NASA)の火星探査機で機体の誘導に使用されているほか、旅客機の「Boeing 787 Dreamliner」では、航空電子工学システムを制御して飛行制御のリアルタイム応答性を確保するために使われている。リアルタイムOSはほかにも「QNX Neutrino」があり、こちらは自動車のインフォテインメントや先進運転支援システム(アンチロックブレーキなど)で広く使用されている。

 リアルタイムLinuxのコードは、次の「Linux 6.12」カーネル以降、すべてのLinuxディストリビューションに組み込まれる。これにより、近い将来、Linuxを搭載したミッションクリティカルなデバイスや産業用ハードウェアが増えるだろう。しかし、ここに至るまでには長い時間がかかった。

 リアルタイムLinuxの物語が始まったのは、Linuxでリアルタイムアプリケーションをサポートする必要性が高まった1990年代後半のことだ。当初の取り組みでは、Linuxカーネルと並行して動作する別のリアルタイムカーネルの開発に重点が置かれた。こうした取り組みには、カンザス大学の「KURT」やミラノ大学の「RTAI」、ニューメキシコ工科大学の「RTLinux」などの学術プロジェクトがあった。

 Linuxカーネルの上級開発者であるIngo Molnar氏は2004年、これらのテクノロジーの断片を集めて再構築する取り組みに着手し、リアルタイム・プリエンプション・パッチ・セットPREEMPT_RTの基礎を築いた。

 これは初期のリアルタイムLinuxソリューションと異なり、リアルタイムカーネルを別に作成するのではなく、既存のLinuxカーネルに変更を加えるというアプローチだった。2006年には、Linus Torvalds氏にこう言わせるほど大きな支持を獲得した。「Linuxでレーザーを制御するのは狂気の沙汰だが、この部屋にいる人間は皆、それなりに狂気じみている。したがって、Linuxを使用して産業用溶接レーザーを制御したいなら、PREEMPT_RTを使えばいい」

 2009年には、Thomas Gleixner氏やPeter Ziljstra氏、Rostedt氏などの少数のカーネル開発者チームが、以前のプロトタイプ開発をツリー外の単一のパッチセットに統合する作業を完了した。それ以来、多くの企業がこのパッチセットを使用して、ミリ秒単位の精度でのハードリアルタイム処理が求められる産業用システムを構築するようになった。

 プロジェクトが前進するにつれて、リアルタイムLinuxの多くの要素がカーネルに組み込まれていった。Rostedt氏は筆者に対し、リアルタイムが今回初めてLinuxに組み込まれたと言うのはある意味で間違いだ、と語った。多くの機能が長年にわたりメインストリームLinuxに組み込まれてきた。実際に、一部の機能は、われわれが毎日使用しているLinuxに不可欠なものだ。

 例えば、あまり知られていない「NO_HZ」は、アイドル時のシステムの電力消費を削減する。NO_HZによって、Linuxは膨大な数のCPUを搭載したマシンでも効率的に動作することができる。「Linuxはリアルタイムパッチによって計り知れないほど大きく改善された」とRostedt氏は強調する。「現在、Linuxがデータセンターで稼働しているのは、ひとえにわれわれの取り組みの成果だ」

 したがって、NO_HZがなければ、Linuxが事実上すべてのデータセンターで使われることにはならなかっただろう。これは、クラウドがLinuxによって稼働している理由でもある。こうしたリアルタイムの貢献がなかった場合、どのような世界になっていたかはよく分からないが、現在とは似ても似つかない世界だったはずだ。

 リアルタイムLinuxが、当初は誰も想像していなかった形で役立つことも証明された。Rostedt氏は当時を次のように振り返る。「2005年に、リアルタイムのバグレポートを受け取ったので、パッチを送信して『これが修正だ。適用できるか』と伝えたところ、その相手は『自分が何をしているのか分からない』という調子だった。『ちょっと待って。あなたはカーネル開発者ではないのか』と返信すると、彼は『私はギタリストだ』と答えた」

 確認してみると、この男性が初期のリアルタイムパッチを使用していた理由は、低遅延オーディオ接続用のサウンドサーバー「JACK」を使っていたからだった。彼は多くのミュージシャンと同じように、高級な機器を購入するお金がなかったために、JACKを利用していた。Rostedt氏はこう続ける。「彼はLinuxとJACKが搭載された低価格のノートPCを購入した。これは、リアルタイムパッチによって、ハードドライブの書き込み中の音飛びを防ぎ、良好な音質で録音ができるからだ」

 多くのミュージシャンが、高品質の音源を安く作成できるという理由で、初期のリアルタイムLinuxを使っていたことが分かった。誰も予想していなかった用途だ。これまでにメインラインカーネルに統合されてきたリアルタイムLinuxの機能には、他にも以下のものがある。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
GitHub、動画アップロード機能に正式対応 バグの再現手順や新機能の紹介などが容易に
ネットトピック
2021-05-19 06:21
中国でSaaSが普及しない理由–“SaaS不要論”の原因を探る
IT関連
2023-08-19 12:25
Google Cloud、AIエージェント構築「Vertex AI Agent Builder」など発表
IT関連
2024-04-12 13:37
キヤノンITS、医療DXを実現する新たな医療機関向けサービスを提供へ
IT関連
2023-11-28 15:18
1on1ミーティングと従業員のウェルビーイングに相関–チームスピリット
IT関連
2022-07-22 14:14
花粉シーズンの換気で室内の花粉を減らす方法 雨の後は要注意
くらテク
2021-02-07 12:10
成熟した国内AIシステム市場は生成AIで再成長か–IDCが予測
IT関連
2023-04-30 02:38
急進的なイーサリアムの起業家たちが「DIY性的暴行証拠収集キット」を再定義、支持も非難も受ける野心的なLeda Healthのプロジェクト
フェムテック
2021-06-21 18:14
反体制派をスパイウェアから守れるのは民主主義国家だ
IT関連
2022-03-01 16:30
フィデアHD、炭素会計プラットフォームサービスを導入–投融資先の炭素排出量の算定を効率化
IT関連
2024-02-01 23:50
IIJ、法人向けプランでeSIMの提供開始 パケットシェアや閉域接続にも対応
企業・業界動向
2021-04-08 00:11
Clearview AIの顔認識技術はカナダでもプライバシー侵害で違法
ネットサービス
2021-02-05 16:33
「.NET」開発者コミュニティ調査–学びたい言語や利用中のツールは?
IT関連
2021-05-18 22:10
競泳・池江璃花子は体調管理にWeb会議ツール活用 五輪まであと3カ月
IT関連
2021-04-15 19:41