7 ポイント 投稿者 GN⁺ 2023-11-30 | 1件のコメント | WhatsAppで共有
  • MicrosoftがExpress Logicの買収を通じて取得したリアルタイムオペレーティングシステムであるThreadXをオープンソースとして公開。
  • ThreadX RTOSと、それを含むAzure RTOS開発スイートはEclipse Foundationに寄贈され、Eclipse ThreadXとして知られるようになり、MITライセンスの下で利用可能になる
  • リアルタイムオペレーティングシステム(RTOS)にはさまざまなものがあるが、ThreadXは12億台以上のデバイスで使用されており、Raspberry Piを含む複数のデバイスで中核的な役割を果たしている

Raspberry PiとThreadXの関係

  • ThreadXは、Intelのチップ内管理エンジンとRaspberry Piのファームウェアを動かすために使われている。
  • Raspberry Pi 1、2、3ではbootcode.bin、Pi 4と400ではstart*.elfと呼ばれ、これらはGitHubとDebianに含まれているが、ソースコードが公開されていないプロプライエタリな「blob」である
  • Raspberry PiのVideoCore GPU上で実行され、ArmコアはGPUに従属するスレーブデバイスとして動作する

MicrosoftによるThreadX買収とオープンソース化の意味

  • Microsoftは2019年、ThreadXが21周年を迎えた際にExpress Logicを買収し、Azure RTOSへとリブランディングした
  • この買収は、AWSがFreeRTOSの管理権を取得したことへの対抗策とみられ、元の開発者William Lamieは新会社を設立し、POSIX互換スレッドを備えた「第5世代」のRTOSであるPX5OSを販売している
  • ThreadXは実績ある製品であり、一部バージョンはTÜV Functional Safety認証を取得していて、これは一部の顧客にとって魅力となる

GN⁺の見解

  • この記事で最も重要な点は、MicrosoftがThreadX RTOSをオープンソースとして公開したことであり、これは開発者コミュニティにより多くの機会を提供し、技術革新を促進しうる重要な変化である。
  • オープンソース化は、Raspberry Piのようなデバイスのソフトウェアスタックが完全にオープンソースになる可能性を開き、多くの人にとってより魅力的な選択肢となりうることを意味する。
  • この変化は、技術愛好家と専門家の双方にとって興味深いニュースであり、オープンソース生態系の成長と革新に前向きな影響を与えることが期待される。

1件のコメント

 
GN⁺ 2023-11-30
Hacker Newsの意見
  • 「Azure RTOS」は、AmazonがFreeRTOSを買収した後、Microsoftが急いで買収したものだ。Bill LamieはPX5を立ち上げ、新しい軽量組み込みRTOSの開発のために人材の大半を引き連れていった。Microsoftがこのような措置を取るのであれば、Azure RTOSとIoTノードのロードマップから外れつつあるのかもしれない。ThreadXはFreeRTOSよりはるかに大きなエコシステムを持っており、Raspberry Pi以外でも動作する。Renesasは自社のSoCを購入すると無償で提供していた。
  • 安全認証は特に興味深い。「安全ソフトウェア」を開発するには多くの作業が必要だ。オープンソースでありながら安全認証を受けたRTOSを持てるのはかなり良いことだ。認証を維持するには、どこかで投資が行われる必要があるだろう。安全規格を理解し、適切な開発プロセスを構築し、ソフトウェアの変更に応じてそれを維持することは、単にコードを書いて実行するほど簡単ではない。趣味でできる種類のソフトウェア開発ではない。Microsoftがその開発努力に資金を出してくれることを願う。FreeRTOSは安全認証を受けていないが、SAFERTOSは同じAPIを持つ商用実装として安全認証を受けている。
  • ThreadXを使ったときはとても気に入った。「オペレーティングシステム」と呼ぶのは、割り込みサービスルーチンやスレッド生成、メモリ割り当て管理などの機能を提供する関数群で構成されているという点では、やや大げさな表現だ。ThreadXは非常に軽量で、仕事をこなすのに向いていた。tx_thread_createtx_malloc などの関数を呼び出し、キュー、セマフォ、ミューテックスなどを使っていた。ThreadXがまだ生き残っているのを見るのはうれしい。リアルタイムの電力/ファン/熱制御ループを実行する必要があったため、特定の処理がいつ発生するかを制御できなければならず、問題を検知した後、一定時間内に命令を出して対処するか、システムを安全に保つ必要があった。
  • AzureがRTOSを持っている理由を疑問に思う人のために言うと、Microsoftは2019年にExpress LogicとそのThreadX RTOSを買収した。ThreadXは、リソース制約の大きい多くのマイクロコントローラで使われている。Azureというブランディングは、IoTデバイスがクラウドと通信するという点を除けば、あまり意味がないように見える。
  • 現在のバージョンだけがGitHubに上がっており、VideoCore版の痕跡は見当たらない。Raspberry Pi Foundationが独自版のソースコードを公開できる許可を得られるかもしれない、という期待がある。
  • このコードは良いが、移植性を高め、プログラマにとって扱いやすくする方法がいくつもあると思う。特に移植されたアセンブリコードの部分だ。データ構造体のインデックスを修正しにくいため、構造体の変更が容易ではない。Cの構造体とアセンブリコードのインデックスが同期していないと、システムがクラッシュする可能性がある。アセンブリコード内のインデックスをマクロにすれば、修正しやすくなるだろう。アセンブリ用ヘッダとCコード用ヘッダを作成し、マクロで構造体を定義すればよい。そうすればCコードとアセンブリコードは同期される。欠点は、このマクロで構造体を定義しなければならないことだが、これはアセンブリとC、あるいはより高いレベルで使われる構造体に限られる。
  • ThreadXについて聞くのは久しぶりだ。約20年前、ThreadXベースの製品に携わっていた。リアルタイムスケジューリングや高速ブートを必要としないアプライアンス機器だったが、ThreadXを選んだ判断は自分が関与できるレベルを超えていた。別の「上位」製品もあり、そちらは組み込みLinuxを動かしていて、作業は快適だった。ThreadXを使った開発、デバッグ、テストには2倍から3倍の時間がかかった。カーネルで頼りにする多くの便利機能がThreadXにはなかったからだ。非常に単純な安全クリティカル機器にのみ使うことを勧める。
  • これは実際かなり大きな出来事であり、Eclipse Foundationがこれを管理するのは素晴らしいことだ。Microsoftはこれについて称賛を受けるに値する。彼らには良い実績があるので非常に楽観しているが、このプロジェクトには多くの継続的な支援が必要になるだろう。今やMicrosoftだけの責任ではないが、物事が動き出すまでの間は、より大きな負担を背負うことになるかもしれない。
  • Deskjetのファームウェアに取り組んでいたとき、ThreadXはまずまずのRTOSだった。当時はオープンソースOS、とりわけツール群がその仕事に適していなかった。しかし今では状況は大きく変わり、代替手段がある。
  • ThreadXはオープンソースではない。ソースコードは公開されているが、それは評価版、つまりプロプライエタリライセンスで提供されている。