オープンソースのリアルタイム オペレーティング システムはありますか? リアルタイム Linux のことは聞いたことがありますが、ほとんどの実装は、Linux をプロセスとして実行するプロプライエタリな RTOS (有料) のようです。これは、Ardence の RTX リアルタイム システムが Windows で動作するのとほぼ同じです。
編集: マルチコア x86 ファミリー CPU で動作する RTOS を探していることを明確にする必要があります。
オープンソースのリアルタイム オペレーティング システムはありますか? リアルタイム Linux のことは聞いたことがありますが、ほとんどの実装は、Linux をプロセスとして実行するプロプライエタリな RTOS (有料) のようです。これは、Ardence の RTX リアルタイム システムが Windows で動作するのとほぼ同じです。
編集: マルチコア x86 ファミリー CPU で動作する RTOS を探していることを明確にする必要があります。
FreeRTOS は、基盤となるカーネルを提供します。いくつかの組み込みアプリで使用しましたが、堅牢なようです。ただし、実際にはアプリケーションに依存します。
eCos は無料です (ただし、有料のサポートを受けることができます)。Intel x86 アーキテクチャをサポートしています。マルチプロセッサシステムをサポートしています。タイミング要件にもよりますが、私はリアルタイム Linux システムの経験があまりありませんでした。応答時間は平均的には良いかもしれませんが、最悪の場合、数日で 10 倍または 100 倍になる場合もあります。これは、一部はドライバーの品質、一部はスケジューラー自体に依存していると思います。
しかし、システムがハード リアルタイムとソフト リアルタイムのどちらを要求するか、タイミングの制約とは何か、実行する必要があるアプリケーションの種類に要約すると思います。そして、どれだけ合理化された開発システムが必要か。
OpenSolarisにはリアルタイム機能がありますが、リアルタイム開発に使用する場合は注意が必要です。ほとんどすべてのI / Oにより、カーネルで優先順位が逆転する可能性があります(優先度の低いシステムワーカースレッドが不足し、優先度が高くなる可能性があります)。ブロックされるスレッド(STREAMSコードなど)。
私は FreeRTOS オペレーティング システムも使用しています。このオペレーティング システムは、修正された GNU ライセンスの下で無料で利用でき、有償の商用ライセンス バージョン、または高価な安全認定バージョン (SafeRTOS) のいずれかで利用できます。
Web サイトには、次のような x86 ポートがあります。
* Supported processor families: Any x86 compatible running in Real mode only, plus a Win32 simulator
* Supported tools: Open Watcom, Borland, Paradigm, plus Visual Studio for the WIN32 simulator
この OS は、キュー、セマフォ、およびタスクの優先順位設定を使用して、プリエンプティブまたは協調的なタスク スケジューリングを提供します。Linux のような他の大規模な OS 実装に付属する I/O またはファイル ライブラリ関数のようなものは提供しません。
あなたの正確な要件は何ですか?おそらく、vanilla Linux を使用できます。これは、リアルタイムの保証を提供しませんが、十分である可能性があります。一部の人々は、リアルタイム ベンダーが理解しようとしているほど悪くはないと考えています。
Vanilla Linux にもさまざまなスケジューリング ポリシーがありますが、それを知っている人は多くありません。
BeRTOSはかなり面白そうです。ただし、x86 の場合は「エミュレーターのみ」をサポートします。理由はわかりませんが。
Prexは BSD ライセンスの下にあります。
S.Ha.RKプロジェクトがあります。x86 CPU で動作しますが、CPU のすべてのコアを処理できるかどうかはわかりません。
他の誰かがすでに述べたように、Linux にはリアルタイムの拡張機能があります。xenomai.org をご覧ください。
マルチプロセッサの問題についてはよくわかりません。マルチプロセッサで何をしたいですか?
これはオープン ソースではありませんが、Windows CE がハード リアルタイム オペレーティング システムであり、x86 ポートがあることをご存知ですか? ただし、マルチコア CPU をサポートできるかどうかはわかりません。それが商用プロジェクトである場合は、間違いなく検討する必要があります。
x86ポートを持つMicroC/OS-IIもありますが、上記のようにマルチコアに対応しているかどうかはわかりません。非商用アプリケーションの場合は無料です。