*** マイクロカーネルについて ***
これから提案するシステムでは、システム全体は「フィールド」というものの集まりとみなされます
実行中のプロセスは一つ以上のフィールドを所有し、複数のプロセスがある一つのフィールドを共有してもかまいません
フィールドは0個以上有限の他のフィールドと双方向のリンクを持ちます
プロセスは自分が所有するフィールドに対し以下の操作を行えます
1.あるフィールドに「エルフ」という小プログラムを「召喚」すること
2.あるフィールドに「スペル」を「唱える」こと
さて、プロセスがあるフィールドでスペルを唱えると、そのフィールドに召喚されているすべてのエルフがそれを聞き、
自身がそのスペルを理解できるかどうか判定します
スペルを理解できるエルフがいた場合、以降の処理はそのエルフに任されます
そのようなエルフがいない場合、リンクでつながっている他のフィールドにスペルがブロードキャストされます
スペルを理解できるエルフが見つかるまでこれが繰り返され、結果としてフィールドとリンクのグラフで幅優先探索が行われます

システムをこのような構成にするのは、「面白そうだ」という好奇心が一番ですが、
すでに実行中のプロセスの動作を乗っ取ることが容易に行えるからという理由もあります
すなわち、そのプロセスが所有するフィールドと他のフィールドとのリンクの間に別のフィールドを差し込み、
適切なエルフを召喚しておくことでそのプロセスが受け取るべきスペルを横取りできるわけです
これをカーネル自身に対して行うと、ユーザレベルでカーネルの機能拡張が可能になります