HelenOS

HelenOSは、マルチサーバーなマイクロカーネル設計に基づくオペレーティングシステムである。
HelenOSのソースコードはCで書かれ、BSDライセンスで公開されている。

技術的な概要 
マイクロカーネルはマルチタスクとメモリー管理、プロセス間通信を扱う。
また、カーネルベースのスレッドを提供し、対称型マルチプロセッシングをサポートしている。
マイクロカーネル設計に典型的なように、ファイルシステム、ネットワーク、デバイスドライバ、グラフィカルユーザーインターフェイスは、それぞれ独立したユーザースペースのコンポーネントの集合として実装されており、コンポーネントの集合はメッセージバスで通信する。

それぞれのプロセス(タスクと呼ばれる)は、複数のスレッド(カーネルによりプリエンプティブにスケジューリングされる)を持つことができる。また、ユーザースペースで協調的にスケジューリングされたファイバーを持つこともできる。
デバイスドライバとファイルシステムドライバーは、他のシステムサービスと同様にユーザースペースのタスクの集合(サーバー)として実装されている。これにより、HelenOSはマルチサーバーな特徴を持つこととなっている。

タスクはコネクション指向で非同期的なHelenOS IPCにより通信する。
これは、固定長のメッセージを送信したり、一連のバイト列を送信したり、メモリーの共有をネゴシエートするのに利用できる。
メッセージは、多量のデータをコピーしたり、中間のタスクのアドレス空間をメモリーマッピングすることなく転送できる。

開発 
HelenOSの開発はコミュニティーにより行われている。開発者コミュニティーは、少人数のコアチームと、世界各地の多数のコントリビューターからなっている。コアチームは、プラハ・カレル大学数物学部の教員や学生、卒業生が主になっている。

2011年と2012年、2014年には、HelenOSはGoogle Summer of Codeに指導組織として参加した。
2013年には、Space 2013プログラムのESA Summer of Codeに指導組織として参加した。

HelenOSのソースコードは、BSDライセンスで公開されている。いくつかのサードパーティーのコンポーネントは
GNU General Public Licenseが適用されている。
両方のライセンスはフリーソフトウェアライセンスであり、これによりHelenOSはフリーソフトウェアとなっている。

ハードウェアサポート 
HelenOSは、ARMやx86-64、IA-32、IA-64 (Itanium)、MIPS、
PowerPC (32ビットのみ)、SPARC V9のCPUアーキテクチャーで動く。
シミュレーター上で動くだけでなく、実際のハードウェアで動く例も存在する。

HelenOSは、PATAやSATA、USBマスストレージ、USB HID、Atheros製のチップを搭載したUSB Wi-Fiアダプター、いくつかのイーサネットカード、シリアルポート、キーボード、マウス、フレームバッファーをサポートしている。

研究用途と学術的用途 
HelenOSはプラハ・カレル大学の分散ディペンダブルシステム部門によるソフトウェアコンポーネントと検証についての研究に利用されている。

それ以外にも、学生によるソフトウェアプロジェクトや修士論文のためのプラットフォームとしても利用されている。

脚注

外部リンク 

 HelenOSホームページ
 HelenOS のGitHubレポジトリー

参考 
 HelenOSに関する学位論文、論文、文書など

フリーソフトウェアOS