カーネル類のAPIはPOSIX 1003.13のPSE52準拠とされている。POSIX 1003.13の場合、以下の4つのプロファイルが定義されている。
これらの中ではPSE54がいわば全部入りである。SHaRKはPSE52なのでMemory Protectionのサポートがない。ただし、OSLib上で動くというSHaRKの構成を考えると、要するにSHaRKのプロセスそのものがホストOSのメモリ保護の管理下にあるという見方もできる。この辺はMPUなりMMUなりを操作しないと本来は管理できない部分であり、そこは妥協したというか、そこまでの作り込みは諦めたもようだ。
もっとも、POSIX 1003.13のPSE52に完全準拠か? というとそうでもなく、「90%ほどをサポート」としており、具体的には以下のようになっている。
まぁ、Localeやsetjmpは致し方ない気がする。
実際に、デモの中にあるHello, worldのコードはリスト1のようになっている。
#include "kernel/kern.h" int main(int argc, char **argv) { cprintf("Hello, world!\n"); return 0; }
非常にシンプルというか、POSIXに慣れたプログラマーなら簡単にとっつきやすいことが分かる。
大学と研究所で開発されたものだけに、ライセンスはGPL v2での提供となっている。そんなわけで無償で利用可能だが、商用に使おうとするとGPLに従う必要があるので、ちょっと使いにくいのは事実。もっともこれを商用で使おう、というユーザーはあまりいない気もするが。
最新バージョンは2007年11月にリリースされたVersion 1.5.4となっている。ロードマップそのものは2008年6月に更新されており、色々目標が書かれているが、今のところこれが実現されそうな目途は立っていない。プロジェクトは引き続きButtazzo氏が率いているようだが、同氏も忙しいのかもしれない。
Copyright © ITmedia, Inc. All Rights Reserved.