Tiny Virtual Machine Monitor

Binary 2.0 カンファレンス 2006で発表された、小さなAMD-V用の仮想マシンモニターです。聞きたかったな。
http://0xcc.net/blog/archives/000151.html
http://web.yl.is.s.u-tokyo.ac.jp/~kaneda/tvmm/
それにしても、Binary 2.0 カンファレンスはすごいコアなことをやっていますね。
発表されたのはVirtual Multiprocessorという分散環境の仮想マシンを研究されている方のようです。
http://web.yl.is.s.u-tokyo.ac.jp/~kaneda/dvm/

Xenで検索してみると

Fedora Core 6でのXenのクイックスタートを日本語に訳された方がいます。すばらしい。
http://pocketstudio.jp/linux/?FC6%2FFedoraXenQuickstartFC6
こちらには、VTつきのPentium 4にFedora Core 5でXenを使った詳細が書かれてあります。すごいですね。
http://www.ne.jp/asahi/open/gallery/linux/xen/xen3vt/xen3vt.htm
こちらを見ると、Xenがサーバの仮想化に使われて、ビジネスになりつつあることが実感できます。
http://www.thinkit.co.jp/channel/virtualization.html

MIPSのエミュレータ

MIPSのエミュレータがWindowsホストでも動くことを確認しました。Debianのインストーラの画面は壊れてしまっていて使えないけれど。
qemu-system-mips.exeが、ビッグエンディアンのゲストOS向け、qemu-system-mipsel.exeがリトルエンディアンのゲストOS向けです。Ctrl-Alt-3を押すとプロンプトを見ることができます。
serial-threadパッチを使うと、Windbgの接続が不安定になることがわかり、それを取り除いたバイナリと一緒にアップしておきました。

KVM

KVMという、LinuxのカーネルドライバーとしてIntel VTやAMD-Vを使うプロジェクトができていますね。PCのエミュレーションとしてQEMUを使っているようです。最近まで、アナウンスが無くて知りませんでした。使った人はいるでしょうか。どれくらい速いものなんでしょう。もっとも、Xenの事もあまりわからなかったりするのですけどね。
試してみたいのは山々なのですが、CPUが対応していないと試せないですよね。そろそろ、パソコンの買い替えの時期かも。
それにしても、KVMと聞くと、キーボード/ビデオ/マウススイッチに見えてしまうんですけど、ネーミングは何とかならなかったものですかね。K Virtual MachineというJavaの仮想マシンもありましたっけ。
性能がよければ、Windowsホストでも動かせるようにできないかなと思いますけれど。
Linux 2.6.20には、取り込まれるみたいですね。
http://kvm.sourceforge.net/
少し調べてみると、lhypeというのもあるんですね。Rusty Russelさんがつくっているのだそうですけど。簡単な使い方がここにあります。
http://virt.kernelnewbies.org/RustyvisorQuickstart

NoConsole ユーティリティ

コマンドプロンプトを出なくしたいというメールをまたもらったので、NoConsoleのことを教えてあげた。そしたら、ソースコードが簡単だったので、Rubyで書いてしまったというメールが返ってきた。
自分はRubistではないので、よくわからないけど、日本人だったらRubyくらい知らないといけないかなと、なぜか思った。
ARGV.each do |file_name|
File.open(file_name, "r+b") do |f|
f.seek(220)
kar1 = f.read(1)
int1 = kar1.unpack("c").shift
if int1 == 2
int2 = 3
elsif int1 == 3
int2 = 2
end
kar2 = [int2].pack("c")
f.seek(220)
f.write(kar2)
puts "Converted from DOS-Box to GUI." if int2 == 2
puts "Converted from GUI to DOS-Box." if int2 == 3
end
end

CygwinのXのクライアント

CygwinのXサーバは、startxとか、startxwin.shで立ち上がります。
そこで立ち上がったxtermでクライアントを動かすのはいいのですが、別のCygwinのシェルからクライアントを起動したい場合は、DISPLAY変数を設定しておく必要があるようです。
bash>$ export DISPLAY=localhost:0.0
bash>$ ./hogehoge

CygwinのXで、OpenGLプログラミング

CygwinのX環境でも、OpenGLのプログラムが作れます。
Cygwinで、XとOpenGL related libraryをインストールしました。
コンパイルは、
gcc test.c -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 -lGL -lGLU
とかです。-lX11の順序が重要のようです。
MSのサイトにあるサンプルをコンパイルしてみたのですが、glXChooseVisualが、失敗してしまいました。GLX_RGBAを引数につけると大丈夫のようです。よくわからないんですけど、完全に同じというわけにはいかないのかな。動くだけでもすごいですけど。