Next
Previous
Contents
UML の世界へようこそ.
普通、リナックスのカーネルは、ハードを直接叩く権利がある。ビデオカードとか、キーボードとか、ハードディスクとかを制御してる。それができるのはカーネルだけ。で、いわゆる「ソフト」(訳注:カーネルもソフトウェアだけど、この場合、アプリのことね)は、カーネルにたいし、「画面を表示してくれ」とか要請するわけだ。図解すれば、まあ、こんな風。
でも、UMLは違う。自分ではハードは叩かない。「本物の」リナックスに対し、ハードを叩いてね、と要請する。(なお、この「本物の」リナックスを、ホストと呼ぶ)。これは、ちょうど、フツーのリナックスを使った場合における、アプリとカーネルの関係と同じだ。じゃあ、アプリはどこで動かすか。答えはUMLの中。図解するとこんな風。
- UMLがクラッシュしても、ホスト(ホントのLinuxの方)は平気で動きつづける.
- root 権限がなくても、カーネルを動かせる.
- 普通のデバッグと同じ感覚でカーネルのデバッグができる.
- gprof (profiling) や gcov (coverage testing)を使ったカーネルの開発ができる.
- カーネルリコンパイル→ブートしない→戻せない、という悲劇がない.
- ヤバめなソフトのテストランが安心してできる.
- ヤバめなカーネルのテストランが安心してできる.
- いろいろなディストリビューションをおなじPCにインストールできる.
- てゆうか、第一、とても面白い.
訳注:ここで、VMWAREと同じか。とおもったあなた。正解です。ただ、VMWAREの場合、IBMPCのハードウェアを仮想的にもう一つ作ってしまうので、どんなOSでも原理的にはインストールできるのだが、UMLの場合は、Linux を Linux 上で動かすことしかできない。ただし、この方法のほうが、開発ははるかに簡単なので、こうしてGPLのフリーウェアとして出てるし、原理的にはパフォーマンスもいい。あと、ハードの認識に絡むトラブルもない。
Next
Previous
Contents