HelenOS
From Wikipedia, the free encyclopedia
技術的な概要
マイクロカーネルはマルチタスクとメモリー管理、プロセス間通信を扱う。 また、カーネルベースのスレッドを提供し、対称型マルチプロセッシングをサポートしている。 マイクロカーネル設計に典型的なように、ファイルシステム、ネットワーク、デバイスドライバ、グラフィカルユーザーインターフェイスは、それぞれ独立したユーザースペースのコンポーネントの集合として実装されており、コンポーネントの集合はメッセージバスで通信する。
それぞれのプロセス(タスクと呼ばれる)は、複数のスレッド(カーネルによりプリエンプティブにスケジューリングされる)を持つことができる。また、ユーザースペースで協調的にスケジューリングされたファイバーを持つこともできる。 デバイスドライバとファイルシステムドライバーは、他のシステムサービスと同様にユーザースペースのタスクの集合(サーバー)として実装されている。これにより、HelenOSはマルチサーバーな特徴を持つこととなっている。
タスクはコネクション指向で非同期的なHelenOS IPCにより通信する。 これは、固定長のメッセージを送信したり、一連のバイト列を送信したり、メモリーの共有をネゴシエートするのに利用できる。 メッセージは、多量のデータをコピーしたり、中間のタスクのアドレス空間をメモリーマッピングすることなく転送できる。
開発
HelenOSの開発はコミュニティーにより行われている。開発者コミュニティーは、少人数のコアチームと、世界各地の多数のコントリビューターからなっている。コアチームは、プラハ・カレル大学数物学部の教員や学生、卒業生が主になっている。 [5] 2011年と2012年、2014年には、HelenOSはGoogle Summer of Codeに指導組織として参加した。[6][7][8] 2013年には、Space 2013プログラムのESA Summer of Codeに指導組織として参加した。 [9]
HelenOSのソースコードは、BSDライセンスで公開されている。いくつかのサードパーティーのコンポーネントは GNU General Public Licenseが適用されている。[10] 両方のライセンスは自由ソフトウェアライセンスであり、これによりHelenOSは自由ソフトウェアとなっている。