HelenOS [ 4 ] [ 5 ] [ 6 ] [ 7 ]は、マルチサーバーマイクロカーネル設計に基づくオペレーティングシステムです。[ 8 ] HelenOS のソースコードは C 言語で記述されており、BSD - 3-Clauseライセンスの下で公開されています。[ 3 ]
このシステムは「研究開発型オープンソースオペレーティングシステム」と説明されている。[ 9 ]
マイクロカーネルは、マルチタスク、メモリ管理、プロセス間通信を処理します。また、カーネルベースのスレッドを提供し、対称型マルチプロセッシングをサポートします。
マイクロカーネル設計の特徴として、ファイルシステム、ネットワーク、デバイスドライバ、グラフィカルユーザーインターフェースは互いに分離され、メッセージバスを介して通信するユーザー空間コンポーネントの集合体として構成されている。
各プロセス(タスクと呼ばれる)は、カーネルによってプリエンプティブにスケジュールされた複数のスレッドを含むことができ、さらに各スレッドは、ユーザー空間で協調的にスケジュールされた複数のファイバーを含むことができます。デバイスドライバやファイルシステムドライバ、その他のシステムサービスは、ユーザー空間タスク(サーバー)の集合によって実装され、それによってHelenOSのマルチサーバー構造が実現されます。
タスク間の通信は、コネクション指向かつ非同期なHelenOS IPCを介して行われます。このIPCは、小さな固定サイズのメッセージやバイトブロックの送信、メモリ共有の交渉などに使用できます。メッセージは、大量のデータをコピーしたり、メモリを中間タスクのアドレス空間にマッピングしたりすることなく転送できます。
HelenOS の開発はコミュニティ主導で行われています。開発者コミュニティは、主にプラハのチャールズ大学数学物理学部のスタッフと卒業生および現役学生からなる小規模なコアチームと、世界中の多数の貢献者で構成されています。[ 10 ] 2011 年、2012 年、2014 年に HelenOS はメンター組織としてGoogle Summer of Codeに参加しました。[ 11 ] [ 12 ] [ 13 ] 2013 年には、 ESA Summer of Code in Space 2013 プログラムのメンター組織として参加しました。[ 14 ]
HelenOS のソースコードは BSD-3-Clause ライセンスの下で公開されていますが、一部のサードパーティ コンポーネントはGNU General Public Licenseの下で利用可能です。[ 3 ] [ 15 ]これらのライセンスはどちらもフリー ソフトウェア ライセンスであるため、HelenOS はフリー ソフトウェアです。
HelenOS は、 ARM、x86-64、IA-32、IA-64 ( Itanium )、MIPS、PowerPC (32 ビットのみ)、SPARC V9、RISC-Vなど、さまざまなCPU アーキテクチャで動作します。[ 16 ]ある時点では、HelenOS のさまざまなバージョンが、各アーキテクチャの実際のハードウェア上で動作していました (そのアーキテクチャのシミュレータでのみ動作するのではなく)。
HelenOSは、 PATA、SATA、USBマスストレージ、USB HID、Atheros USB WiFiドングル、複数のイーサネットネットワークカード、SoundBlaster 16およびIntel HDAオーディオデバイス、シリアルポート、キーボード、マウス、フレームバッファをサポートしています。
HelenOSは、プラハのチャールズ大学分散信頼性システム学科によるソフトウェアコンポーネントと検証の分野の研究に使用されています[ 17 ] [ 18 ]。また、HelenOSは学生によるソフトウェアプロジェクトや修士論文のプラットフォームとしても使用されています[ 19 ] 。