Linuxカーネルのメモリーマップ

Linuxカーネルが、メモリーをどのように使っているのか少し検索してみました。
解説サイトを見てみると、0から3GB(0xC0000000)まではユーザー空間、3G(0xC0000000)から4GBまではカーネル空間で、3GB以降は物理メモリの0から1GBまでにマップされているとあります。
また、最近のカーネルではゾーンにより使い方は異なり、
ZONE_DMA 0 - 16MB
ZONE_NORMAL 16MB - 896MB(0x38000000)
ZONE_HIGHMEM 896MB -
の3つに分かれている。ZONE_HIGHMEM領域はZONE_NORMALにマップされて使われる。x86では、0 - 128MB(0x08000000)まではカーネルのデータの保存に使われる。
のだそうです。
ところが、Linux.imgのログを調べて、どんなアドレスを使っているのか見てみると、0x90000000以降のアドレスが出てきて、全然3GB以降ではないのです。
なんか変だと思い、RedHat 7.2も調べてみました。
RedHat 7.2 Linux 2.4.9-13 0xC0000000以降
RedHat 9 Linux 2.4.21 0x90000000以降
RedHat 7.2は、解説の通りになっています。でも、RedHat 9は違うのでした。カーネルが2.4系列なら大きな変更はないものと思っていましたが、メモリの扱い方が違うのですね。それとも、RedHat 9はそういうオプションで作られているのでしょうか。
もっと調べてみると、Fedora Core 4もレスキューCDは、0xC0000000だけど、インストール済みのものは0x90000000だったりする。謎だ。

VNC Server

CVSに、VNCサーバの機能が取り込まれました。
qemu -L ../pc-bios -hda linux.img -vnc 1
とすると、display 1(ポート5901番)を使えます。画面を表示するには、TightVNCなどのクライアント
をつかって、localhost:1とします。
Windowsホストでも動きました。
keymapsが無いというエラーがでたら、keymapsディレクトリごとpc-bios以下にコピーすればいいです。
また、-usb -usbdevice tabletオプションとともに使うと、マウスも捕捉する必要がなくなります。
qemu -L ../pc-bios -hda linux.img -vnc 1 -usb -usbdevice tablet

マウスの捕捉

CVSに、マウスが画面に自動的にグラブされる機能が追加されています。
-usb -usbdevice tablet
というオプションを付けると、Windows 98以降のOSで、今までのようにCtrl-Altを押さなくてもよくなります。