UMLとは、Linux上のユーザープロセスの1つとして実行するLinuxカーネルです。これを用いると、1つの装置上で複数のLinuxカーネルを動作させることができます(図8)。UMLは、実機上で直接動作しているLinuxカーネル(これをホストと呼ぶ)上のアプリケーションとして動作します。 UMLでは、ptraceシステムコールを巧みに使用することで、システムコールなどカーネルの各機能をユーザー空間上で実現します。具体的には、次のようなことを行っています。 システムコール UML上のアプリケーションは、通常のLinuxと同様にトラップコール(int80)でシステムコールを発行します。UMLのカーネルは、UML上のプロセスをptraceシステムコールによって監視することで、発行されたシステムコールを横取りして処理します。 プロセス生成/破棄 UML上でプロセスが生成されると、UMLはホストにな