Next Previous Contents

1. 概略

UML の世界へようこそ.

1.1 UMLって、フツーのLINUXと何が違うの??

普通、リナックスのカーネルは、ハードを直接叩く権利がある。ビデオカードとか、キーボードとか、ハードディスクとかを制御してる。それができるのはカーネルだけ。で、いわゆる「ソフト」(訳注:カーネルもソフトウェアだけど、この場合、アプリのことね)は、カーネルにたいし、「画面を表示してくれ」とか要請するわけだ。図解すれば、まあ、こんな風。

fig1 normal OS

でも、UMLは違う。自分ではハードは叩かない。「本物の」リナックスに対し、ハードを叩いてね、と要請する。(なお、この「本物の」リナックスを、ホストと呼ぶ)。これは、ちょうど、フツーのリナックスを使った場合における、アプリとカーネルの関係と同じだ。じゃあ、アプリはどこで動かすか。答えはUMLの中。図解するとこんな風。

fig2 virtual OS

1.2 UMLで何するの?

  1. UMLがクラッシュしても、ホスト(ホントのLinuxの方)は平気で動きつづける.
  2. root 権限がなくても、カーネルを動かせる.
  3. 普通のデバッグと同じ感覚でカーネルのデバッグができる.
  4. gprof (profiling) や gcov (coverage testing)を使ったカーネルの開発ができる.
  5. カーネルリコンパイル→ブートしない→戻せない、という悲劇がない.
  6. ヤバめなソフトのテストランが安心してできる.
  7. ヤバめなカーネルのテストランが安心してできる.
  8. いろいろなディストリビューションをおなじPCにインストールできる.
  9. てゆうか、第一、とても面白い.

訳注:ここで、VMWAREと同じか。とおもったあなた。正解です。ただ、VMWAREの場合、IBMPCのハードウェアを仮想的にもう一つ作ってしまうので、どんなOSでも原理的にはインストールできるのだが、UMLの場合は、Linux を Linux 上で動かすことしかできない。ただし、この方法のほうが、開発ははるかに簡単なので、こうしてGPLのフリーウェアとして出てるし、原理的にはパフォーマンスもいい。あと、ハードの認識に絡むトラブルもない。
Next Previous Contents