海外コメンタリー

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

Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 川村インターナショナル

2024-09-25 07:00

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

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のコードは、次の「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の機能には、他にも以下のものがある。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    ChatGPTに関連する詐欺が大幅に増加、パロアルトの調査結果に見るマルウェアの現状

  2. セキュリティ

    迫るISMS新規格への移行期限--ISO/IEC27001改訂の意味と求められる対応策とは

  3. セキュリティ

    警察把握分だけで年間4000件発生、IPA10大脅威の常連「標的型攻撃」を正しく知る用語集

  4. セキュリティ

    いま製造業がランサムウェアに狙われている!その被害の実態と実施すべき対策について知る

  5. セキュリティ

    ランサムウェア攻撃に狙われる医療機関、今すぐ実践すべきセキュリティ対策とは?

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]