「リアルタイム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
テックタッチと裾野市が連携–電子行政サービスに対する不安を「市民目線」で解消
IT関連
2022-09-14 23:18
信用スコアを利用した後払い決済サービス「芝麻先享」は人々の生活を豊かにするか
IT関連
2022-10-18 00:49
職場でのハラスメントと孤立感、不屈の精神について4人の女性エンジニアに聞く
パブリック / ダイバーシティ
2021-07-03 17:21
スマホで開業届が完結 freeeの「電子申告・申請アプリ」に新機能
企業・業界動向
2021-05-25 23:25
AWS、コードレビュー自動化の「CodeGuru Reviewer」に新機能–Log4Shellに類似した脆弱性検出
IT関連
2022-02-19 11:31
AIによる需要予測や自動発注システム–小売り大手が続々導入へ
IT関連
2021-05-11 11:59
「もっと早く知りたかった」、Gesundが医療アルゴリズム検証データを提供するために2.3億円を調達
IT関連
2022-02-26 05:01
京都信用金庫、インボイス管理サービス「Bill One」導入–信用金庫としては初めて
IT関連
2022-12-13 06:58
パナソニック、低炭素に関する特許を無償開放–日本企業では初
IT関連
2022-08-25 01:26
豊田通商、タレントマネジメントシステムを国内で稼働開始
IT関連
2023-09-01 01:24
Amazon Auroraのシャーディングによる負荷分散を、スケーラブルなNewSQLデータベース「TiDB」で置き換えへ。高負荷なオンラインゲームにも耐えると評価[PR]
AWS
2024-01-29 16:38
アップルが次期MacBook Airのさらなる薄型軽量化、MagSafe搭載を計画中と報道、2021年後半に登場か
ハードウェア
2021-01-24 18:00
英政府機関、安全なパスワード作成のガイダンス–ペットの名前などリスクと注意喚起
IT関連
2021-04-17 23:09
シンガポール、AIシステムを保護するための技術ガイドラインを策定
IT関連
2024-07-10 20:45